Module m4ri_rust::ffi
[−]
[src]
Structs
Code | |
Djb | |
Mzd |
Represents the Mzd data type used by M4RI |
Mzp |
Enums
Srctyp |
Functions
Mzp_free_window⚠ |
Free a permutation window created with Mzp_init_window |
_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 |
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_free_window⚠ |
Free a matrix window created with mzd_init_window |
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_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_ple⚠ |
PLE matrix decomposition. |
mzd_pluq⚠ |
PLUQ matrix decomposition. |
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_rows3⚠ |
Same as |
mzd_process_rows4⚠ |
Same as |
mzd_process_rows5⚠ |
Same as |
mzd_process_rows6⚠ |
Same as |
mzd_randomize⚠ |
Fill the matrix m with uniformly distributed bits. |
mzd_read_bit⚠ |
Read the bit at position M[row, col] |
mzd_row_swap⚠ |
Swap the two rows rowa and rowb |
mzd_set_ui⚠ |
Set to identity matrix if the second argument is 1 |
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 |
Type Definitions
BIT | |
Rci | |
Word |