M4RI 1.0.1
Functions
pls_mmpf.h File Reference

PLS and PLUQ factorization using Gray codes. More...

#include "packedmatrix.h"
#include "permutation.h"

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).

Detailed Description

PLS and PLUQ factorization using Gray codes.

Author:
Martin Albrecht <M.R.Albrecht@rhul.ac.uk>

Function Documentation

size_t _mzd_pls_mmpf ( mzd_t A,
mzp_t P,
mzp_t Q,
int  k 
)

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.

Parameters:
AMatrix.
PPreallocated row permutation.
QPreallocated column permutation.
kSize of Gray code tables.
Ignores offset atrtribute of packedmatrix.
Returns:
Rank of A.
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.

Parameters:
AMatrix.
start_rowRow Offset.
stop_rowUp to which row the matrix should be processed (exclusive).
start_colColumn Offset.
kSize of Gray code tables.
PPreallocated row permutation.
QPreallocated column permutation.
donePreallocated temporary buffer.
done_rowStores the last row which is already reduced processed after function execution.
Return values:
kbarMaximum k for which a pivot could be found.
size_t _mzd_pluq_mmpf ( mzd_t A,
mzp_t P,
mzp_t Q,
int  k 
)

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.

Parameters:
AMatrix.
PPreallocated row permutation.
QPreallocated column permutation.
kSize of Gray code tables.
Ignores offset atrtribute of packedmatrix.
Returns:
Rank of A.
Examples:
testsuite/bench_elimination.c.