Skip to content

Commit 82ede3a

Browse files
Merge pull request #75 from deinst/mod_experiment
Mod experiment
2 parents 4b7bab3 + b739118 commit 82ede3a

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

49 files changed

+4087
-1600
lines changed

src/flint/flint_base/flint_context.pyx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
from flint.flintlib.arf cimport ARF_RND_DOWN
2-
from flint._flint cimport (
2+
from flint.flintlib.flint cimport (
33
flint_cleanup,
44
flint_get_num_threads,
55
flint_set_num_threads

src/flint/flintlib/acb.pxd

Lines changed: 222 additions & 163 deletions
Large diffs are not rendered by default.

src/flint/flintlib/acb_calc.pxd

Lines changed: 8 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,8 @@
11
from flint.flintlib.acb cimport acb_t, acb_ptr
22
from flint.flintlib.mag cimport mag_t
3+
from flint.flintlib.flint cimport slong
4+
from flint.flintlib.arb cimport arb_t
5+
from flint.flintlib.arf cimport arf_t
36

47
cdef extern from "acb_calc.h":
58
ctypedef int (*acb_calc_func_t)(acb_ptr out, const acb_t inp, void * param, long order, long prec)
@@ -13,10 +16,10 @@ cdef extern from "acb_calc.h":
1316

1417
ctypedef acb_calc_integrate_opt_struct acb_calc_integrate_opt_t[1]
1518

19+
# from /Users/davideinstein/projects/arb/doc/source/acb_calc.rst
20+
int acb_calc_integrate(acb_t res, acb_calc_func_t func, void * param, const acb_t a, const acb_t b, slong rel_goal, const mag_t abs_tol, const acb_calc_integrate_opt_t options, slong prec)
1621
void acb_calc_integrate_opt_init(acb_calc_integrate_opt_t options)
22+
int acb_calc_integrate_gl_auto_deg(acb_t res, slong * num_eval, acb_calc_func_t func, void * param, const acb_t a, const acb_t b, const mag_t tol, slong deg_limit, int flags, slong prec)
23+
void acb_calc_cauchy_bound(arb_t bound, acb_calc_func_t func, void * param, const acb_t x, const arb_t radius, slong maxdepth, slong prec)
24+
int acb_calc_integrate_taylor(acb_t res, acb_calc_func_t func, void * param, const acb_t a, const acb_t b, const arf_t inner_radius, const arf_t outer_radius, slong accuracy_goal, slong prec)
1725

18-
int acb_calc_integrate(acb_t res, acb_calc_func_t f, void * param,
19-
const acb_t a, const acb_t b,
20-
long goal, const mag_t tol,
21-
const acb_calc_integrate_opt_t options,
22-
long prec)

src/flint/flintlib/acb_dirichlet.pxd

Lines changed: 124 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -1,24 +1,133 @@
11
from flint.flintlib.acb cimport acb_t, acb_ptr
22
from flint.flintlib.dirichlet cimport dirichlet_group_t, dirichlet_char_t
3-
from flint._flint cimport ulong
3+
from flint.flintlib.flint cimport ulong, slong
44
from flint.flintlib.acb_poly cimport acb_poly_t
55
from flint.flintlib.fmpz cimport fmpz_t
6-
from flint.flintlib.arb cimport arb_t
7-
6+
from flint.flintlib.arb cimport arb_t, arb_ptr
7+
from flint.flintlib.mag cimport mag_t, mag_struct
8+
from flint.flintlib.acb cimport acb_struct, acb_srcptr
9+
from flint.flintlib.fmpq cimport fmpq_t
10+
from flint.flintlib.arf cimport arf_t
11+
from flint.flintlib.arb cimport arb_srcptr
812

913
cdef extern from "acb_dirichlet.h":
10-
void acb_dirichlet_eta(acb_t res, const acb_t s, long prec)
11-
void acb_dirichlet_chi(acb_t res, const dirichlet_group_t G, const dirichlet_char_t chi, ulong n, long prec)
14+
ctypedef struct acb_dirichlet_roots_struct:
15+
ulong order
16+
ulong reduced_order
17+
acb_t z
18+
slong size
19+
slong depth
20+
acb_ptr Z
21+
int use_pow
22+
23+
ctypedef acb_dirichlet_roots_struct acb_dirichlet_roots_t[1]
24+
25+
ctypedef struct acb_dirichlet_hurwitz_precomp_struct:
26+
acb_struct s
27+
mag_struct err
28+
acb_ptr coeffs
29+
int deflate
30+
slong A
31+
slong N
32+
slong K
1233

13-
void acb_dirichlet_l(acb_t res, const acb_t s, const dirichlet_group_t G, const dirichlet_char_t chi, long prec)
14-
void acb_dirichlet_hardy_z(acb_ptr res, const acb_t t, const dirichlet_group_t G, const dirichlet_char_t chi, long len, long prec)
15-
void acb_dirichlet_l_series(acb_poly_t res, const acb_poly_t s, const dirichlet_group_t G, const dirichlet_char_t chi, int deflate, long len, long prec)
34+
ctypedef acb_dirichlet_hurwitz_precomp_struct acb_dirichlet_hurwitz_precomp_t[1]
1635

17-
void acb_dirichlet_stieltjes(acb_t res, const fmpz_t n, const acb_t a, long prec)
1836

19-
void acb_dirichlet_gram_point(arb_t res, const fmpz_t n, const dirichlet_group_t G, const dirichlet_char_t chi, long prec)
20-
void acb_dirichlet_zeta_zeros(acb_ptr res, const fmpz_t n, long len, long prec)
21-
void acb_dirichlet_zeta_nzeros(arb_t res, const arb_t t, long prec)
22-
void acb_dirichlet_backlund_s(arb_t res, const arb_t t, long prec)
23-
void acb_dirichlet_zeta_zero(acb_t res, const fmpz_t n, long prec)
24-
void acb_dirichlet_zeta_zeros(acb_ptr res, const fmpz_t n, long len, long prec)
37+
# from here on is parsed
38+
void acb_dirichlet_roots_init(acb_dirichlet_roots_t roots, ulong n, slong num, slong prec)
39+
void acb_dirichlet_roots_clear(acb_dirichlet_roots_t roots)
40+
void acb_dirichlet_root(acb_t res, const acb_dirichlet_roots_t roots, ulong k, slong prec)
41+
void acb_dirichlet_powsum_term(acb_ptr res, arb_t log_prev, ulong * prev, const acb_t s, ulong k, int integer, int critical_line, slong len, slong prec)
42+
void acb_dirichlet_powsum_sieved(acb_ptr res, const acb_t s, ulong n, slong len, slong prec)
43+
void acb_dirichlet_powsum_smooth(acb_ptr res, const acb_t s, ulong n, slong len, slong prec)
44+
void acb_dirichlet_zeta(acb_t res, const acb_t s, slong prec)
45+
void acb_dirichlet_zeta_jet(acb_t res, const acb_t s, int deflate, slong len, slong prec)
46+
void acb_dirichlet_zeta_bound(mag_t res, const acb_t s)
47+
void acb_dirichlet_zeta_deriv_bound(mag_t der1, mag_t der2, const acb_t s)
48+
void acb_dirichlet_eta(acb_t res, const acb_t s, slong prec)
49+
void acb_dirichlet_xi(acb_t res, const acb_t s, slong prec)
50+
void acb_dirichlet_zeta_rs_f_coeffs(acb_ptr f, const arb_t p, slong n, slong prec)
51+
void acb_dirichlet_zeta_rs_d_coeffs(arb_ptr d, const arb_t sigma, slong k, slong prec)
52+
void acb_dirichlet_zeta_rs_bound(mag_t err, const acb_t s, slong K)
53+
void acb_dirichlet_zeta_rs_r(acb_t res, const acb_t s, slong K, slong prec)
54+
void acb_dirichlet_zeta_rs(acb_t res, const acb_t s, slong K, slong prec)
55+
void acb_dirichlet_zeta_jet_rs(acb_t res, const acb_t s, slong len, slong prec)
56+
void acb_dirichlet_hurwitz(acb_t res, const acb_t s, const acb_t a, slong prec)
57+
void acb_dirichlet_hurwitz_precomp_init(acb_dirichlet_hurwitz_precomp_t pre, const acb_t s, int deflate, ulong A, ulong K, ulong N, slong prec)
58+
void acb_dirichlet_hurwitz_precomp_init_num(acb_dirichlet_hurwitz_precomp_t pre, const acb_t s, int deflate, double num_eval, slong prec)
59+
void acb_dirichlet_hurwitz_precomp_clear(acb_dirichlet_hurwitz_precomp_t pre)
60+
void acb_dirichlet_hurwitz_precomp_choose_param(ulong * A, ulong * K, ulong * N, const acb_t s, double num_eval, slong prec)
61+
void acb_dirichlet_hurwitz_precomp_bound(mag_t res, const acb_t s, ulong A, ulong K, ulong N)
62+
void acb_dirichlet_hurwitz_precomp_eval(acb_t res, const acb_dirichlet_hurwitz_precomp_t pre, ulong p, ulong q, slong prec)
63+
void acb_dirichlet_lerch_phi_integral(acb_t res, const acb_t z, const acb_t s, const acb_t a, slong prec)
64+
void acb_dirichlet_lerch_phi_direct(acb_t res, const acb_t z, const acb_t s, const acb_t a, slong prec)
65+
void acb_dirichlet_lerch_phi(acb_t res, const acb_t z, const acb_t s, const acb_t a, slong prec)
66+
void acb_dirichlet_stieltjes(acb_t res, const fmpz_t n, const acb_t a, slong prec)
67+
void acb_dirichlet_chi(acb_t res, const dirichlet_group_t G, const dirichlet_char_t chi, ulong n, slong prec)
68+
void acb_dirichlet_chi_vec(acb_ptr v, const dirichlet_group_t G, const dirichlet_char_t chi, slong nv, slong prec)
69+
void acb_dirichlet_pairing(acb_t res, const dirichlet_group_t G, ulong m, ulong n, slong prec)
70+
void acb_dirichlet_pairing_char(acb_t res, const dirichlet_group_t G, const dirichlet_char_t a, const dirichlet_char_t b, slong prec)
71+
void acb_dirichlet_gauss_sum_naive(acb_t res, const dirichlet_group_t G, const dirichlet_char_t chi, slong prec)
72+
void acb_dirichlet_gauss_sum_factor(acb_t res, const dirichlet_group_t G, const dirichlet_char_t chi, slong prec)
73+
void acb_dirichlet_gauss_sum_order2(acb_t res, const dirichlet_char_t chi, slong prec)
74+
void acb_dirichlet_gauss_sum_theta(acb_t res, const dirichlet_group_t G, const dirichlet_char_t chi, slong prec)
75+
void acb_dirichlet_gauss_sum(acb_t res, const dirichlet_group_t G, const dirichlet_char_t chi, slong prec)
76+
void acb_dirichlet_gauss_sum_ui(acb_t res, const dirichlet_group_t G, ulong a, slong prec)
77+
void acb_dirichlet_jacobi_sum_naive(acb_t res, const dirichlet_group_t G, const dirichlet_char_t chi1, const dirichlet_char_t chi2, slong prec)
78+
void acb_dirichlet_jacobi_sum_factor(acb_t res, const dirichlet_group_t G, const dirichlet_char_t chi1, const dirichlet_char_t chi2, slong prec)
79+
void acb_dirichlet_jacobi_sum_gauss(acb_t res, const dirichlet_group_t G, const dirichlet_char_t chi1, const dirichlet_char_t chi2, slong prec)
80+
void acb_dirichlet_jacobi_sum(acb_t res, const dirichlet_group_t G, const dirichlet_char_t chi1, const dirichlet_char_t chi2, slong prec)
81+
void acb_dirichlet_jacobi_sum_ui(acb_t res, const dirichlet_group_t G, ulong a, ulong b, slong prec)
82+
void acb_dirichlet_chi_theta_arb(acb_t res, const dirichlet_group_t G, const dirichlet_char_t chi, const arb_t t, slong prec)
83+
void acb_dirichlet_ui_theta_arb(acb_t res, const dirichlet_group_t G, ulong a, const arb_t t, slong prec)
84+
ulong acb_dirichlet_theta_length(ulong q, const arb_t t, slong prec)
85+
void acb_dirichlet_qseries_powers_naive(acb_t res, const arb_t x, int p, const ulong * a, const acb_dirichlet_roots_t z, slong len, slong prec)
86+
void acb_dirichlet_qseries_powers_smallorder(acb_t res, const arb_t x, int p, const ulong * a, const acb_dirichlet_roots_t z, slong len, slong prec)
87+
void acb_dirichlet_dft_conrey(acb_ptr w, acb_srcptr v, const dirichlet_group_t G, slong prec)
88+
void acb_dirichlet_dft(acb_ptr w, acb_srcptr v, const dirichlet_group_t G, slong prec)
89+
void acb_dirichlet_root_number_theta(acb_t res, const dirichlet_group_t G, const dirichlet_char_t chi, slong prec)
90+
void acb_dirichlet_root_number(acb_t res, const dirichlet_group_t G, const dirichlet_char_t chi, slong prec)
91+
void acb_dirichlet_l_hurwitz(acb_t res, const acb_t s, const acb_dirichlet_hurwitz_precomp_t precomp, const dirichlet_group_t G, const dirichlet_char_t chi, slong prec)
92+
void acb_dirichlet_l_euler_product(acb_t res, const acb_t s, const dirichlet_group_t G, const dirichlet_char_t chi, slong prec)
93+
void _acb_dirichlet_euler_product_real_ui(arb_t res, ulong s, const signed char * chi, int mod, int reciprocal, slong prec)
94+
void acb_dirichlet_l(acb_t res, const acb_t s, const dirichlet_group_t G, const dirichlet_char_t chi, slong prec)
95+
void acb_dirichlet_l_fmpq(acb_t res, const fmpq_t s, const dirichlet_group_t G, const dirichlet_char_t chi, slong prec)
96+
void acb_dirichlet_l_fmpq_afe(acb_t res, const fmpq_t s, const dirichlet_group_t G, const dirichlet_char_t chi, slong prec)
97+
void acb_dirichlet_l_vec_hurwitz(acb_ptr res, const acb_t s, const acb_dirichlet_hurwitz_precomp_t precomp, const dirichlet_group_t G, slong prec)
98+
void acb_dirichlet_l_jet(acb_ptr res, const acb_t s, const dirichlet_group_t G, const dirichlet_char_t chi, int deflate, slong len, slong prec)
99+
void _acb_dirichlet_l_series(acb_ptr res, acb_srcptr s, slong slen, const dirichlet_group_t G, const dirichlet_char_t chi, int deflate, slong len, slong prec)
100+
void acb_dirichlet_l_series(acb_poly_t res, const acb_poly_t s, const dirichlet_group_t G, const dirichlet_char_t chi, int deflate, slong len, slong prec)
101+
void acb_dirichlet_hardy_theta(acb_ptr res, const acb_t t, const dirichlet_group_t G, const dirichlet_char_t chi, slong len, slong prec)
102+
void acb_dirichlet_hardy_z(acb_t res, const acb_t t, const dirichlet_group_t G, const dirichlet_char_t chi, slong len, slong prec)
103+
void _acb_dirichlet_hardy_theta_series(acb_ptr res, acb_srcptr t, slong tlen, const dirichlet_group_t G, const dirichlet_char_t chi, slong len, slong prec)
104+
void acb_dirichlet_hardy_theta_series(acb_poly_t res, const acb_poly_t t, const dirichlet_group_t G, const dirichlet_char_t chi, slong len, slong prec)
105+
void _acb_dirichlet_hardy_z_series(acb_ptr res, acb_srcptr t, slong tlen, const dirichlet_group_t G, const dirichlet_char_t chi, slong len, slong prec)
106+
void acb_dirichlet_hardy_z_series(acb_poly_t res, const acb_poly_t t, const dirichlet_group_t G, const dirichlet_char_t chi, slong len, slong prec)
107+
void acb_dirichlet_gram_point(arb_t res, const fmpz_t n, const dirichlet_group_t G, const dirichlet_char_t chi, slong prec)
108+
ulong acb_dirichlet_turing_method_bound(const fmpz_t p)
109+
int _acb_dirichlet_definite_hardy_z(arb_t res, const arf_t t, slong * pprec)
110+
void _acb_dirichlet_isolate_gram_hardy_z_zero(arf_t a, arf_t b, const fmpz_t n)
111+
void _acb_dirichlet_isolate_rosser_hardy_z_zero(arf_t a, arf_t b, const fmpz_t n)
112+
void _acb_dirichlet_isolate_turing_hardy_z_zero(arf_t a, arf_t b, const fmpz_t n)
113+
void acb_dirichlet_isolate_hardy_z_zero(arf_t a, arf_t b, const fmpz_t n)
114+
void _acb_dirichlet_refine_hardy_z_zero(arb_t res, const arf_t a, const arf_t b, slong prec)
115+
void acb_dirichlet_hardy_z_zero(arb_t res, const fmpz_t n, slong prec)
116+
void acb_dirichlet_hardy_z_zeros(arb_ptr res, const fmpz_t n, slong len, slong prec)
117+
void acb_dirichlet_zeta_zero(acb_t res, const fmpz_t n, slong prec)
118+
void acb_dirichlet_zeta_zeros(acb_ptr res, const fmpz_t n, slong len, slong prec)
119+
void _acb_dirichlet_exact_zeta_nzeros(fmpz_t res, const arf_t t)
120+
void acb_dirichlet_zeta_nzeros(arb_t res, const arb_t t, slong prec)
121+
void acb_dirichlet_backlund_s(arb_t res, const arb_t t, slong prec)
122+
void acb_dirichlet_backlund_s_bound(mag_t res, const arb_t t)
123+
void acb_dirichlet_zeta_nzeros_gram(fmpz_t res, const fmpz_t n)
124+
slong acb_dirichlet_backlund_s_gram(const fmpz_t n)
125+
void acb_dirichlet_platt_scaled_lambda(arb_t res, const arb_t t, slong prec)
126+
void acb_dirichlet_platt_scaled_lambda_vec(arb_ptr res, const fmpz_t T, slong A, slong B, slong prec)
127+
void acb_dirichlet_platt_multieval(arb_ptr res, const fmpz_t T, slong A, slong B, const arb_t h, const fmpz_t J, slong K, slong sigma, slong prec)
128+
void acb_dirichlet_platt_multieval_threaded(arb_ptr res, const fmpz_t T, slong A, slong B, const arb_t h, const fmpz_t J, slong K, slong sigma, slong prec)
129+
void acb_dirichlet_platt_ws_interpolation(arb_t res, arf_t deriv, const arb_t t0, arb_srcptr p, const fmpz_t T, slong A, slong B, slong Ns_max, const arb_t H, slong sigma, slong prec)
130+
slong _acb_dirichlet_platt_local_hardy_z_zeros(arb_ptr res, const fmpz_t n, slong len, const fmpz_t T, slong A, slong B, const arb_t h, const fmpz_t J, slong K, slong sigma_grid, slong Ns_max, const arb_t H, slong sigma_interp, slong prec)
131+
slong acb_dirichlet_platt_local_hardy_z_zeros(arb_ptr res, const fmpz_t n, slong len, slong prec)
132+
slong acb_dirichlet_platt_hardy_z_zeros(arb_ptr res, const fmpz_t n, slong len, slong prec)
133+
slong acb_dirichlet_platt_zeta_zeros(acb_ptr res, const fmpz_t n, slong len, slong prec)

src/flint/flintlib/acb_elliptic.pxd

Lines changed: 29 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -1,16 +1,31 @@
1-
from flint.flintlib.acb cimport acb_t
1+
from flint.flintlib.acb cimport acb_t, acb_ptr, acb_srcptr
2+
from flint.flintlib.acb_poly cimport acb_poly_t
3+
from flint.flintlib.flint cimport slong
24

35
cdef extern from "acb_elliptic.h":
4-
void acb_elliptic_rf(acb_t res, const acb_t x, const acb_t y, const acb_t z, int flags, long prec)
5-
void acb_elliptic_rj(acb_t res, const acb_t x, const acb_t y, const acb_t z, const acb_t p, int flags, long prec)
6-
void acb_elliptic_rg(acb_t res, const acb_t x, const acb_t y, const acb_t z, int flags, long prec)
7-
void acb_elliptic_f(acb_t res, const acb_t phi, const acb_t m, int times_pi, long prec)
8-
void acb_elliptic_e_inc(acb_t res, const acb_t phi, const acb_t m, int times_pi, long prec)
9-
void acb_elliptic_pi(acb_t res, const acb_t n, const acb_t m, long prec)
10-
void acb_elliptic_pi_inc(acb_t res, const acb_t n, const acb_t phi, const acb_t m, int times_pi, long prec)
11-
void acb_elliptic_p(acb_t res, const acb_t z, const acb_t tau, long prec)
12-
void acb_elliptic_zeta(acb_t res, const acb_t z, const acb_t tau, long prec)
13-
void acb_elliptic_sigma(acb_t res, const acb_t z, const acb_t tau, long prec)
14-
void acb_elliptic_roots(acb_t e1, acb_t e2, acb_t e3, const acb_t tau, long prec)
15-
void acb_elliptic_invariants(acb_t g2, acb_t g3, const acb_t tau, long prec)
16-
void acb_elliptic_inv_p(acb_t res, const acb_t z, const acb_t tau, long prec)
6+
# from here on is parsed
7+
void acb_elliptic_k(acb_t res, const acb_t m, slong prec)
8+
void acb_elliptic_k_jet(acb_ptr res, const acb_t m, slong len, slong prec)
9+
void _acb_elliptic_k_series(acb_ptr res, acb_srcptr m, slong mlen, slong len, slong prec)
10+
void acb_elliptic_k_series(acb_poly_t res, const acb_poly_t m, slong len, slong prec)
11+
void acb_elliptic_e(acb_t res, const acb_t m, slong prec)
12+
void acb_elliptic_pi(acb_t res, const acb_t n, const acb_t m, slong prec)
13+
void acb_elliptic_f(acb_t res, const acb_t phi, const acb_t m, int pi, slong prec)
14+
void acb_elliptic_e_inc(acb_t res, const acb_t phi, const acb_t m, int pi, slong prec)
15+
void acb_elliptic_pi_inc(acb_t res, const acb_t n, const acb_t phi, const acb_t m, int pi, slong prec)
16+
void acb_elliptic_rf(acb_t res, const acb_t x, const acb_t y, const acb_t z, int flags, slong prec)
17+
void acb_elliptic_rg(acb_t res, const acb_t x, const acb_t y, const acb_t z, int flags, slong prec)
18+
void acb_elliptic_rj(acb_t res, const acb_t x, const acb_t y, const acb_t z, const acb_t p, int flags, slong prec)
19+
void acb_elliptic_rj_carlson(acb_t res, const acb_t x, const acb_t y, const acb_t z, const acb_t p, int flags, slong prec)
20+
void acb_elliptic_rj_integration(acb_t res, const acb_t x, const acb_t y, const acb_t z, const acb_t p, int flags, slong prec)
21+
void acb_elliptic_rc1(acb_t res, const acb_t x, slong prec)
22+
void acb_elliptic_p(acb_t res, const acb_t z, const acb_t tau, slong prec)
23+
void acb_elliptic_p_prime(acb_t res, const acb_t z, const acb_t tau, slong prec)
24+
void acb_elliptic_p_jet(acb_ptr res, const acb_t z, const acb_t tau, slong len, slong prec)
25+
void _acb_elliptic_p_series(acb_ptr res, acb_srcptr z, slong zlen, const acb_t tau, slong len, slong prec)
26+
void acb_elliptic_p_series(acb_poly_t res, const acb_poly_t z, const acb_t tau, slong len, slong prec)
27+
void acb_elliptic_invariants(acb_t g2, acb_t g3, const acb_t tau, slong prec)
28+
void acb_elliptic_roots(acb_t e1, acb_t e2, acb_t e3, const acb_t tau, slong prec)
29+
void acb_elliptic_inv_p(acb_t res, const acb_t z, const acb_t tau, slong prec)
30+
void acb_elliptic_zeta(acb_t res, const acb_t z, const acb_t tau, slong prec)
31+
void acb_elliptic_sigma(acb_t res, const acb_t z, const acb_t tau, slong prec)

0 commit comments

Comments
 (0)