forked from flintlib/python-flint
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathnmod.pxd
More file actions
27 lines (24 loc) · 1.46 KB
/
nmod.pxd
File metadata and controls
27 lines (24 loc) · 1.46 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
from flint.flintlib.flint cimport mp_limb_t, mp_bitcnt_t, ulong, nmod_t
from flint.flintlib.fmpz cimport fmpz_t
cdef extern from "flint/nmod.h":
# TODO add macros
# from here on is parsed
void nmod_init(nmod_t * mod, mp_limb_t n)
mp_limb_t _nmod_add(mp_limb_t a, mp_limb_t b, nmod_t mod)
mp_limb_t nmod_add(mp_limb_t a, mp_limb_t b, nmod_t mod)
mp_limb_t _nmod_sub(mp_limb_t a, mp_limb_t b, nmod_t mod)
mp_limb_t nmod_sub(mp_limb_t a, mp_limb_t b, nmod_t mod)
mp_limb_t nmod_neg(mp_limb_t a, nmod_t mod)
mp_limb_t nmod_mul(mp_limb_t a, mp_limb_t b, nmod_t mod)
mp_limb_t _nmod_mul_fullword(mp_limb_t a, mp_limb_t b, nmod_t mod)
mp_limb_t nmod_inv(mp_limb_t a, nmod_t mod)
mp_limb_t nmod_div(mp_limb_t a, mp_limb_t b, nmod_t mod)
mp_limb_t nmod_pow_ui(mp_limb_t a, ulong e, nmod_t mod)
mp_limb_t nmod_pow_fmpz(mp_limb_t a, const fmpz_t e, nmod_t mod)
# void nmod_discrete_log_pohlig_hellman_init(nmod_discrete_log_pohlig_hellman_t L)
# void nmod_discrete_log_pohlig_hellman_clear(nmod_discrete_log_pohlig_hellman_t L)
# double nmod_discrete_log_pohlig_hellman_precompute_prime(nmod_discrete_log_pohlig_hellman_t L, mp_limb_t p)
# mp_limb_t nmod_discrete_log_pohlig_hellman_primitive_root(const nmod_discrete_log_pohlig_hellman_t L)
# ulong nmod_discrete_log_pohlig_hellman_run(const nmod_discrete_log_pohlig_hellman_t L, mp_limb_t y)
cdef extern from "flint/fmpz.h":
mp_limb_t fmpz_get_nmod(const fmpz_t f, nmod_t mod)