1
- from flint.flintlib.types.flint cimport ulong, flint_rand_t, slong, mp_limb_t
2
- from flint.flintlib.fmpz cimport fmpz_t
1
+ from flint.flintlib.types.flint cimport flint_rand_t, slong, ulong
2
+ from flint.flintlib.types.fmpz cimport fmpz_t
3
+
4
+ # unknown type n_ecm_t
5
+ # unknown type n_factor_t
6
+ # unknown type n_primes_t
3
7
4
- cdef extern from " flint/ulong_extras.h" :
5
- # ulong n_gcd(ulong n, ulong k)
6
- # int n_is_prime(ulong n)
7
8
8
- # from here on is parsed
9
+ cdef extern from " flint/ulong_extras.h " :
9
10
ulong n_randlimb(flint_rand_t state)
10
11
ulong n_randbits(flint_rand_t state, unsigned int bits)
11
12
ulong n_randtest_bits(flint_rand_t state, int bits)
@@ -21,6 +22,7 @@ cdef extern from "flint/ulong_extras.h":
21
22
ulong n_clog_2exp(ulong n, ulong b)
22
23
ulong n_revbin(ulong n, ulong b)
23
24
int n_sizeinbase(ulong n, int base)
25
+ ulong n_preinvert_limb_prenorm(ulong n)
24
26
ulong n_preinvert_limb(ulong n)
25
27
double n_precompute_inverse(ulong n)
26
28
ulong n_mod_precomp(ulong a, ulong n, double ninv)
@@ -38,25 +40,25 @@ cdef extern from "flint/ulong_extras.h":
38
40
ulong n_gcd(ulong x, ulong y)
39
41
ulong n_gcdinv(ulong * a, ulong x, ulong y)
40
42
ulong n_xgcd(ulong * a, ulong * b, ulong x, ulong y)
41
- # int n_jacobi(mp_limb_signed_t x, ulong y)
43
+ int n_jacobi(slong x, ulong y)
42
44
int n_jacobi_unsigned(ulong x, ulong y)
43
45
ulong n_addmod(ulong a, ulong b, ulong n)
44
46
ulong n_submod(ulong a, ulong b, ulong n)
45
47
ulong n_invmod(ulong x, ulong y)
46
- # ulong n_powmod_precomp(ulong a, mp_limb_signed_t exp, ulong n, double npre)
48
+ ulong n_powmod_precomp(ulong a, slong exp, ulong n, double npre)
47
49
ulong n_powmod_ui_precomp(ulong a, ulong exp, ulong n, double npre)
48
- # ulong n_powmod(ulong a, mp_limb_signed_t exp, ulong n)
49
- # ulong n_powmod2_preinv(ulong a, mp_limb_signed_t exp, ulong n, ulong ninv)
50
- # ulong n_powmod2(ulong a, mp_limb_signed_t exp, ulong n)
50
+ ulong n_powmod(ulong a, slong exp, ulong n)
51
+ ulong n_powmod2_preinv(ulong a, slong exp, ulong n, ulong ninv)
52
+ ulong n_powmod2(ulong a, slong exp, ulong n)
51
53
ulong n_powmod2_ui_preinv(ulong a, ulong exp, ulong n, ulong ninv)
52
54
ulong n_powmod2_fmpz_preinv(ulong a, const fmpz_t exp, ulong n, ulong ninv)
53
55
ulong n_sqrtmod(ulong a, ulong p)
54
56
slong n_sqrtmod_2pow(ulong ** sqrt, ulong a, slong exp)
55
57
slong n_sqrtmod_primepow(ulong ** sqrt, ulong a, ulong p, slong exp)
56
58
# slong n_sqrtmodn(ulong ** sqrt, ulong a, n_factor_t * fac)
57
- mp_limb_t n_mulmod_shoup(mp_limb_t w, mp_limb_t t, mp_limb_t w_precomp, mp_limb_t p)
58
- mp_limb_t n_mulmod_precomp_shoup(mp_limb_t w, mp_limb_t p)
59
- int n_divides(mp_limb_t * q, mp_limb_t n, mp_limb_t p)
59
+ ulong n_mulmod_shoup(ulong w, ulong t, ulong w_precomp, ulong p)
60
+ ulong n_mulmod_precomp_shoup(ulong w, ulong p)
61
+ int n_divides(ulong * q, ulong n, ulong p)
60
62
# void n_primes_init(n_primes_t iter)
61
63
# void n_primes_clear(n_primes_t iter)
62
64
# ulong n_primes_next(n_primes_t iter)
@@ -69,9 +71,9 @@ cdef extern from "flint/ulong_extras.h":
69
71
void n_cleanup_primes()
70
72
ulong n_nextprime(ulong n, int proved)
71
73
ulong n_prime_pi(ulong n)
72
- void n_prime_pi_bounds(ulong * lo, ulong * hi, ulong n)
74
+ void n_prime_pi_bounds(ulong * lo, ulong * hi, ulong n)
73
75
ulong n_nth_prime(ulong n)
74
- void n_nth_prime_bounds(ulong * lo, ulong * hi, ulong n)
76
+ void n_nth_prime_bounds(ulong * lo, ulong * hi, ulong n)
75
77
int n_is_oddprime_small(ulong n)
76
78
int n_is_oddprime_binary(ulong n)
77
79
int n_is_prime_pocklington(ulong n, ulong iterations)
@@ -90,18 +92,19 @@ cdef extern from "flint/ulong_extras.h":
90
92
int n_is_square(ulong x)
91
93
int n_is_perfect_power235(ulong n)
92
94
int n_is_perfect_power(ulong * root, ulong n)
93
- ulong n_rootrem(ulong* remainder, ulong n, ulong root)
95
+ ulong n_rootrem(ulong * remainder, ulong n, ulong root)
94
96
ulong n_cbrt(ulong n)
95
- ulong n_cbrt_newton_iteration(ulong n)
96
97
ulong n_cbrt_binary_search(ulong n)
97
98
ulong n_cbrt_chebyshev_approx(ulong n)
98
- ulong n_cbrtrem(ulong* remainder, ulong n)
99
+ ulong n_cbrtrem(ulong * remainder, ulong n)
100
+ # void n_factor_init(n_factor_t * factors)
101
+ # ulong n_factor_evaluate(const n_factor_t * factors)
99
102
int n_remove(ulong * n, ulong p)
100
103
int n_remove2_precomp(ulong * n, ulong p, double ppre)
101
104
# void n_factor_insert(n_factor_t * factors, ulong p, ulong exp)
102
105
# ulong n_factor_trial_range(n_factor_t * factors, ulong n, ulong start, ulong num_primes)
103
106
# ulong n_factor_trial(n_factor_t * factors, ulong n, ulong num_primes)
104
- ulong n_factor_power235(ulong * exp, ulong n)
107
+ ulong n_factor_power235(ulong * exp, ulong n)
105
108
ulong n_factor_one_line(ulong n, ulong iters)
106
109
ulong n_factor_lehman(ulong n)
107
110
ulong n_factor_SQUFOF(ulong n, ulong iters)
@@ -110,8 +113,8 @@ cdef extern from "flint/ulong_extras.h":
110
113
# ulong n_factor_partial(n_factor_t * factors, ulong n, ulong limit, int proved)
111
114
ulong n_factor_pp1(ulong n, ulong B1, ulong c)
112
115
ulong n_factor_pp1_wrapper(ulong n)
113
- int n_factor_pollard_brent_single(mp_limb_t * factor, mp_limb_t n, mp_limb_t ninv, mp_limb_t ai, mp_limb_t xi, mp_limb_t normbits, mp_limb_t max_iters)
114
- int n_factor_pollard_brent(mp_limb_t * factor, flint_rand_t state, mp_limb_t n_in, mp_limb_t max_tries, mp_limb_t max_iters)
116
+ int n_factor_pollard_brent_single(ulong * factor, ulong n, ulong ninv, ulong ai, ulong xi, ulong normbits, ulong max_iters)
117
+ int n_factor_pollard_brent(ulong * factor, flint_rand_t state, ulong n_in, ulong max_tries, ulong max_iters)
115
118
int n_moebius_mu(ulong n)
116
119
void n_moebius_mu_vec(int * mu, ulong len )
117
120
int n_is_squarefree(ulong n)
@@ -121,10 +124,10 @@ cdef extern from "flint/ulong_extras.h":
121
124
# ulong n_primitive_root_prime_prefactor(ulong p, n_factor_t * factors)
122
125
ulong n_primitive_root_prime(ulong p)
123
126
ulong n_discrete_log_bsgs(ulong b, ulong a, ulong n)
124
- # void n_factor_ecm_double(mp_limb_t * x, mp_limb_t * z, mp_limb_t x0, mp_limb_t z0, mp_limb_t n, n_ecm_t n_ecm_inf)
125
- # void n_factor_ecm_add(mp_limb_t * x, mp_limb_t * z, mp_limb_t x1, mp_limb_t z1, mp_limb_t x2, mp_limb_t z2, mp_limb_t x0, mp_limb_t z0, mp_limb_t n, n_ecm_t n_ecm_inf)
126
- # void n_factor_ecm_mul_montgomery_ladder(mp_limb_t * x, mp_limb_t * z, mp_limb_t x0, mp_limb_t z0, mp_limb_t k, mp_limb_t n, n_ecm_t n_ecm_inf)
127
- # int n_factor_ecm_select_curve(mp_limb_t * f, mp_limb_t sigma, mp_limb_t n, n_ecm_t n_ecm_inf)
128
- # int n_factor_ecm_stage_I(mp_limb_t * f, const mp_limb_t * prime_array, mp_limb_t num, mp_limb_t B1, mp_limb_t n, n_ecm_t n_ecm_inf)
129
- # int n_factor_ecm_stage_II(mp_limb_t * f, mp_limb_t B1, mp_limb_t B2, mp_limb_t P, mp_limb_t n, n_ecm_t n_ecm_inf)
130
- # int n_factor_ecm(mp_limb_t * f, mp_limb_t curves, mp_limb_t B1, mp_limb_t B2, flint_rand_t state, mp_limb_t n)
127
+ # void n_factor_ecm_double(ulong * x, ulong * z, ulong x0, ulong z0, ulong n, n_ecm_t n_ecm_inf)
128
+ # void n_factor_ecm_add(ulong * x, ulong * z, ulong x1, ulong z1, ulong x2, ulong z2, ulong x0, ulong z0, ulong n, n_ecm_t n_ecm_inf)
129
+ # void n_factor_ecm_mul_montgomery_ladder(ulong * x, ulong * z, ulong x0, ulong z0, ulong k, ulong n, n_ecm_t n_ecm_inf)
130
+ # int n_factor_ecm_select_curve(ulong * f, ulong sigma, ulong n, n_ecm_t n_ecm_inf)
131
+ # int n_factor_ecm_stage_I(ulong * f, const ulong * prime_array, ulong num, ulong B1, ulong n, n_ecm_t n_ecm_inf)
132
+ # int n_factor_ecm_stage_II(ulong * f, ulong B1, ulong B2, ulong P, ulong n, n_ecm_t n_ecm_inf)
133
+ int n_factor_ecm(ulong * f, ulong curves, ulong B1, ulong B2, flint_rand_t state, ulong n)
0 commit comments