M4RI 1.0.1
|
PLS and PLUQ factorization using Gray codes. More...
Go to the source code of this file.
Functions | |
size_t | _mzd_pls_mmpf (mzd_t *A, mzp_t *P, mzp_t *Q, int k) |
PLS matrix decomposition of A using Gray codes. | |
size_t | _mzd_pluq_mmpf (mzd_t *A, mzp_t *P, mzp_t *Q, int k) |
PLUQ matrix decomposition of A using Gray codes. | |
size_t | _mzd_pls_submatrix (mzd_t *A, size_t start_row, size_t stop_row, size_t start_col, int k, mzp_t *P, mzp_t *Q, size_t *done, size_t *done_row) |
PLS matrix decomposition of a submatrix for up to k columns starting at (r,c). |
PLS and PLUQ factorization using Gray codes.
PLS matrix decomposition of A using Gray codes.
Returns (P,L,S,Q) satisfying PLS = A where P is a permutation matrix of dimension m x m, L is m x r unit lower triangular and S is an r x n matrix which is upper triangular except that its columns are permuted, that is S = UQ for U r x n upper triangular and Q is a n x n permutation matrix. The matrix L and S are stored in place over A.
A | Matrix. |
P | Preallocated row permutation. |
Q | Preallocated column permutation. |
k | Size of Gray code tables. |
size_t _mzd_pls_submatrix | ( | mzd_t * | A, |
size_t | start_row, | ||
size_t | stop_row, | ||
size_t | start_col, | ||
int | k, | ||
mzp_t * | P, | ||
mzp_t * | Q, | ||
size_t * | done, | ||
size_t * | done_row | ||
) |
PLS matrix decomposition of a submatrix for up to k columns starting at (r,c).
Updates P and Q and modifies A in place. The buffer done afterwards holds how far a particular row was already eliminated.
A | Matrix. |
start_row | Row Offset. |
stop_row | Up to which row the matrix should be processed (exclusive). |
start_col | Column Offset. |
k | Size of Gray code tables. |
P | Preallocated row permutation. |
Q | Preallocated column permutation. |
done | Preallocated temporary buffer. |
done_row | Stores the last row which is already reduced processed after function execution. |
kbar | Maximum k for which a pivot could be found. |
PLUQ matrix decomposition of A using Gray codes.
Returns (P,L,U,Q) satisfying PLUQ = A where P and Q are two permutation matrices, of dimension respectively m x m and n x n, L is m x r unit lower triangular and U is r x n upper triangular.
A | Matrix. |
P | Preallocated row permutation. |
Q | Preallocated column permutation. |
k | Size of Gray code tables. |