LIBFMSR
0.1
|
Implements various matrix operations. More...
Data Structures | |
struct | _thread_args |
Typedefs | |
typedef struct _thread_args | _thread_args |
Functions | |
void | matrix_mul (gf *A, gf *B, gf *C, gf n, gf k, size_t m) |
Matrix multiplication, C = AB; A is n x k matrix and B is k x m matrix. | |
void | matrix_mul_p (gf *A, gf *B, gf *C, gf n, gf k, size_t m, int num_threads) |
matrix_mul() distributed over (num_threads) threads | |
int | matrix_invert (gf *A, gf k) |
Inverts a k x k matrix A. | |
gf | matrix_rank (gf *A, gf n, gf m) |
Returns rank(A), where A is an n x m matrix. | |
int | matrix_next_submatrix (gf *matrix, gf rows, gf cols, gf k, gf *excluded, gf num_excluded, gf *comb, gf *submatrix) |
Sample the next set of rows from matrix[] in the combinations (rows choose k). |
Implements various matrix operations.
typedef struct _thread_args _thread_args |
int matrix_invert | ( | gf * | A, |
gf | k | ||
) |
Inverts a k x k matrix A.
Matrix multiplication, C = AB; A is n x k matrix and B is k x m matrix.
matrix_mul() distributed over (num_threads) threads
int matrix_next_submatrix | ( | gf * | matrix, |
gf | rows, | ||
gf | cols, | ||
gf | k, | ||
gf * | excluded, | ||
gf | num_excluded, | ||
gf * | comb, | ||
gf * | submatrix | ||
) |
Sample the next set of rows from matrix[] in the combinations (rows choose k).
We exclude rows in excluded[], and store results in submatrix[].
gf matrix_rank | ( | gf * | A, |
gf | n, | ||
gf | m | ||
) |
Returns rank(A), where A is an n x m matrix.