Crate m4ri_sys[−][src]
Implements the FFI to M4RI
See https://bitbucket.org/malb/m4ri
Structs
Code | |
Djb | |
Mzd | Represents the Mzd data type used by M4RI |
Mzp |
Enums
Srctyp |
Statics
MZD_FLAG_MULTIPLE_BLOCKS | Flag for multiple blocks |
MZD_FLAG_NONZERO_EXCESS | Flag when |
MZD_FLAG_WINDOWED_OWNSBLOCKS | Flag for windowed matrix which owns its memory |
MZD_FLAG_WINDOWED_ZEROEXCESS | Flag for windowed matrix where |
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 |
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_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⚠ | 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_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⚠ | 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 |
Type Definitions
BIT | M4RI Internal representation |
Rci | M4RI Internal representation |
Word | M4RI Internal representation |