10#ifndef M4RI_PLE_RUSSIAN
11#define M4RI_PLE_RUSSIAN
124 wi_t const splitblock);
int rci_t
Type of row and column indexes.
Definition misc.h:72
int64_t wi_t
Type of word indexes.
Definition misc.h:81
uint64_t word
A word is the typical packed data structure to represent packed bits.
Definition misc.h:87
Dense matrices over GF(2) represented as a bit field.
void _mzd_process_rows_ple_2(mzd_t *M, rci_t startrow, rci_t stoprow, rci_t startcol, int const *k, const ple_table_t **T)
add rows T[0],T[1] to M between startrow and stoprow, starting at startcol.
int _mzd_ple_submatrix(mzd_t *A, rci_t const start_row, rci_t const stop_row, rci_t const start_col, int const k, mzp_t *P, mzp_t *Q, rci_t *pivots, rci_t *done, rci_t *done_row, wi_t const splitblock)
PLE matrix decomposition of a submatrix for up to k columns starting at (r,c).
Definition ple_russian.c:119
void _mzd_process_rows_ple_5(mzd_t *M, rci_t startrow, rci_t stoprow, rci_t startcol, int const *k, const ple_table_t **T)
add rows T[0],T[1],T[2],T[3],T[4] to M between startrow and stoprow, starting at startcol.
ple_table_t * ple_table_init(int k, rci_t ncols)
Definition ple_russian.c:39
rci_t _mzd_ple_russian(mzd_t *A, mzp_t *P, mzp_t *Q, int k)
PLE matrix decomposition of A using Gray codes.
Definition ple_russian.c:380
void _mzd_process_rows_ple_3(mzd_t *M, rci_t startrow, rci_t stoprow, rci_t startcol, int const *k, const ple_table_t **T)
add rows T[0],T[1],T[2] to M between startrow and stoprow, starting at startcol.
mzd_t * _mzd_ple_to_e(mzd_t *E, mzd_t const *A, rci_t r, rci_t c, int k, rci_t *offsets)
Extract the k x A::ncols echelon form submatrix of A starting at row r and column c.
Definition ple_russian.c:364
rci_t _mzd_pluq_russian(mzd_t *A, mzp_t *P, mzp_t *Q, int k)
PLUQ matrix decomposition of A using Gray codes.
Definition ple_russian.c:625
void _mzd_process_rows_ple_4(mzd_t *M, rci_t startrow, rci_t stoprow, rci_t startcol, int const *k, const ple_table_t **T)
add rows T[0],T[1],T[2],T[3] to M between startrow and stoprow, starting at startcol.
void _mzd_process_rows_ple_6(mzd_t *M, rci_t startrow, rci_t stoprow, rci_t startcol, int const *k, const ple_table_t **T)
add rows T[0],T[1],T[2],T[3],T[4],T[5] to M between startrow and stoprow, starting at startcol.
void ple_table_free(ple_table_t *T)
Delete table T.
Definition ple_russian.c:48
Dense matrices over GF(2).
Definition mzd.h:68
Permutations.
Definition mzp.h:37
PLE Elimination Tables.
Definition ple_russian.h:39
mzd_t * T
Definition ple_russian.h:40
rci_t * E
Definition ple_russian.h:42
word * B
Definition ple_russian.h:43
rci_t * M
Definition ple_russian.h:41