CMR
1.3.0
|
#include <cmr/linear_algebra.h>
Go to the source code of this file.
Functions | |
CMR_ERROR | CMRintmatComputeUpperDiagonal (CMR *cmr, CMR_INTMAT *matrix, bool invert, size_t *prank, CMR_SUBMAT **ppermutations, CMR_INTMAT **presult, CMR_INTMAT **ptranspose) |
Transforms matrix into a new matrix by applying integer row operations and row- and column swaps to find an upper-diagonal basis matrix. More... | |
CMR_ERROR CMRintmatComputeUpperDiagonal | ( | CMR * | cmr, |
CMR_INTMAT * | matrix, | ||
bool | invert, | ||
size_t * | prank, | ||
CMR_SUBMAT ** | ppermutations, | ||
CMR_INTMAT ** | presult, | ||
CMR_INTMAT ** | ptranspose | ||
) |
Transforms matrix
into a new matrix by applying integer row operations and row- and column swaps to find an upper-diagonal basis matrix.
The rank \( r \) is stored in *prank
and the row- and column permutations are stored in *ppermutations
, such that the first \( r \) rows and columns of the resulting matrix form an invertible upper-diagonal matrix. If invert
is true
then in this \( r \)-by- \( r \) submatrix, the largest (in terms of absolute value) entry in each column is on the diagonal.
cmr | CMR environment. |
matrix | A matrix |
invert | Whether the transformed basis columns shall be strictly diagonally dominant. |
prank | Pointer for storing the rank of the basis matrix. |
ppermutations | Pointer for storing the row- and column permutations applied to matrix (may be NULL ). |
presult | Pointer for storing the resulting int matrix (may be NULL ). |
ptranspose | Pointer for storing the transpose of the result int matrix (may be NULL ). |