Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Mod experiment #65

Merged
merged 39 commits into from
Sep 6, 2023
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
39 commits
Select commit Hold shift + click to select a range
575f906
fmpz modularized
deinst Sep 1, 2023
cfe0e55
Separated fmpz_mpoly
deinst Sep 1, 2023
a9b6969
Modularized fmpz_mat
deinst Sep 1, 2023
fee2ba4
modularized fmpz_series
deinst Sep 1, 2023
5036787
Fix up failing doctests
deinst Sep 2, 2023
b87de66
modularized fmpq
deinst Sep 2, 2023
d25f049
Modularized fmpq_poly
deinst Sep 2, 2023
3db53a3
Modularized fmpq_mat
deinst Sep 2, 2023
697ab23
Modularized fmpq_series
deinst Sep 2, 2023
175285c
Modularized nmod
deinst Sep 2, 2023
da2d8cd
modularize nmod_poly
deinst Sep 2, 2023
253625b
Modularized nmod_mat and nmod_series
deinst Sep 2, 2023
a8ade5b
Modularized arf
deinst Sep 2, 2023
353ba95
Modularized arb
deinst Sep 2, 2023
e5f6406
Fixed up doctests
deinst Sep 3, 2023
5b8aceb
Modularized arb_poly
deinst Sep 3, 2023
732e230
Modularized arb_mat
deinst Sep 3, 2023
e1a3384
modularize arb_series
deinst Sep 3, 2023
61c179d
Modularized acb
deinst Sep 3, 2023
80cf716
Modularized arb_poly.
deinst Sep 3, 2023
6234658
Modularized acb_mat
deinst Sep 3, 2023
e395943
Modularized acb_series
deinst Sep 3, 2023
c601252
Modularized fmpz_mpoly
deinst Sep 3, 2023
3a7a2f7
Added desired cdef to functions.
deinst Sep 4, 2023
529f79f
Moved everything into the types subdirectory.
deinst Sep 4, 2023
ec86fcd
Modularized dirichlet
deinst Sep 4, 2023
7898c36
Added dirichlet.pxd
deinst Sep 4, 2023
2173651
Interim commit. Splitting _flint.pxd into pieces
deinst Sep 5, 2023
47e41f4
Split mag.h into its own .pxd
deinst Sep 5, 2023
34532a0
Split arb.h from _flint
deinst Sep 5, 2023
3569059
split acb.h from _flint.
deinst Sep 5, 2023
2d60990
Split partitions.h and bernoulli.h from _flint
deinst Sep 5, 2023
3601b76
Split arb poly from _flint
deinst Sep 5, 2023
2aa64a4
Peeled arb_mat from _flint
deinst Sep 5, 2023
9bdcdc1
Split acb_poly from _flint
deinst Sep 5, 2023
8b66055
extracted acb_mat, acb_hypgeom, acb_modular and arb_hypgeom from _flint
deinst Sep 5, 2023
d734daf
Merge the rest of the include files out of _flint
deinst Sep 6, 2023
4a65ad5
Don't import * from flint._flint in flint.types
oscarbenjamin Sep 6, 2023
8ad8919
Import from flint.flintlib instead of flint._flint
oscarbenjamin Sep 6, 2023
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
26 changes: 25 additions & 1 deletion setup.py
Original file line number Diff line number Diff line change
Expand Up @@ -64,8 +64,32 @@


ext_files = [
("flint._flint", ["src/flint/pyflint.pyx"]), # Main Module
# ("flint._flint", ["src/flint/_flint.pxd"]), # Main Module
("flint.pyflint", ["src/flint/pyflint.pyx"]), # Main Module
# Submodules
("flint.types.fmpz", ["src/flint/types/fmpz.pyx"]),
("flint.types.fmpz_poly", ["src/flint/types/fmpz_poly.pyx"]),
("flint.types.fmpz_mat", ["src/flint/types/fmpz_mat.pyx"]),
("flint.types.fmpz_series", ["src/flint/types/fmpz_series.pyx"]),
("flint.types.fmpq", ["src/flint/types/fmpq.pyx"]),
("flint.types.fmpq_poly", ["src/flint/types/fmpq_poly.pyx"]),
("flint.types.fmpq_mat", ["src/flint/types/fmpq_mat.pyx"]),
("flint.types.fmpq_series", ["src/flint/types/fmpq_series.pyx"]),
("flint.types.nmod", ["src/flint/types/nmod.pyx"]),
("flint.types.nmod_poly", ["src/flint/types/nmod_poly.pyx"]),
("flint.types.nmod_mat", ["src/flint/types/nmod_mat.pyx"]),
("flint.types.nmod_series", ["src/flint/types/nmod_series.pyx"]),
("flint.types.arf", ["src/flint/types/arf.pyx"]),
("flint.types.arb", ["src/flint/types/arb.pyx"]),
("flint.types.arb_poly", ["src/flint/types/arb_poly.pyx"]),
("flint.types.arb_mat", ["src/flint/types/arb_mat.pyx"]),
("flint.types.arb_series", ["src/flint/types/arb_series.pyx"]),
("flint.types.acb", ["src/flint/types/acb.pyx"]),
("flint.types.acb_poly", ["src/flint/types/acb_poly.pyx"]),
("flint.types.acb_mat", ["src/flint/types/acb_mat.pyx"]),
("flint.types.acb_series", ["src/flint/types/acb_series.pyx"]),
("flint.types.fmpz_mpoly", ["src/flint/types/fmpz_mpoly.pyx"]),
("flint.types.dirichlet", ["src/flint/types/dirichlet.pyx"]),
("flint.flint_base.flint_base", ["src/flint/flint_base/flint_base.pyx"]),
("flint.flint_base.flint_context", ["src/flint/flint_base/flint_context.pyx"]),

Expand Down
25 changes: 23 additions & 2 deletions src/flint/__init__.py
Original file line number Diff line number Diff line change
@@ -1,3 +1,24 @@
from ._flint import *

from .pyflint import *
from .types.fmpz import *
from .types.fmpz_poly import *
from .types.fmpz_mat import *
from .types.fmpz_series import *
from .types.fmpq import *
from .types.fmpq_poly import *
from .types.fmpq_mat import *
from .types.fmpq_series import *
from .types.nmod import *
from .types.nmod_poly import *
from .types.nmod_mat import *
from .types.nmod_series import *
from .types.arf import *
from .types.arb import *
from .types.arb_poly import *
from .types.arb_mat import *
from .types.arb_series import *
from .types.acb import *
from .types.acb_poly import *
from .types.acb_mat import *
from .types.acb_series import *
from .types.fmpz_mpoly import *
__version__ = '0.4.2'
2,402 changes: 15 additions & 2,387 deletions src/flint/_flint.pxd

Large diffs are not rendered by default.

2 changes: 1 addition & 1 deletion src/flint/flint_base/flint_context.pxd
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
from flint._flint cimport (
from flint.flintlib.arf cimport (
arf_rnd_t,
)

Expand Down
2 changes: 1 addition & 1 deletion src/flint/flint_base/flint_context.pyx
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
from flint.flintlib.arf cimport ARF_RND_DOWN
from flint._flint cimport (
ARF_RND_DOWN,
flint_cleanup,
flint_get_num_threads,
flint_set_num_threads
Expand Down
Empty file added src/flint/flintlib/__init__.pxd
Empty file.
Empty file added src/flint/flintlib/__init__.py
Empty file.
197 changes: 197 additions & 0 deletions src/flint/flintlib/acb.pxd
Original file line number Diff line number Diff line change
@@ -0,0 +1,197 @@
from flint._flint cimport ulong, slong
from flint.flintlib.arb cimport arb_struct, arb_t, arb_ptr
from flint.flintlib.fmpq cimport fmpq_t
from flint.flintlib.fmpz cimport fmpz_t
from flint.flintlib.arf cimport arf_t
from flint.flintlib.mag cimport mag_t

cdef extern from "acb.h":
ctypedef struct acb_struct:
arb_struct real
arb_struct imag

ctypedef acb_struct * acb_ptr
ctypedef const acb_struct * acb_srcptr
ctypedef acb_struct acb_t[1]

arb_ptr acb_realref(const acb_t x)
arb_ptr acb_imagref(const acb_t x)

acb_ptr _acb_vec_init(long n)
void _acb_vec_clear(acb_ptr v, long n)
void _acb_vec_sort_pretty(acb_ptr vec, long len)
void acb_printd(const acb_t z, long digits)

void acb_init(acb_t x)
void acb_clear(acb_t x)
int acb_is_zero(const acb_t z)
int acb_is_one(const acb_t z)
int acb_is_exact(const acb_t z)
int acb_is_finite(const acb_t x)
void acb_indeterminate(acb_t x)
void acb_zero(acb_t z)
void acb_one(acb_t z)
void acb_onei(acb_t z)
void acb_set(acb_t z, const acb_t x)
void acb_set_round(acb_t z, const acb_t x, long prec)
void acb_neg_round(acb_t z, const acb_t x, long prec)
void acb_swap(acb_t z, acb_t x)
int acb_equal(const acb_t x, const acb_t y)
int acb_eq(const acb_t x, const acb_t y)
int acb_ne(const acb_t x, const acb_t y)
int acb_overlaps(const acb_t x, const acb_t y)
int acb_contains_zero(const acb_t x)
int acb_contains_fmpq(const acb_t x, const fmpq_t y)
int acb_contains_fmpz(const acb_t x, const fmpz_t y)
int acb_contains(const acb_t x, const acb_t y)
int acb_contains_interior(const acb_t x, const acb_t y)
int acb_get_unique_fmpz(fmpz_t z, const acb_t x)
int acb_contains_int(const acb_t x)
void acb_union(acb_t z, const acb_t x, const acb_t y, long prec)
void acb_set_ui(acb_t z, ulong c)
void acb_set_si(acb_t z, long c)
void acb_set_fmpz(acb_t z, const fmpz_t c)
void acb_set_round_fmpz(acb_t z, const fmpz_t y, long prec)
void acb_set_fmpq(acb_t z, const fmpq_t c, long prec)
void acb_set_arb(acb_t z, const arb_t c)
void acb_set_round_arb(acb_t z, const arb_t x, long prec)
void acb_trim(acb_t z, const acb_t x)
void acb_add_error_arf(acb_t x, const arf_t err)
void acb_add_error_mag(acb_t x, const mag_t err)
void acb_get_mag(mag_t z, const acb_t x)
void acb_get_mag_lower(mag_t z, const acb_t x)
void acb_get_abs_ubound_arf(arf_t u, const acb_t z, long prec)
void acb_get_abs_lbound_arf(arf_t u, const acb_t z, long prec)
void acb_get_rad_ubound_arf(arf_t u, const acb_t z, long prec)
void acb_arg(arb_t r, const acb_t z, long prec)
void acb_add(acb_t z, const acb_t x, const acb_t y, long prec)
void acb_sub(acb_t z, const acb_t x, const acb_t y, long prec)
void acb_add_ui(acb_t z, const acb_t x, ulong c, long prec)
void acb_sub_ui(acb_t z, const acb_t x, ulong c, long prec)
void acb_add_fmpz(acb_t z, const acb_t x, const fmpz_t y, long prec)
void acb_add_arb(acb_t z, const acb_t x, const arb_t y, long prec)
void acb_sub_fmpz(acb_t z, const acb_t x, const fmpz_t y, long prec)
void acb_sub_arb(acb_t z, const acb_t x, const arb_t y, long prec)
void acb_neg(acb_t z, const acb_t x)
void acb_conj(acb_t z, const acb_t x)
void acb_abs(arb_t u, const acb_t z, long prec)
void acb_sgn(acb_t u, const acb_t z, long prec)
void acb_csgn(arb_t u, const acb_t z)
void acb_get_real(arb_t u, const acb_t z)
void acb_get_imag(arb_t u, const acb_t z)

void acb_real_abs(acb_t res, const acb_t z, int analytic, long prec)
void acb_real_sgn(acb_t res, const acb_t z, int analytic, long prec)
void acb_real_heaviside(acb_t res, const acb_t z, int analytic, long prec)
void acb_real_floor(acb_t res, const acb_t z, int analytic, long prec)
void acb_real_ceil(acb_t res, const acb_t z, int analytic, long prec)
void acb_real_max(acb_t res, const acb_t x, const acb_t y, int analytic, long prec)
void acb_real_min(acb_t res, const acb_t x, const acb_t y, int analytic, long prec)
void acb_real_sqrtpos(acb_t res, const acb_t z, int analytic, long prec)

void acb_sqrt_analytic(acb_t res, const acb_t z, int analytic, long prec)
void acb_rsqrt_analytic(acb_t res, const acb_t z, int analytic, long prec)
void acb_log_analytic(acb_t res, const acb_t z, int analytic, long prec)
void acb_pow_analytic(acb_t res, const acb_t z, const acb_t w, int analytic, long prec)

void acb_mul_ui(acb_t z, const acb_t x, ulong y, long prec)
void acb_mul_si(acb_t z, const acb_t x, long y, long prec)
void acb_mul_fmpz(acb_t z, const acb_t x, const fmpz_t y, long prec)
void acb_mul_arb(acb_t z, const acb_t x, const arb_t y, long prec)
void acb_mul_onei(acb_t z, const acb_t x)
void acb_mul(acb_t z, const acb_t x, const acb_t y, long prec)
void acb_mul_2exp_si(acb_t z, const acb_t x, long e)
void acb_mul_2exp_fmpz(acb_t z, const acb_t x, const fmpz_t c)
void acb_addmul(acb_t z, const acb_t x, const acb_t y, long prec)
void acb_submul(acb_t z, const acb_t x, const acb_t y, long prec)
void acb_addmul_ui(acb_t z, const acb_t x, ulong y, long prec)
void acb_addmul_si(acb_t z, const acb_t x, long y, long prec)
void acb_submul_ui(acb_t z, const acb_t x, ulong y, long prec)
void acb_submul_si(acb_t z, const acb_t x, long y, long prec)
void acb_addmul_fmpz(acb_t z, const acb_t x, const fmpz_t y, long prec)
void acb_submul_fmpz(acb_t z, const acb_t x, const fmpz_t y, long prec)
void acb_addmul_arb(acb_t z, const acb_t x, const arb_t y, long prec)
void acb_submul_arb(acb_t z, const acb_t x, const arb_t y, long prec)
void acb_inv(acb_t z, const acb_t x, long prec)
void acb_div(acb_t z, const acb_t x, const acb_t y, long prec)
void acb_div_ui(acb_t z, const acb_t x, ulong c, long prec)
void acb_div_si(acb_t z, const acb_t x, long c, long prec)
void acb_div_arb(acb_t z, const acb_t x, const arb_t c, long prec)
void acb_div_fmpz(acb_t z, const acb_t x, const fmpz_t c, long prec)
void acb_cube(acb_t y, const acb_t x, long prec)
void acb_pow_fmpz(acb_t y, const acb_t b, const fmpz_t e, long prec)
void acb_pow_ui(acb_t y, const acb_t b, ulong e, long prec)
void acb_pow_si(acb_t y, const acb_t b, long e, long prec)
void acb_const_pi(acb_t x, long prec)
void acb_log(acb_t r, const acb_t z, long prec)
void acb_exp(acb_t r, const acb_t z, long prec)
void acb_exp_pi_i(acb_t r, const acb_t z, long prec)
void acb_sin(acb_t r, const acb_t z, long prec)
void acb_cos(acb_t r, const acb_t z, long prec)
void acb_sin_cos(acb_t s, acb_t c, const acb_t z, long prec)
void acb_tan(acb_t r, const acb_t z, long prec)
void acb_cot(acb_t r, const acb_t z, long prec)
void acb_sec(acb_t r, const acb_t z, long prec)
void acb_csc(acb_t r, const acb_t z, long prec)
void acb_sin_pi(acb_t r, const acb_t z, long prec)
void acb_cos_pi(acb_t r, const acb_t z, long prec)
void acb_sin_cos_pi(acb_t s, acb_t c, const acb_t z, long prec)
void acb_tan_pi(acb_t r, const acb_t z, long prec)
void acb_cot_pi(acb_t r, const acb_t z, long prec)
void acb_sinh(acb_t r, const acb_t z, long prec)
void acb_cosh(acb_t r, const acb_t z, long prec)
void acb_sinh_cosh(acb_t s, acb_t c, const acb_t z, long prec)
void acb_tanh(acb_t r, const acb_t z, long prec)
void acb_coth(acb_t r, const acb_t z, long prec)
void acb_sech(acb_t r, const acb_t z, long prec)
void acb_csch(acb_t r, const acb_t z, long prec)
void acb_sinc(acb_t r, const acb_t z, long prec)
void acb_sinc_pi(acb_t r, const acb_t z, long prec)
void acb_pow_arb(acb_t z, const acb_t x, const arb_t y, long prec)
void acb_pow(acb_t r, const acb_t x, const acb_t y, long prec)
void acb_sqrt(acb_t y, const acb_t x, long prec)
void acb_rsqrt(acb_t y, const acb_t x, long prec)
void acb_rising_ui_bs(acb_t y, const acb_t x, ulong n, long prec)
void acb_rising_ui_rs(acb_t y, const acb_t x, ulong n, ulong m, long prec)
void acb_rising_ui_rec(acb_t y, const acb_t x, ulong n, long prec)
void acb_rising_ui(acb_t z, const acb_t x, ulong n, long prec)
void acb_rising2_ui_bs(acb_t u, acb_t v, const acb_t x, ulong n, long prec)
void acb_rising2_ui_rs(acb_t u, acb_t v, const acb_t x, ulong n, ulong m, long prec)
void acb_rising2_ui(acb_t u, acb_t v, const acb_t x, ulong n, long prec)
void acb_rising_ui_get_mag(mag_t bound, const acb_t s, ulong n)
void acb_rising(acb_t y, const acb_t x, const acb_t n, long prec)

void acb_gamma(acb_t y, const acb_t x, long prec)
void acb_rgamma(acb_t y, const acb_t x, long prec)
void acb_lgamma(acb_t y, const acb_t x, long prec)
void acb_digamma(acb_t y, const acb_t x, long prec)
void acb_zeta(acb_t z, const acb_t s, long prec)
void acb_hurwitz_zeta(acb_t z, const acb_t s, const acb_t a, long prec)
void acb_polylog(acb_t w, const acb_t s, const acb_t z, long prec)
void acb_polylog_si(acb_t w, long s, const acb_t z, long prec)
void acb_agm1(acb_t m, const acb_t z, long prec)
void acb_agm1_cpx(acb_ptr m, const acb_t z, long len, long prec)
void acb_agm(acb_t res, const acb_t a, const acb_t b, long prec)
void acb_expm1(acb_t r, const acb_t z, long prec)
void acb_log1p(acb_t r, const acb_t z, long prec)
void acb_asin(acb_t r, const acb_t z, long prec)
void acb_acos(acb_t r, const acb_t z, long prec)
void acb_atan(acb_t r, const acb_t z, long prec)
void acb_asinh(acb_t r, const acb_t z, long prec)
void acb_acosh(acb_t r, const acb_t z, long prec)
void acb_atanh(acb_t r, const acb_t z, long prec)
void acb_log_sin_pi(acb_t res, const acb_t z, long prec)

void acb_polygamma(acb_t w, const acb_t s, const acb_t z, long prec)
void acb_log_barnes_g(acb_t w, const acb_t z, long prec)
void acb_barnes_g(acb_t w, const acb_t z, long prec)

void acb_bernoulli_poly_ui(acb_t res, ulong n, const acb_t x, long prec)

void acb_lambertw(acb_t z, const acb_t x, const fmpz_t k, int flags, long prec)

long acb_rel_error_bits(const acb_t x)
long acb_rel_accuracy_bits(const acb_t x)
long acb_bits(const acb_t x)

void acb_root_ui(acb_t z, const acb_t x, ulong k, long prec)
22 changes: 22 additions & 0 deletions src/flint/flintlib/acb_calc.pxd
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
from flint.flintlib.acb cimport acb_t, acb_ptr
from flint.flintlib.mag cimport mag_t

cdef extern from "acb_calc.h":
ctypedef int (*acb_calc_func_t)(acb_ptr out, const acb_t inp, void * param, long order, long prec)

ctypedef struct acb_calc_integrate_opt_struct:
long deg_limit
long eval_limit
long depth_limit
int use_heap
int verbose

ctypedef acb_calc_integrate_opt_struct acb_calc_integrate_opt_t[1]

void acb_calc_integrate_opt_init(acb_calc_integrate_opt_t options)

int acb_calc_integrate(acb_t res, acb_calc_func_t f, void * param,
const acb_t a, const acb_t b,
long goal, const mag_t tol,
const acb_calc_integrate_opt_t options,
long prec)
5 changes: 5 additions & 0 deletions src/flint/flintlib/acb_dft.pxd
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
from flint.flintlib.acb cimport acb_ptr, acb_srcptr

cdef extern from "acb_dft.h":
void acb_dft(acb_ptr w, acb_srcptr v, long n, long prec)
void acb_dft_inverse(acb_ptr w, acb_srcptr v, long n, long prec)
24 changes: 24 additions & 0 deletions src/flint/flintlib/acb_dirichlet.pxd
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
from flint.flintlib.acb cimport acb_t, acb_ptr
from flint.flintlib.dirichlet cimport dirichlet_group_t, dirichlet_char_t
from flint._flint cimport ulong
from flint.flintlib.acb_poly cimport acb_poly_t
from flint.flintlib.fmpz cimport fmpz_t
from flint.flintlib.arb cimport arb_t


cdef extern from "acb_dirichlet.h":
void acb_dirichlet_eta(acb_t res, const acb_t s, long prec)
void acb_dirichlet_chi(acb_t res, const dirichlet_group_t G, const dirichlet_char_t chi, ulong n, long prec)

void acb_dirichlet_l(acb_t res, const acb_t s, const dirichlet_group_t G, const dirichlet_char_t chi, long prec)
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)
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)

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

void acb_dirichlet_gram_point(arb_t res, const fmpz_t n, const dirichlet_group_t G, const dirichlet_char_t chi, long prec)
void acb_dirichlet_zeta_zeros(acb_ptr res, const fmpz_t n, long len, long prec)
void acb_dirichlet_zeta_nzeros(arb_t res, const arb_t t, long prec)
void acb_dirichlet_backlund_s(arb_t res, const arb_t t, long prec)
void acb_dirichlet_zeta_zero(acb_t res, const fmpz_t n, long prec)
void acb_dirichlet_zeta_zeros(acb_ptr res, const fmpz_t n, long len, long prec)
16 changes: 16 additions & 0 deletions src/flint/flintlib/acb_elliptic.pxd
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
from flint.flintlib.acb cimport acb_t

cdef extern from "acb_elliptic.h":
void acb_elliptic_rf(acb_t res, const acb_t x, const acb_t y, const acb_t z, int flags, long prec)
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)
void acb_elliptic_rg(acb_t res, const acb_t x, const acb_t y, const acb_t z, int flags, long prec)
void acb_elliptic_f(acb_t res, const acb_t phi, const acb_t m, int times_pi, long prec)
void acb_elliptic_e_inc(acb_t res, const acb_t phi, const acb_t m, int times_pi, long prec)
void acb_elliptic_pi(acb_t res, const acb_t n, const acb_t m, long prec)
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)
void acb_elliptic_p(acb_t res, const acb_t z, const acb_t tau, long prec)
void acb_elliptic_zeta(acb_t res, const acb_t z, const acb_t tau, long prec)
void acb_elliptic_sigma(acb_t res, const acb_t z, const acb_t tau, long prec)
void acb_elliptic_roots(acb_t e1, acb_t e2, acb_t e3, const acb_t tau, long prec)
void acb_elliptic_invariants(acb_t g2, acb_t g3, const acb_t tau, long prec)
void acb_elliptic_inv_p(acb_t res, const acb_t z, const acb_t tau, long prec)
Loading