Skip to content

Commit abce9bb

Browse files
committed
bindings: autogenerate all fmpz_mod_*
1 parent 692d6d9 commit abce9bb

File tree

10 files changed

+425
-378
lines changed

10 files changed

+425
-378
lines changed

bin/all_rst_to_pxd.sh

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -39,13 +39,13 @@ modules=(
3939
"fmpz_factor"
4040
"fmpz_lll"
4141
"fmpz_mat"
42-
#"fmpz_mod_mat"
42+
"fmpz_mod_mat"
4343
#"fmpz_mod_mpoly_factor"
4444
#"fmpz_mod_mpoly"
45-
#"fmpz_mod_poly_factor"
46-
#"fmpz_mod_poly"
47-
#"fmpz_mod"
48-
#"fmpz_mod_vec"
45+
"fmpz_mod_poly_factor"
46+
"fmpz_mod_poly"
47+
"fmpz_mod"
48+
"fmpz_mod_vec"
4949
#"fmpz_mpoly_factor"
5050
#"fmpz_mpoly"
5151
#"fmpz_mpoly_q"
Lines changed: 4 additions & 45 deletions
Original file line numberDiff line numberDiff line change
@@ -1,50 +1,9 @@
1-
from flint.flintlib.types.flint cimport ulong, slong
2-
from flint.flintlib.types.fmpz cimport fmpz_t, fmpz_struct, fmpz_preinvn_struct
3-
from flint.flintlib.functions.nmod cimport nmod_t
1+
from flint.flintlib.types.flint cimport fmpz_struct, fmpz_t, slong, ulong
2+
from flint.flintlib.types.fmpz_mod cimport fmpz_mod_ctx_t, fmpz_mod_discrete_log_pohlig_hellman_t
43

5-
cdef extern from "flint/fmpz_mod.h":
6-
#
7-
# fmpz_mod structs, a la Pohlig - Hellman
8-
#
9-
ctypedef struct fmpz_mod_ctx_struct:
10-
fmpz_t n
11-
nmod_t mod
12-
ulong n_limbs[3]
13-
ulong ninv_limbs[3]
14-
fmpz_preinvn_struct * ninv_huge
15-
ctypedef fmpz_mod_ctx_struct fmpz_mod_ctx_t[1]
16-
17-
#
18-
# discrete logs structs, a la Pohlig - Hellman
19-
#
20-
21-
ctypedef struct fmpz_mod_discrete_log_pohlig_hellman_table_entry_struct:
22-
fmpz_t gammapow
23-
ulong cm
244

25-
ctypedef struct fmpz_mod_discrete_log_pohlig_hellman_entry_struct:
26-
slong exp
27-
ulong prime
28-
fmpz_t gamma
29-
fmpz_t gammainv
30-
fmpz_t startingbeta
31-
fmpz_t co
32-
fmpz_t startinge
33-
fmpz_t idem
34-
ulong cbound
35-
ulong dbound
36-
fmpz_mod_discrete_log_pohlig_hellman_table_entry_struct * table # length cbound */
375

38-
ctypedef struct fmpz_mod_discrete_log_pohlig_hellman_struct:
39-
fmpz_mod_ctx_t fpctx
40-
fmpz_t pm1 # p - 1 */
41-
fmpz_t alpha # p.r. of p */
42-
fmpz_t alphainv
43-
slong num_factors # factors of p - 1
44-
fmpz_mod_discrete_log_pohlig_hellman_entry_struct * entries
45-
ctypedef fmpz_mod_discrete_log_pohlig_hellman_struct fmpz_mod_discrete_log_pohlig_hellman_t[1]
46-
47-
# Parsed from here
6+
cdef extern from "flint/fmpz_mod.h":
487
void fmpz_mod_ctx_init(fmpz_mod_ctx_t ctx, const fmpz_t n)
498
void fmpz_mod_ctx_clear(fmpz_mod_ctx_t ctx)
509
void fmpz_mod_ctx_set_modulus(fmpz_mod_ctx_t ctx, const fmpz_t n)
@@ -71,6 +30,6 @@ cdef extern from "flint/fmpz_mod.h":
7130
void fmpz_mod_discrete_log_pohlig_hellman_init(fmpz_mod_discrete_log_pohlig_hellman_t L)
7231
void fmpz_mod_discrete_log_pohlig_hellman_clear(fmpz_mod_discrete_log_pohlig_hellman_t L)
7332
double fmpz_mod_discrete_log_pohlig_hellman_precompute_prime(fmpz_mod_discrete_log_pohlig_hellman_t L, const fmpz_t p)
74-
const fmpz_struct * fmpz_mod_discrete_log_pohlig_hellman_primitive_root(const fmpz_mod_discrete_log_pohlig_hellman_t L)
33+
const fmpz_struct * fmpz_mod_discrete_log_pohlig_hellman_primitive_root(fmpz_mod_discrete_log_pohlig_hellman_t L)
7534
void fmpz_mod_discrete_log_pohlig_hellman_run(fmpz_t x, const fmpz_mod_discrete_log_pohlig_hellman_t L, const fmpz_t y)
7635
int fmpz_next_smooth_prime(fmpz_t a, const fmpz_t b)

src/flint/flintlib/functions/fmpz_mod_mat.pxd

Lines changed: 59 additions & 137 deletions
Large diffs are not rendered by default.

src/flint/flintlib/functions/fmpz_mod_poly.pxd

Lines changed: 66 additions & 170 deletions
Large diffs are not rendered by default.
Lines changed: 7 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -1,20 +1,10 @@
1-
from flint.flintlib.types.flint cimport fmpz_struct, slong, flint_rand_t
2-
from flint.flintlib.functions.fmpz cimport fmpz_t
3-
from flint.flintlib.functions.fmpz_mod cimport fmpz_mod_ctx_t
4-
from flint.flintlib.functions.fmpz_factor cimport fmpz_factor_t
5-
from flint.flintlib.functions.fmpz_mod_poly cimport fmpz_mod_poly_struct, fmpz_mod_poly_t
1+
from flint.flintlib.types.flint cimport flint_rand_t, fmpz_struct, fmpz_t, slong
2+
from flint.flintlib.types.fmpz cimport fmpz_factor_t
3+
from flint.flintlib.types.fmpz_mod cimport fmpz_mod_ctx_t, fmpz_mod_poly_factor_t, fmpz_mod_poly_t
64

7-
# unimported types {'fmpz_mod_poly_factor_t', 'void', 'fmpz_mod_poly_t'}
85

9-
cdef extern from "flint/fmpz_mod_poly_factor.h":
10-
ctypedef struct fmpz_mod_poly_factor_struct:
11-
fmpz_mod_poly_struct * poly
12-
slong *exp
13-
slong num
14-
slong alloc
15-
ctypedef fmpz_mod_poly_factor_struct fmpz_mod_poly_factor_t[1]
166

17-
# Parsed from here
7+
cdef extern from "flint/fmpz_mod_poly_factor.h":
188
void fmpz_mod_poly_factor_init(fmpz_mod_poly_factor_t fac, const fmpz_mod_ctx_t ctx)
199
void fmpz_mod_poly_factor_clear(fmpz_mod_poly_factor_t fac, const fmpz_mod_ctx_t ctx)
2010
void fmpz_mod_poly_factor_realloc(fmpz_mod_poly_factor_t fac, slong alloc, const fmpz_mod_ctx_t ctx)
@@ -34,13 +24,13 @@ cdef extern from "flint/fmpz_mod_poly_factor.h":
3424
int fmpz_mod_poly_is_squarefree_f(fmpz_t fac, const fmpz_mod_poly_t f, const fmpz_mod_ctx_t ctx)
3525
int fmpz_mod_poly_factor_equal_deg_prob(fmpz_mod_poly_t factor, flint_rand_t state, const fmpz_mod_poly_t pol, slong d, const fmpz_mod_ctx_t ctx)
3626
void fmpz_mod_poly_factor_equal_deg(fmpz_mod_poly_factor_t factors, const fmpz_mod_poly_t pol, slong d, const fmpz_mod_ctx_t ctx)
37-
void fmpz_mod_poly_factor_distinct_deg(fmpz_mod_poly_factor_t res, const fmpz_mod_poly_t poly, slong * const *degs, const fmpz_mod_ctx_t ctx)
38-
void fmpz_mod_poly_factor_distinct_deg_threaded(fmpz_mod_poly_factor_t res, const fmpz_mod_poly_t poly, slong * const *degs, const fmpz_mod_ctx_t ctx)
27+
void fmpz_mod_poly_factor_distinct_deg(fmpz_mod_poly_factor_t res, const fmpz_mod_poly_t poly, slong * const * degs, const fmpz_mod_ctx_t ctx)
28+
void fmpz_mod_poly_factor_distinct_deg_threaded(fmpz_mod_poly_factor_t res, const fmpz_mod_poly_t poly, slong * const * degs, const fmpz_mod_ctx_t ctx)
3929
void fmpz_mod_poly_factor_squarefree(fmpz_mod_poly_factor_t res, const fmpz_mod_poly_t f, const fmpz_mod_ctx_t ctx)
4030
void fmpz_mod_poly_factor(fmpz_mod_poly_factor_t res, const fmpz_mod_poly_t f, const fmpz_mod_ctx_t ctx)
4131
void fmpz_mod_poly_factor_cantor_zassenhaus(fmpz_mod_poly_factor_t res, const fmpz_mod_poly_t f, const fmpz_mod_ctx_t ctx)
4232
void fmpz_mod_poly_factor_kaltofen_shoup(fmpz_mod_poly_factor_t res, const fmpz_mod_poly_t poly, const fmpz_mod_ctx_t ctx)
4333
void fmpz_mod_poly_factor_berlekamp(fmpz_mod_poly_factor_t factors, const fmpz_mod_poly_t f, const fmpz_mod_ctx_t ctx)
44-
void _fmpz_mod_poly_interval_poly_worker(void* arg_ptr)
34+
void _fmpz_mod_poly_interval_poly_worker(void * arg_ptr)
4535
void fmpz_mod_poly_roots(fmpz_mod_poly_factor_t r, const fmpz_mod_poly_t f, int with_multiplicity, const fmpz_mod_ctx_t ctx)
4636
int fmpz_mod_poly_roots_factored(fmpz_mod_poly_factor_t r, const fmpz_mod_poly_t f, int with_multiplicity, const fmpz_factor_t n, const fmpz_mod_ctx_t ctx)

src/flint/flintlib/functions/fmpz_mod_vec.pxd

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
1-
from flint.flintlib.types.flint cimport slong, fmpz_struct
2-
from flint.flintlib.functions.fmpz_mod cimport fmpz_mod_ctx_t
3-
from flint.flintlib.functions.fmpz cimport fmpz_t
1+
from flint.flintlib.types.flint cimport fmpz_struct, fmpz_t, slong
2+
from flint.flintlib.types.fmpz_mod cimport fmpz_mod_ctx_t
3+
4+
45

56
cdef extern from "flint/fmpz_mod_vec.h":
67
void _fmpz_mod_vec_set_fmpz_vec(fmpz_struct * A, const fmpz_struct * B, slong len, const fmpz_mod_ctx_t ctx)
Lines changed: 83 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,83 @@
1+
from flint.flintlib.types.flint cimport ulong, slong, fmpz_struct, fmpz_t, nmod_t
2+
from flint.flintlib.types.fmpz cimport fmpz_struct, fmpz_preinvn_struct, fmpz_mat_struct
3+
4+
5+
cdef extern from "flint/fmpz_mod_types.h":
6+
7+
ctypedef struct fmpz_mod_ctx_struct:
8+
fmpz_t n
9+
void (* add_fxn)(fmpz_t, const fmpz_t, const fmpz_t, const fmpz_mod_ctx_struct*)
10+
void (* sub_fxn)(fmpz_t, const fmpz_t, const fmpz_t, const fmpz_mod_ctx_struct*)
11+
void (* mul_fxn)(fmpz_t, const fmpz_t, const fmpz_t, const fmpz_mod_ctx_struct*)
12+
nmod_t mod
13+
ulong n_limbs[3]
14+
ulong ninv_limbs[3]
15+
fmpz_preinvn_struct * ninv_huge
16+
17+
ctypedef fmpz_mod_ctx_struct fmpz_mod_ctx_t[1]
18+
19+
ctypedef fmpz_mat_struct fmpz_mod_mat_struct
20+
21+
ctypedef fmpz_mod_mat_struct fmpz_mod_mat_t[1]
22+
23+
ctypedef struct fmpz_mod_poly_struct:
24+
fmpz_struct * coeffs
25+
slong alloc
26+
slong length
27+
28+
ctypedef fmpz_mod_poly_struct fmpz_mod_poly_t[1]
29+
30+
ctypedef struct fmpz_mod_poly_factor_struct:
31+
fmpz_mod_poly_struct * poly
32+
slong *exp
33+
slong num
34+
slong alloc
35+
36+
ctypedef fmpz_mod_poly_factor_struct fmpz_mod_poly_factor_t[1]
37+
38+
# ctypedef struct fmpz_mod_mpoly_struct:
39+
# fmpz_struct * coeffs
40+
# ulong * exps
41+
# slong length
42+
# flint_bitcnt_t bits
43+
# slong coeffs_alloc
44+
# slong exps_alloc
45+
46+
# ctypedef fmpz_mod_mpoly_struct fmpz_mod_mpoly_t[1]
47+
48+
# ctypedef struct fmpz_mod_mpoly_factor_struct:
49+
# fmpz_t constant
50+
# fmpz_mod_mpoly_struct * poly
51+
# fmpz * exp
52+
# slong num
53+
# slong alloc
54+
55+
56+
cdef extern from "flint/fmpz_mod.h":
57+
58+
ctypedef struct fmpz_mod_discrete_log_pohlig_hellman_table_entry_struct:
59+
fmpz_t gammapow
60+
ulong cm
61+
62+
ctypedef struct fmpz_mod_discrete_log_pohlig_hellman_entry_struct:
63+
slong exp
64+
ulong prime
65+
fmpz_t gamma
66+
fmpz_t gammainv
67+
fmpz_t startingbeta
68+
fmpz_t co
69+
fmpz_t startinge
70+
fmpz_t idem
71+
ulong cbound
72+
ulong dbound
73+
fmpz_mod_discrete_log_pohlig_hellman_table_entry_struct * table # length cbound */
74+
75+
ctypedef struct fmpz_mod_discrete_log_pohlig_hellman_struct:
76+
fmpz_mod_ctx_t fpctx
77+
fmpz_t pm1 # p - 1 */
78+
fmpz_t alpha # p.r. of p */
79+
fmpz_t alphainv
80+
slong num_factors # factors of p - 1
81+
fmpz_mod_discrete_log_pohlig_hellman_entry_struct * entries
82+
83+
ctypedef fmpz_mod_discrete_log_pohlig_hellman_struct fmpz_mod_discrete_log_pohlig_hellman_t[1]
Lines changed: 124 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,124 @@
1+
from flint.flintlib.types.flint cimport slong, fmpz_struct, fmpz_t
2+
from flint.flintlib.types.fmpz_mod cimport fmpz_mod_ctx_t, fmpz_mod_mat_t, fmpz_mod_poly_t
3+
4+
cdef extern from *:
5+
"""
6+
/*
7+
* fmpz_mod_mat function signatures were changed in FLINT 3.1.0
8+
*/
9+
#if __FLINT_RELEASE >= 30100 /* Flint 3.1.0 or later */
10+
11+
#define compat_fmpz_mod_mat_init(mat, rows, cols, ctx) fmpz_mod_mat_init(mat, rows, cols, ctx)
12+
#define compat_fmpz_mod_mat_init_set(mat, src, ctx) fmpz_mod_mat_init_set(mat, src, ctx)
13+
#define compat_fmpz_mod_mat_clear(mat, ctx) fmpz_mod_mat_clear(mat, ctx)
14+
#define compat_fmpz_mod_mat_set(A, B, ctx) fmpz_mod_mat_set(A, B, ctx)
15+
#define compat_fmpz_mod_mat_nrows(mat, ctx) fmpz_mod_mat_nrows(mat, ctx)
16+
#define compat_fmpz_mod_mat_ncols(mat, ctx) fmpz_mod_mat_ncols(mat, ctx)
17+
#define compat_fmpz_mod_mat_entry(mat, i, j) fmpz_mod_mat_entry(mat, i, j)
18+
#define compat_fmpz_mod_mat_set_entry(mat, i, j, val, ctx) fmpz_mod_mat_set_entry(mat, i, j, val, ctx)
19+
#define compat_fmpz_mod_mat_one(mat, ctx) fmpz_mod_mat_one(mat, ctx)
20+
#define compat_fmpz_mod_mat_equal(mat1, mat2, ctx) fmpz_mod_mat_equal(mat1, mat2, ctx)
21+
#define compat_fmpz_mod_mat_is_zero(mat, ctx) fmpz_mod_mat_is_zero(mat, ctx)
22+
#define compat_fmpz_mod_mat_neg(B, A, ctx) fmpz_mod_mat_neg(B, A, ctx)
23+
#define compat_fmpz_mod_mat_add(C, A, B, ctx) fmpz_mod_mat_add(C, A, B, ctx)
24+
#define compat_fmpz_mod_mat_sub(C, A, B, ctx) fmpz_mod_mat_sub(C, A, B, ctx)
25+
#define compat_fmpz_mod_mat_scalar_mul_fmpz(B, A, c, ctx) fmpz_mod_mat_scalar_mul_fmpz(B, A, c, ctx)
26+
#define compat_fmpz_mod_mat_mul(C, A, B, ctx) fmpz_mod_mat_mul(C, A, B, ctx)
27+
#define compat_fmpz_mod_mat_inv(B, A, ctx) fmpz_mod_mat_inv(B, A, ctx)
28+
#define compat_fmpz_mod_mat_transpose(B, A, ctx) fmpz_mod_mat_transpose(B, A, ctx)
29+
#define compat_fmpz_mod_mat_solve(X, A, B, ctx) fmpz_mod_mat_solve(X, A, B, ctx)
30+
#define compat_fmpz_mod_mat_rref(mat, ctx) fmpz_mod_mat_rref(mat, mat, ctx)
31+
#define compat_fmpz_mod_mat_charpoly(p, M, ctx) fmpz_mod_mat_charpoly(p, M, ctx)
32+
#define compat_fmpz_mod_mat_minpoly(p, M, ctx) fmpz_mod_mat_minpoly(p, M, ctx)
33+
34+
#else /* Flint 3.0.0 or 3.0.1 */
35+
36+
#define compat_fmpz_mod_mat_init(mat, rows, cols, ctx) fmpz_mod_mat_init(mat, rows, cols, ctx->n)
37+
#define compat_fmpz_mod_mat_init_set(mat, src, ctx) fmpz_mod_mat_init_set(mat, src)
38+
#define compat_fmpz_mod_mat_clear(mat, ctx) fmpz_mod_mat_clear(mat)
39+
#define compat_fmpz_mod_mat_set(A, B, ctx) fmpz_mod_mat_set(A, B)
40+
#define compat_fmpz_mod_mat_nrows(mat, ctx) fmpz_mod_mat_nrows(mat)
41+
#define compat_fmpz_mod_mat_ncols(mat, ctx) fmpz_mod_mat_ncols(mat)
42+
#define compat_fmpz_mod_mat_entry(mat, i, j) fmpz_mod_mat_entry(mat, i, j)
43+
#define compat_fmpz_mod_mat_set_entry(mat, i, j, val, ctx) fmpz_mod_mat_set_entry(mat, i, j, val)
44+
#define compat_fmpz_mod_mat_one(mat, ctx) fmpz_mod_mat_one(mat)
45+
#define compat_fmpz_mod_mat_equal(mat1, mat2, ctx) fmpz_mod_mat_equal(mat1, mat2)
46+
#define compat_fmpz_mod_mat_is_zero(mat, ctx) fmpz_mod_mat_is_zero(mat)
47+
#define compat_fmpz_mod_mat_neg(B, A, ctx) fmpz_mod_mat_neg(B, A)
48+
#define compat_fmpz_mod_mat_add(C, A, B, ctx) fmpz_mod_mat_add(C, A, B)
49+
#define compat_fmpz_mod_mat_sub(C, A, B, ctx) fmpz_mod_mat_sub(C, A, B)
50+
#define compat_fmpz_mod_mat_scalar_mul_fmpz(B, A, c, ctx) fmpz_mod_mat_scalar_mul_fmpz(B, A, c)
51+
#define compat_fmpz_mod_mat_mul(C, A, B, ctx) fmpz_mod_mat_mul(C, A, B)
52+
#define compat_fmpz_mod_mat_inv(B, A, ctx) fmpz_mod_mat_inv(B, A)
53+
#define compat_fmpz_mod_mat_transpose(B, A, ctx) fmpz_mod_mat_transpose(B, A)
54+
#define compat_fmpz_mod_mat_solve(X, A, B, ctx) fmpz_mod_mat_solve(X, A, B)
55+
#define compat_fmpz_mod_mat_rref(mat, ctx) fmpz_mod_mat_rref(NULL, mat)
56+
#define compat_fmpz_mod_mat_charpoly(p, M, ctx) fmpz_mod_mat_charpoly(p, M, ctx)
57+
#define compat_fmpz_mod_mat_minpoly(p, M, ctx) fmpz_mod_mat_minpoly(p, M, ctx)
58+
59+
#endif
60+
"""
61+
62+
63+
cdef extern from "flint/fmpz_mod_mat.h":
64+
void compat_fmpz_mod_mat_init(fmpz_mod_mat_t mat, slong rows, slong cols, const fmpz_mod_ctx_t ctx)
65+
void compat_fmpz_mod_mat_init_set(fmpz_mod_mat_t mat, const fmpz_mod_mat_t src, const fmpz_mod_ctx_t ctx)
66+
void compat_fmpz_mod_mat_clear(fmpz_mod_mat_t mat, fmpz_mod_ctx_t ctx)
67+
void compat_fmpz_mod_mat_set(fmpz_mod_mat_t B, const fmpz_mod_mat_t A, const fmpz_mod_ctx_t ctx)
68+
slong compat_fmpz_mod_mat_nrows(const fmpz_mod_mat_t mat, const fmpz_mod_ctx_t ctx)
69+
slong compat_fmpz_mod_mat_ncols(const fmpz_mod_mat_t mat, const fmpz_mod_ctx_t ctx)
70+
fmpz_struct * compat_fmpz_mod_mat_entry(const fmpz_mod_mat_t mat, slong i, slong j)
71+
void compat_fmpz_mod_mat_set_entry(fmpz_mod_mat_t mat, slong i, slong j, const fmpz_t val, const fmpz_mod_ctx_t ctx)
72+
void compat_fmpz_mod_mat_one(fmpz_mod_mat_t mat, const fmpz_mod_ctx_t ctx)
73+
int compat_fmpz_mod_mat_equal(const fmpz_mod_mat_t mat1, const fmpz_mod_mat_t mat2, const fmpz_mod_ctx_t ctx)
74+
int compat_fmpz_mod_mat_is_zero(const fmpz_mod_mat_t mat, const fmpz_mod_ctx_t ctx)
75+
void compat_fmpz_mod_mat_neg(fmpz_mod_mat_t B, const fmpz_mod_mat_t A, const fmpz_mod_ctx_t ctx)
76+
void compat_fmpz_mod_mat_add(fmpz_mod_mat_t C, const fmpz_mod_mat_t A, const fmpz_mod_mat_t B, const fmpz_mod_ctx_t ctx)
77+
void compat_fmpz_mod_mat_sub(fmpz_mod_mat_t C, const fmpz_mod_mat_t A, const fmpz_mod_mat_t B, const fmpz_mod_ctx_t ctx)
78+
void compat_fmpz_mod_mat_scalar_mul_fmpz(fmpz_mod_mat_t B, const fmpz_mod_mat_t A, fmpz_t c, const fmpz_mod_ctx_t ctx)
79+
void compat_fmpz_mod_mat_mul(fmpz_mod_mat_t C, const fmpz_mod_mat_t A, const fmpz_mod_mat_t B, const fmpz_mod_ctx_t ctx)
80+
int compat_fmpz_mod_mat_inv(fmpz_mod_mat_t B, fmpz_mod_mat_t A, const fmpz_mod_ctx_t ctx)
81+
void compat_fmpz_mod_mat_transpose(fmpz_mod_mat_t B, const fmpz_mod_mat_t A, const fmpz_mod_ctx_t ctx)
82+
int compat_fmpz_mod_mat_solve(fmpz_mod_mat_t X, const fmpz_mod_mat_t A, const fmpz_mod_mat_t B, const fmpz_mod_ctx_t ctx)
83+
slong compat_fmpz_mod_mat_rref(fmpz_mod_mat_t mat, const fmpz_mod_ctx_t ctx)
84+
void compat_fmpz_mod_mat_charpoly(fmpz_mod_poly_t p, const fmpz_mod_mat_t M, const fmpz_mod_ctx_t ctx)
85+
void compat_fmpz_mod_mat_minpoly(fmpz_mod_poly_t p, const fmpz_mod_mat_t M, const fmpz_mod_ctx_t ctx)
86+
#
87+
# The functions below are unused. The signatures shown are for Flint < 3.1.0
88+
# Probably compat_ versions are needed but each signature should be checked
89+
# against Flint 3.1.0 or later. For now we comment these out.
90+
#
91+
# void _fmpz_mod_mat_set_mod(fmpz_mod_mat_t mat, const fmpz_t n)
92+
# void fmpz_mod_mat_zero(fmpz_mod_mat_t mat)
93+
# void fmpz_mod_mat_swap(fmpz_mod_mat_t mat1, fmpz_mod_mat_t mat2)
94+
# void fmpz_mod_mat_swap_entrywise(fmpz_mod_mat_t mat1, fmpz_mod_mat_t mat2)
95+
# int fmpz_mod_mat_is_empty(const fmpz_mod_mat_t mat)
96+
# int fmpz_mod_mat_is_square(const fmpz_mod_mat_t mat)
97+
# void _fmpz_mod_mat_reduce(fmpz_mod_mat_t mat)
98+
# void fmpz_mod_mat_randtest(fmpz_mod_mat_t mat, flint_rand_t state)
99+
# void fmpz_mod_mat_window_init(fmpz_mod_mat_t window, const fmpz_mod_mat_t mat, slong r1, slong c1, slong r2, slong c2)
100+
# void fmpz_mod_mat_window_clear(fmpz_mod_mat_t window)
101+
# void fmpz_mod_mat_concat_horizontal(fmpz_mod_mat_t res, const fmpz_mod_mat_t mat1, const fmpz_mod_mat_t mat2)
102+
# void fmpz_mod_mat_concat_vertical(fmpz_mod_mat_t res, const fmpz_mod_mat_t mat1, const fmpz_mod_mat_t mat2)
103+
# void fmpz_mod_mat_print_pretty(const fmpz_mod_mat_t mat)
104+
# void fmpz_mod_mat_set_fmpz_mat(fmpz_mod_mat_t A, const fmpz_mat_t B)
105+
# void fmpz_mod_mat_get_fmpz_mat(fmpz_mat_t A, const fmpz_mod_mat_t B)
106+
# void fmpz_mod_mat_scalar_mul_si(fmpz_mod_mat_t B, const fmpz_mod_mat_t A, slong c)
107+
# void fmpz_mod_mat_scalar_mul_ui(fmpz_mod_mat_t B, const fmpz_mod_mat_t A, ulong c)
108+
# # unimported types {'thread_pool_handle'}
109+
# # void _fmpz_mod_mat_mul_classical_threaded_pool_op(fmpz_mod_mat_t D, const fmpz_mod_mat_t C, const fmpz_mod_mat_t A, const fmpz_mod_mat_t B, int op, thread_pool_handle * threads, slong num_threads)
110+
# void _fmpz_mod_mat_mul_classical_threaded_op(fmpz_mod_mat_t D, const fmpz_mod_mat_t C, const fmpz_mod_mat_t A, const fmpz_mod_mat_t B, int op)
111+
# void fmpz_mod_mat_mul_classical_threaded(fmpz_mod_mat_t C, const fmpz_mod_mat_t A, const fmpz_mod_mat_t B)
112+
# void fmpz_mod_mat_sqr(fmpz_mod_mat_t B, const fmpz_mod_mat_t A)
113+
# void fmpz_mod_mat_mul_fmpz_vec(fmpz_struct * c, const fmpz_mod_mat_t A, const fmpz_struct * b, slong blen)
114+
# void fmpz_mod_mat_mul_fmpz_vec_ptr(fmpz_struct * const * c, const fmpz_mod_mat_t A, const fmpz_struct * const * b, slong blen)
115+
# void fmpz_mod_mat_fmpz_vec_mul(fmpz_struct * c, const fmpz_struct * a, slong alen, const fmpz_mod_mat_t B)
116+
# void fmpz_mod_mat_fmpz_vec_mul_ptr(fmpz_struct * const * c, const fmpz_struct * const * a, slong alen, const fmpz_mod_mat_t B)
117+
# void fmpz_mod_mat_trace(fmpz_t trace, const fmpz_mod_mat_t mat)
118+
# void fmpz_mod_mat_strong_echelon_form(fmpz_mod_mat_t mat)
119+
# slong fmpz_mod_mat_howell_form(fmpz_mod_mat_t mat)
120+
# slong fmpz_mod_mat_lu(slong * P, fmpz_mod_mat_t A, int rank_check)
121+
# void fmpz_mod_mat_solve_tril(fmpz_mod_mat_t X, const fmpz_mod_mat_t L, const fmpz_mod_mat_t B, int unit)
122+
# void fmpz_mod_mat_solve_triu(fmpz_mod_mat_t X, const fmpz_mod_mat_t U, const fmpz_mod_mat_t B, int unit)
123+
# int fmpz_mod_mat_can_solve(fmpz_mod_mat_t X, const fmpz_mod_mat_t A, const fmpz_mod_mat_t B)
124+
# void fmpz_mod_mat_similarity(fmpz_mod_mat_t M, slong r, fmpz_t d)

0 commit comments

Comments
 (0)