Go to the documentation of this file.
17 #ifndef CIFER_MATRIX_H
18 #define CIFER_MATRIX_H
void cfe_mat_inits(size_t rows, size_t cols, cfe_mat *m,...)
void cfe_mat_mod(cfe_mat *res, cfe_mat *m, mpz_t modulo)
void cfe_mat_print(cfe_mat *m)
void cfe_mat_mul_vec(cfe_vec *res, cfe_mat *m, cfe_vec *v)
void cfe_mat_add(cfe_mat *res, cfe_mat *m1, cfe_mat *m2)
void cfe_mat_free(cfe_mat *m)
void cfe_mat_mul_scalar(cfe_mat *res, cfe_mat *mat, mpz_t s)
void cfe_mat_determinant_gauss(mpz_t det, cfe_mat *m, mpz_t p)
void cfe_mat_extract_submatrix(cfe_mat *m, cfe_mat *min, size_t i, size_t j)
void cfe_mat_gaussian_elimination(cfe_mat *res, cfe_mat *mat, mpz_t p)
void cfe_mat_get(mpz_t res, cfe_mat *m, size_t i, size_t j)
void cfe_mat_frees(cfe_mat *m,...)
size_t rows
Definition: mat.h:46
void cfe_mat_mul(cfe_mat *res, cfe_mat *m1, cfe_mat *m2)
void cfe_mat_copy(cfe_mat *res, cfe_mat *m)
void cfe_mat_init(cfe_mat *m, size_t rows, size_t cols)
cfe_error cfe_mat_inverse_mod_gauss(cfe_mat *res, mpz_t det, cfe_mat *m, mpz_t p)
cfe_vec * cfe_mat_get_row_ptr(cfe_mat *m, size_t i)
void cfe_mat_transpose(cfe_mat *t, cfe_mat *m)
bool cfe_mat_check_bound(cfe_mat *m, mpz_t bound)
void cfe_mat_neg(cfe_mat *res, cfe_mat *m)
cfe_error cfe_gaussian_elimination_solver(cfe_vec *res, cfe_mat *mat, cfe_vec *vec, mpz_t p)
void cfe_mat_get_col(cfe_vec *res, cfe_mat *m, size_t i)
void cfe_mat_to_vec(cfe_vec *res, cfe_mat *m)
void cfe_mat_get_row(cfe_vec *res, cfe_mat *m, size_t i)
void cfe_mat_from_vec(cfe_mat *m, cfe_vec *v)
void cfe_mat_set(cfe_mat *m, mpz_t el, size_t i, size_t j)
Vector struct and operations.
void cfe_mat_determinant(mpz_t det, cfe_mat *m)
void cfe_mat_mul_x_mat_y(mpz_t res, cfe_mat *mat, cfe_vec *x, cfe_vec *y)
size_t cols
Definition: mat.h:47
cfe_error cfe_mat_inverse_mod(cfe_mat *inverse_mat, cfe_mat *m, mpz_t mod)
void cfe_mat_dot(mpz_t res, cfe_mat *m1, cfe_mat *m2)
void cfe_mat_set_vec(cfe_mat *m, cfe_vec *v, size_t i)
void cfe_mat_set_const(cfe_mat *m, mpz_t c)