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
37
4- cdef extern from " flint/ulong_extras.h" :
5- # ulong n_gcd(ulong n, ulong k)
6- # int n_is_prime(ulong n)
78
8- # from here on is parsed
9+ cdef extern from " flint/ulong_extras.h " :
910 ulong n_randlimb(flint_rand_t state)
1011 ulong n_randbits(flint_rand_t state, unsigned int bits)
1112 ulong n_randtest_bits(flint_rand_t state, int bits)
@@ -21,6 +22,7 @@ cdef extern from "flint/ulong_extras.h":
2122 ulong n_clog_2exp(ulong n, ulong b)
2223 ulong n_revbin(ulong n, ulong b)
2324 int n_sizeinbase(ulong n, int base)
25+ ulong n_preinvert_limb_prenorm(ulong n)
2426 ulong n_preinvert_limb(ulong n)
2527 double n_precompute_inverse(ulong n)
2628 ulong n_mod_precomp(ulong a, ulong n, double ninv)
@@ -38,25 +40,25 @@ cdef extern from "flint/ulong_extras.h":
3840 ulong n_gcd(ulong x, ulong y)
3941 ulong n_gcdinv(ulong * a, ulong x, ulong y)
4042 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)
4244 int n_jacobi_unsigned(ulong x, ulong y)
4345 ulong n_addmod(ulong a, ulong b, ulong n)
4446 ulong n_submod(ulong a, ulong b, ulong n)
4547 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)
4749 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)
5153 ulong n_powmod2_ui_preinv(ulong a, ulong exp, ulong n, ulong ninv)
5254 ulong n_powmod2_fmpz_preinv(ulong a, const fmpz_t exp, ulong n, ulong ninv)
5355 ulong n_sqrtmod(ulong a, ulong p)
5456 slong n_sqrtmod_2pow(ulong ** sqrt, ulong a, slong exp)
5557 slong n_sqrtmod_primepow(ulong ** sqrt, ulong a, ulong p, slong exp)
5658 # 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)
6062 # void n_primes_init(n_primes_t iter)
6163 # void n_primes_clear(n_primes_t iter)
6264 # ulong n_primes_next(n_primes_t iter)
@@ -69,9 +71,9 @@ cdef extern from "flint/ulong_extras.h":
6971 void n_cleanup_primes()
7072 ulong n_nextprime(ulong n, int proved)
7173 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)
7375 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)
7577 int n_is_oddprime_small(ulong n)
7678 int n_is_oddprime_binary(ulong n)
7779 int n_is_prime_pocklington(ulong n, ulong iterations)
@@ -90,18 +92,19 @@ cdef extern from "flint/ulong_extras.h":
9092 int n_is_square(ulong x)
9193 int n_is_perfect_power235(ulong n)
9294 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)
9496 ulong n_cbrt(ulong n)
95- ulong n_cbrt_newton_iteration(ulong n)
9697 ulong n_cbrt_binary_search(ulong n)
9798 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)
99102 int n_remove(ulong * n, ulong p)
100103 int n_remove2_precomp(ulong * n, ulong p, double ppre)
101104 # void n_factor_insert(n_factor_t * factors, ulong p, ulong exp)
102105 # ulong n_factor_trial_range(n_factor_t * factors, ulong n, ulong start, ulong num_primes)
103106 # 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)
105108 ulong n_factor_one_line(ulong n, ulong iters)
106109 ulong n_factor_lehman(ulong n)
107110 ulong n_factor_SQUFOF(ulong n, ulong iters)
@@ -110,8 +113,8 @@ cdef extern from "flint/ulong_extras.h":
110113 # ulong n_factor_partial(n_factor_t * factors, ulong n, ulong limit, int proved)
111114 ulong n_factor_pp1(ulong n, ulong B1, ulong c)
112115 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)
115118 int n_moebius_mu(ulong n)
116119 void n_moebius_mu_vec(int * mu, ulong len )
117120 int n_is_squarefree(ulong n)
@@ -121,10 +124,10 @@ cdef extern from "flint/ulong_extras.h":
121124 # ulong n_primitive_root_prime_prefactor(ulong p, n_factor_t * factors)
122125 ulong n_primitive_root_prime(ulong p)
123126 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