Expand description
Implements the FFI to M4RI
See https://bitbucket.org/malb/m4ri
Structs§
Enums§
Statics§
- MZD_
FLAG_ MULTIPLE_ BLOCKS - Flag for multiple blocks
- MZD_
FLAG_ NONZERO_ EXCESS - Flag when
ncols%64 == 0 - MZD_
FLAG_ WINDOWED_ OWNSBLOCKS - Flag for windowed matrix which owns its memory
- MZD_
FLAG_ WINDOWED_ ZEROEXCESS - Flag for windowed matrix where
ncols % 64 == 0 - MZD_
FLAG_ WINDOWED_ ZEROOFFSET - Flag for windowed matrix
Functions§
- Mzp_
free_ ⚠window - Free a permutation window created with Mzp_init_window
- _mzd_
mul_ ⚠naive - brief Naive cubic matrix multiplication with the pre-transposed B.
- _mzd_
mul_ ⚠va - Matrix multiplication optimized for v*A where v is a vector
- djb_
apply_ ⚠mzd - apply the linear map m to V and write the result in W
- djb_
compile ⚠ - Compile an new DJB linear map from A
- djb_
free ⚠ - free a DJB linear map
- djb_
info ⚠ - Print information on linear map mA
- djb_
init ⚠ - Allocate a new DJB linear map
- djb_
push_ ⚠back - Add a new operation
out[target] ^= srctype[source]to queue - m4ri_
build_ ⚠all_ codes - Generates global code book
- m4ri_
build_ ⚠code - Fils var ord and var inc with Gray code dat afor a Gray code of length 2^l
- m4ri_
destroy_ ⚠all_ codes - Destroy global code book
- m4ri_
gray_ ⚠code - Returns the ith Gray code entry for a gray code of length 2^l
- m4ri_
opt_ ⚠k - Return the optimal var
kfor the given parameters - mzd_add⚠
- Set C = A + B If C is passed in, the result is written there otherwise a new matrix is created
- mzd_
addmul ⚠ - \brief Matrix multiplication and in-place addition via the Strassen-Winograd matrix multiplication algorithm, i.e. compute C = C+ AB.
- mzd_
addmul_ ⚠m4rm - Set C to C + AB using Konrods Method
- mzd_
addmul_ ⚠mp - Matrix multiplication and in-place additoin via th ecubic matrix multiplication algorithm on multiple cores. C = C + AB
- mzd_
addmul_ ⚠naive - naive cubic matrix multiplication and addition
- mzd_
apply_ ⚠p_ left - Apply the permutation P to A from the left
- mzd_
apply_ ⚠p_ left_ trans - Apply the permutation P to A from the left, but transpose P
- mzd_
apply_ ⚠p_ right - Apply the permutation P to A from the right
- mzd_
apply_ ⚠p_ right_ trans - Apply the permutation P to A from the right, but transpose P
- mzd_
col_ ⚠swap - Swap the two columns cola and colb
- mzd_
concat ⚠ - Concatenate B to A and write the result to C
- mzd_
copy ⚠ - Copy a matrix to dest
- mzd_
copy_ ⚠row - \brief copy row j from A to row i from B.
- mzd_
echelonize ⚠ - (Reduced) row echelon form
- mzd_
echelonize_ ⚠m4ri - Matrix elimination using the method of the four russians
- mzd_
echelonize_ ⚠pluq - (Reduced) row echelon form using PLUQ factorisation
- mzd_
equal ⚠ - Return true if A == B
- mzd_
first_ ⚠row - Get a pointer to the first word
- mzd_
free ⚠ - Free a matrix created with mzd_init. Automatically done by the Deref trait on Mzd
- mzd_
free_ ⚠window - Free a matrix window created with mzd_init_window
- mzd_
free_ ⚠window_ const - Free a “const” window created with
mzd_init_window_const. - mzd_
init ⚠ - Create a new rows x columns matrix
- mzd_
init_ ⚠window - \brief Create a window/view into the matrix M.
- mzd_
init_ ⚠window_ const - Create a const window/view into a const matrix
- mzd_
inv_ ⚠m4ri - Invert the matrix using Konrod’s method
- mzd_
invert_ ⚠naive - Invert the target matrix using gaussian elimination To avoid recomputing the identity matrix over and over again, I may be passed in as identity parameter The first parameter may be null to have the space automatically allocated
- mzd_
is_ ⚠windowed - Test if a matrix is windowed
- mzd_
is_ ⚠zero - Zero test for matrix
- mzd_
make_ ⚠table - Constructs all possible 2^k row combinations using the gray code table
- mzd_mul⚠
- \brief Matrix multiplication via the Strassen-Winograd matrix multiplication algorithm, i.e. compute C = AB.
- mzd_
mul_ ⚠m4rm - Matrix multiplication using Konrods Method
- mzd_
mul_ ⚠mp - Matrix multiplication via the cubic multiplication algorithm on multiple cores
- mzd_
mul_ ⚠naive - naive cubic matrix multiplication the first argument may be null for automatic creation
- mzd_
owns_ ⚠blocks - Test if this mzd_t should free blocks
- mzd_ple⚠
- PLE matrix decomposition.
- mzd_
pluq ⚠ - PLUQ matrix decomposition.
- mzd_
pluq_ ⚠solve_ left - Solves (P L U Q) X = B
- mzd_
process_ ⚠rows - The function looks up k bits from position i, startcol in each row and adds the appropriate row from T to the row i
- mzd_
process_ ⚠rows2 - Same as
mzd_process_rowsbut works with two Gray code tables in parallel - mzd_
process_ ⚠rows3 - Same as
mzd_process_rowsbut works with three Gray code tables in parallel - mzd_
process_ ⚠rows4 - Same as
mzd_process_rowsbut works with four Gray code tables in parallel - mzd_
process_ ⚠rows5 - Same as
mzd_process_rowsbut works with five Gray code tables in parallel - mzd_
process_ ⚠rows6 - Same as
mzd_process_rowsbut works with six Gray code tables in parallel - mzd_
randomize ⚠ - Fill the matrix m with uniformly distributed bits.
- mzd_
read_ ⚠bit - Read the bit at position M[row, col]
- mzd_row⚠
- Get pointer to first word of row
- mzd_
row_ ⚠clear_ offset - Clear the given row, but only begins at the column coloffset.
- mzd_
row_ ⚠swap - Swap the two rows rowa and rowb
- mzd_
set_ ⚠ui - Set to identity matrix if the second argument is 1
- mzd_
solve_ ⚠left - Solves A X = B with A and B matrices.
- mzd_
stack ⚠ - Stack A on top of B into C
- mzd_sub⚠
- Set C = A - B If C is passed in, the result is written there otherwise a new matrix is created
- mzd_
submatrix ⚠ - Copy a submatrix first argument may be preallocated space or null
- mzd_
top_ ⚠echelonize_ m4ri - Matrix elimination using the Method of the four russians (m4ri)
- mzd_
transpose ⚠ - Transpose a matrix Dest may be null for automatic creation
- mzd_
write_ ⚠bit - Write the bit to position M[row, col]
- mzp_
copy ⚠ - Copy permutation Q to P Target may be null
- mzp_
free ⚠ - Free an Mzp
- mzp_
init ⚠ - Construct an identity permutation
- mzp_
init_ ⚠window - Create a window into the permutation
- mzp_
print ⚠ - Print the mzp
- mzp_
set_ ⚠ui - Set the permutation to the identity permutation