Skip to content

Commit f4a7cda

Browse files
committed
bindings: auto-generate bernoulli and dirichlet
1 parent 74e6d5a commit f4a7cda

File tree

6 files changed

+40
-33
lines changed

6 files changed

+40
-33
lines changed

bin/all_rst_to_pxd.sh

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -28,8 +28,8 @@ modules=(
2828
"arb"
2929
"arf"
3030
"arith"
31-
#"bernoulli"
32-
#"dirichlet"
31+
"bernoulli"
32+
"dirichlet"
3333
#"fmpq_mat"
3434
#"fmpq_mpoly_factor"
3535
#"fmpq_mpoly"

src/flint/flintlib/acb_dirichlet.pxd

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,9 @@
1-
from flint.flintlib.dirichlet cimport dirichlet_char_t, dirichlet_group_t
21
from flint.flintlib.fmpq cimport fmpq_t
32
from flint.flintlib.types.acb cimport acb_poly_t, acb_ptr, acb_srcptr, acb_t
43
from flint.flintlib.types.acb_dirichlet cimport acb_dirichlet_hurwitz_precomp_t, acb_dirichlet_roots_t
54
from flint.flintlib.types.arb cimport arb_ptr, arb_srcptr, arb_t, mag_t
65
from flint.flintlib.types.arf cimport arf_t
6+
from flint.flintlib.types.dirichlet cimport dirichlet_char_t, dirichlet_group_t
77
from flint.flintlib.types.flint cimport slong, ulong
88
from flint.flintlib.types.fmpz cimport fmpz_t
99

src/flint/flintlib/bernoulli.pxd

Lines changed: 6 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,11 @@
1-
from flint.flintlib.types.flint cimport ulong, slong
2-
from flint.flintlib.fmpq cimport fmpq_t, fmpq_struct
3-
from flint.flintlib.fmpz cimport fmpz_t
1+
from flint.flintlib.fmpq cimport fmpq_struct, fmpq_t
2+
from flint.flintlib.types.flint cimport slong, ulong
3+
from flint.flintlib.types.fmpz cimport fmpz_t
4+
5+
# unknown type bernoulli_rev_t
6+
47

58
cdef extern from "flint/bernoulli.h":
6-
# from here on is parsed
79
# void bernoulli_rev_init(bernoulli_rev_t iter, ulong n)
810
# void bernoulli_rev_next(fmpz_t numer, fmpz_t denom, bernoulli_rev_t iter)
911
# void bernoulli_rev_clear(bernoulli_rev_t iter)
@@ -15,4 +17,3 @@ cdef extern from "flint/bernoulli.h":
1517
void _bernoulli_fmpq_ui_multi_mod(fmpz_t num, fmpz_t den, ulong n, double alpha)
1618
void _bernoulli_fmpq_ui(fmpz_t num, fmpz_t den, ulong n)
1719
void bernoulli_fmpq_ui(fmpq_t b, ulong n)
18-

src/flint/flintlib/dirichlet.pxd

Lines changed: 4 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -1,34 +1,16 @@
1-
from flint.flintlib.types.flint cimport ulong, slong
2-
from flint.flintlib.nmod cimport nmod_t
1+
from flint.flintlib.types.dirichlet cimport dirichlet_char_t, dirichlet_group_t
2+
from flint.flintlib.types.flint cimport slong, ulong
33

4-
cdef extern from "flint/dirichlet.h":
5-
ctypedef struct dirichlet_group_struct:
6-
ulong q
7-
ulong q_even
8-
nmod_t mod
9-
ulong rad_q
10-
ulong phi_q
11-
long neven
12-
long num
13-
ulong expo
14-
void * P
15-
ulong * generators
16-
ulong * PHI
17-
ctypedef dirichlet_group_struct dirichlet_group_t[1]
184

19-
ctypedef struct dirichlet_char_struct:
20-
ulong n
21-
ulong * log
22-
ctypedef dirichlet_char_struct dirichlet_char_t[1]
235

24-
# from here on is parsed
6+
cdef extern from "flint/dirichlet.h":
257
int dirichlet_group_init(dirichlet_group_t G, ulong q)
268
void dirichlet_subgroup_init(dirichlet_group_t H, const dirichlet_group_t G, ulong h)
279
void dirichlet_group_clear(dirichlet_group_t G)
2810
ulong dirichlet_group_size(const dirichlet_group_t G)
2911
ulong dirichlet_group_num_primitive(const dirichlet_group_t G)
3012
void dirichlet_group_dlog_precompute(dirichlet_group_t G, ulong num)
31-
void dirichlet_group_dlog_clear(dirichlet_group_t G, ulong num)
13+
void dirichlet_group_dlog_clear(dirichlet_group_t G)
3214
void dirichlet_char_init(dirichlet_char_t chi, const dirichlet_group_t G)
3315
void dirichlet_char_clear(dirichlet_char_t chi)
3416
void dirichlet_char_print(const dirichlet_group_t G, const dirichlet_char_t chi)
@@ -53,9 +35,6 @@ cdef extern from "flint/dirichlet.h":
5335
ulong dirichlet_order_char(const dirichlet_group_t G, const dirichlet_char_t x)
5436
int dirichlet_char_is_real(const dirichlet_group_t G, const dirichlet_char_t chi)
5537
int dirichlet_char_is_primitive(const dirichlet_group_t G, const dirichlet_char_t chi)
56-
57-
cdef ulong DIRICHLET_CHI_NULL
58-
5938
ulong dirichlet_pairing(const dirichlet_group_t G, ulong m, ulong n)
6039
ulong dirichlet_pairing_char(const dirichlet_group_t G, const dirichlet_char_t chi, const dirichlet_char_t psi)
6140
ulong dirichlet_chi(const dirichlet_group_t G, const dirichlet_char_t chi, ulong n)
Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,26 @@
1+
from flint.flintlib.types.flint cimport ulong
2+
from flint.flintlib.nmod cimport nmod_t
3+
4+
5+
cdef extern from "flint/dirichlet.h":
6+
7+
ctypedef struct dirichlet_group_struct:
8+
ulong q
9+
ulong q_even
10+
nmod_t mod
11+
ulong rad_q
12+
ulong phi_q
13+
long neven
14+
long num
15+
ulong expo
16+
void * P
17+
ulong * generators
18+
ulong * PHI
19+
ctypedef dirichlet_group_struct dirichlet_group_t[1]
20+
21+
ctypedef struct dirichlet_char_struct:
22+
ulong n
23+
ulong * log
24+
ctypedef dirichlet_char_struct dirichlet_char_t[1]
25+
26+
cdef ulong DIRICHLET_CHI_NULL

src/flint/types/dirichlet.pyx

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@ from flint.types.fmpz cimport fmpz
66
from flint.flintlib.ulong_extras cimport n_gcd
77
from flint.flintlib.fmpz cimport fmpz_get_ui
88
from flint.flintlib.dirichlet cimport *
9+
from flint.flintlib.types.dirichlet cimport DIRICHLET_CHI_NULL
910
from flint.flintlib.acb_dirichlet cimport *
1011

1112
cdef dict _dirichlet_group_cache = {}

0 commit comments

Comments
 (0)