Skip to content

Commit ef90f58

Browse files
committed
bindings: auto generate arb_poly and arb_mat .pxd files
1 parent 18ea7c0 commit ef90f58

File tree

8 files changed

+66
-71
lines changed

8 files changed

+66
-71
lines changed

bin/all_rst_to_pxd.sh

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,8 @@ modules="\
1313
fmpz_lll\
1414
arf\
1515
arb\
16+
arb_poly\
17+
arb_mat\
1618
"
1719

1820
for module in $modules; do

src/flint/flintlib/arb_mat.pxd

Lines changed: 18 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -1,24 +1,15 @@
1-
from flint.flintlib.arb_types cimport arb_ptr, arb_struct, mag_t, mag_srcptr, arb_t, arb_srcptr
2-
from flint.flintlib.fmpz_mat cimport fmpz_mat_t
1+
from flint.flintlib.arb_types cimport arb_mat_t, arb_poly_t, arb_ptr, arb_srcptr, arb_t, mag_srcptr, mag_t
2+
from flint.flintlib.flint cimport flint_rand_t, slong, ulong
33
from flint.flintlib.fmpq_mat cimport fmpq_mat_t
4-
from flint.flintlib.flint cimport ulong, slong, flint_rand_t
5-
from flint.flintlib.fmpz cimport fmpz_t
6-
from flint.flintlib.arb_poly cimport arb_poly_t
4+
from flint.flintlib.fmpz_types cimport fmpz_mat_t, fmpz_t
75

8-
cdef extern from "flint/arb_mat.h":
9-
ctypedef struct arb_mat_struct:
10-
arb_ptr entries
11-
long r
12-
long c
13-
arb_ptr * rows
6+
# unknown type FILE
147

15-
ctypedef arb_mat_struct arb_mat_t[1]
16-
#macros
17-
arb_struct * arb_mat_entry(arb_mat_t mat, long i, long j)
8+
# .. macro:: arb_mat_entry(mat, i, j)
9+
# .. macro:: arb_mat_nrows(mat)
10+
# .. macro:: arb_mat_ncols(mat)
1811

19-
long arb_mat_nrows(const arb_mat_t x)
20-
long arb_mat_ncols(const arb_mat_t x)
21-
# from here on is parsed
12+
cdef extern from "flint/arb_mat.h":
2213
void arb_mat_init(arb_mat_t mat, slong r, slong c)
2314
void arb_mat_clear(arb_mat_t mat)
2415
slong arb_mat_allocated_bytes(const arb_mat_t x)
@@ -29,7 +20,10 @@ cdef extern from "flint/arb_mat.h":
2920
void arb_mat_set_round_fmpz_mat(arb_mat_t dest, const fmpz_mat_t src, slong prec)
3021
void arb_mat_set_fmpq_mat(arb_mat_t dest, const fmpq_mat_t src, slong prec)
3122
void arb_mat_randtest(arb_mat_t mat, flint_rand_t state, slong prec, slong mag_bits)
23+
void arb_mat_randtest_cho(arb_mat_t mat, flint_rand_t state, slong prec, slong mag_bits)
24+
void arb_mat_randtest_spd(arb_mat_t mat, flint_rand_t state, slong prec, slong mag_bits)
3225
void arb_mat_printd(const arb_mat_t mat, slong digits)
26+
# void arb_mat_fprintd(FILE * file, const arb_mat_t mat, slong digits)
3327
int arb_mat_equal(const arb_mat_t mat1, const arb_mat_t mat2)
3428
int arb_mat_overlaps(const arb_mat_t mat1, const arb_mat_t mat2)
3529
int arb_mat_contains(const arb_mat_t mat1, const arb_mat_t mat2)
@@ -80,6 +74,10 @@ cdef extern from "flint/arb_mat.h":
8074
void arb_mat_scalar_div_si(arb_mat_t B, const arb_mat_t A, slong c, slong prec)
8175
void arb_mat_scalar_div_fmpz(arb_mat_t B, const arb_mat_t A, const fmpz_t c, slong prec)
8276
void arb_mat_scalar_div_arb(arb_mat_t B, const arb_mat_t A, const arb_t c, slong prec)
77+
void _arb_mat_vector_mul_row(arb_ptr res, arb_srcptr v, const arb_mat_t A, slong prec)
78+
void _arb_mat_vector_mul_col(arb_ptr res, const arb_mat_t A, arb_srcptr v, slong prec)
79+
void arb_mat_vector_mul_row(arb_ptr res, arb_srcptr v, const arb_mat_t A, slong prec)
80+
void arb_mat_vector_mul_col(arb_ptr res, const arb_mat_t A, arb_srcptr v, slong prec)
8381
int arb_mat_lu_classical(slong * perm, arb_mat_t LU, const arb_mat_t A, slong prec)
8482
int arb_mat_lu_recursive(slong * perm, arb_mat_t LU, const arb_mat_t A, slong prec)
8583
int arb_mat_lu(slong * perm, arb_mat_t LU, const arb_mat_t A, slong prec)
@@ -130,3 +128,6 @@ cdef extern from "flint/arb_mat.h":
130128
slong arb_mat_count_not_is_zero(const arb_mat_t mat)
131129
void arb_mat_get_mid(arb_mat_t B, const arb_mat_t A)
132130
void arb_mat_add_error_mag(arb_mat_t mat, const mag_t err)
131+
int arb_mat_spd_get_fmpz_mat(fmpz_mat_t B, const arb_mat_t A, slong prec)
132+
void arb_mat_spd_lll_reduce(fmpz_mat_t U, const arb_mat_t A, slong prec)
133+
int arb_mat_spd_is_lll_reduced(const arb_mat_t A, slong tol_exp, slong prec)

src/flint/flintlib/arb_poly.pxd

Lines changed: 12 additions & 42 deletions
Original file line numberDiff line numberDiff line change
@@ -1,23 +1,15 @@
1-
from flint.flintlib.flint cimport flint_rand_t, ulong, slong
2-
from flint.flintlib.arb cimport arb_ptr, arb_t, arb_srcptr
3-
from flint.flintlib.fmpz_poly cimport fmpz_poly_t
1+
from flint.flintlib.acb cimport acb_srcptr, acb_t
2+
from flint.flintlib.arb_types cimport arb_poly_t, arb_ptr, arb_srcptr, arb_t, mag_t
3+
from flint.flintlib.arf_types cimport arf_t
4+
from flint.flintlib.flint cimport flint_rand_t, slong, ulong
45
from flint.flintlib.fmpq_poly cimport fmpq_poly_t
5-
from flint.flintlib.acb cimport acb_t, acb_srcptr
6-
from flint.flintlib.mag cimport mag_t
7-
from flint.flintlib.arf cimport arf_t
6+
from flint.flintlib.fmpz_types cimport fmpz_poly_t
87

9-
cdef extern from "flint/arb_poly.h":
10-
ctypedef struct arb_poly_struct:
11-
arb_ptr coeffs
12-
long length
13-
long alloc
14-
15-
ctypedef arb_poly_struct arb_poly_t[1]
16-
#macros
8+
# unknown type FILE
179

18-
arb_ptr arb_poly_get_coeff_ptr(arb_poly_t poly, long n)
10+
# .. macro:: arb_poly_get_coeff_ptr(poly, n)
1911

20-
# from here on is parsed
12+
cdef extern from "flint/arb_poly.h":
2113
void arb_poly_init(arb_poly_t poly)
2214
void arb_poly_clear(arb_poly_t poly)
2315
void arb_poly_fit_length(arb_poly_t poly, slong len)
@@ -31,7 +23,6 @@ cdef extern from "flint/arb_poly.h":
3123
int arb_poly_is_x(const arb_poly_t poly)
3224
void arb_poly_zero(arb_poly_t poly)
3325
void arb_poly_one(arb_poly_t poly)
34-
void arb_poly_set_arb(arb_poly_t poly, const arb_t c)
3526
void arb_poly_set(arb_poly_t dest, const arb_poly_t src)
3627
void arb_poly_set_round(arb_poly_t dest, const arb_poly_t src, slong prec)
3728
void arb_poly_set_trunc(arb_poly_t dest, const arb_poly_t src, slong n)
@@ -49,6 +40,7 @@ cdef extern from "flint/arb_poly.h":
4940
void arb_poly_set_fmpq_poly(arb_poly_t poly, const fmpq_poly_t src, slong prec)
5041
void arb_poly_set_si(arb_poly_t poly, slong src)
5142
void arb_poly_printd(const arb_poly_t poly, slong digits)
43+
# void arb_poly_fprintd(FILE * file, const arb_poly_t poly, slong digits)
5244
void arb_poly_randtest(arb_poly_t poly, flint_rand_t state, slong len, slong prec, slong mag_bits)
5345
int arb_poly_contains(const arb_poly_t poly1, const arb_poly_t poly2)
5446
int arb_poly_contains_fmpz_poly(const arb_poly_t poly1, const fmpz_poly_t poly2)
@@ -88,32 +80,12 @@ cdef extern from "flint/arb_poly.h":
8880
void _arb_poly_divrem(arb_ptr Q, arb_ptr R, arb_srcptr A, slong lenA, arb_srcptr B, slong lenB, slong prec)
8981
int arb_poly_divrem(arb_poly_t Q, arb_poly_t R, const arb_poly_t A, const arb_poly_t B, slong prec)
9082
void _arb_poly_div_root(arb_ptr Q, arb_t R, arb_srcptr A, slong len, const arb_t c, slong prec)
91-
void _arb_poly_taylor_shift_horner(arb_ptr g, const arb_t c, slong n, slong prec)
92-
void arb_poly_taylor_shift_horner(arb_poly_t g, const arb_poly_t f, const arb_t c, slong prec)
93-
void _arb_poly_taylor_shift_divconquer(arb_ptr g, const arb_t c, slong n, slong prec)
94-
void arb_poly_taylor_shift_divconquer(arb_poly_t g, const arb_poly_t f, const arb_t c, slong prec)
95-
void _arb_poly_taylor_shift_convolution(arb_ptr g, const arb_t c, slong n, slong prec)
96-
void arb_poly_taylor_shift_convolution(arb_poly_t g, const arb_poly_t f, const arb_t c, slong prec)
9783
void _arb_poly_taylor_shift(arb_ptr g, const arb_t c, slong n, slong prec)
9884
void arb_poly_taylor_shift(arb_poly_t g, const arb_poly_t f, const arb_t c, slong prec)
99-
void _arb_poly_compose_horner(arb_ptr res, arb_srcptr poly1, slong len1, arb_srcptr poly2, slong len2, slong prec)
100-
void arb_poly_compose_horner(arb_poly_t res, const arb_poly_t poly1, const arb_poly_t poly2, slong prec)
101-
void _arb_poly_compose_divconquer(arb_ptr res, arb_srcptr poly1, slong len1, arb_srcptr poly2, slong len2, slong prec)
102-
void arb_poly_compose_divconquer(arb_poly_t res, const arb_poly_t poly1, const arb_poly_t poly2, slong prec)
10385
void _arb_poly_compose(arb_ptr res, arb_srcptr poly1, slong len1, arb_srcptr poly2, slong len2, slong prec)
10486
void arb_poly_compose(arb_poly_t res, const arb_poly_t poly1, const arb_poly_t poly2, slong prec)
105-
void _arb_poly_compose_series_horner(arb_ptr res, arb_srcptr poly1, slong len1, arb_srcptr poly2, slong len2, slong n, slong prec)
106-
void arb_poly_compose_series_horner(arb_poly_t res, const arb_poly_t poly1, const arb_poly_t poly2, slong n, slong prec)
107-
void _arb_poly_compose_series_brent_kung(arb_ptr res, arb_srcptr poly1, slong len1, arb_srcptr poly2, slong len2, slong n, slong prec)
108-
void arb_poly_compose_series_brent_kung(arb_poly_t res, const arb_poly_t poly1, const arb_poly_t poly2, slong n, slong prec)
10987
void _arb_poly_compose_series(arb_ptr res, arb_srcptr poly1, slong len1, arb_srcptr poly2, slong len2, slong n, slong prec)
11088
void arb_poly_compose_series(arb_poly_t res, const arb_poly_t poly1, const arb_poly_t poly2, slong n, slong prec)
111-
void _arb_poly_revert_series_lagrange(arb_ptr h, arb_srcptr f, slong flen, slong n, slong prec)
112-
void arb_poly_revert_series_lagrange(arb_poly_t h, const arb_poly_t f, slong n, slong prec)
113-
void _arb_poly_revert_series_newton(arb_ptr h, arb_srcptr f, slong flen, slong n, slong prec)
114-
void arb_poly_revert_series_newton(arb_poly_t h, const arb_poly_t f, slong n, slong prec)
115-
void _arb_poly_revert_series_lagrange_fast(arb_ptr h, arb_srcptr f, slong flen, slong n, slong prec)
116-
void arb_poly_revert_series_lagrange_fast(arb_poly_t h, const arb_poly_t f, slong n, slong prec)
11789
void _arb_poly_revert_series(arb_ptr h, arb_srcptr f, slong flen, slong n, slong prec)
11890
void arb_poly_revert_series(arb_poly_t h, const arb_poly_t f, slong n, slong prec)
11991
void _arb_poly_evaluate_horner(arb_t y, arb_srcptr f, slong len, const arb_t x, slong prec)
@@ -162,6 +134,8 @@ cdef extern from "flint/arb_poly.h":
162134
void arb_poly_interpolate_fast(arb_poly_t poly, arb_srcptr xs, arb_srcptr ys, slong n, slong prec)
163135
void _arb_poly_derivative(arb_ptr res, arb_srcptr poly, slong len, slong prec)
164136
void arb_poly_derivative(arb_poly_t res, const arb_poly_t poly, slong prec)
137+
void _arb_poly_nth_derivative(arb_ptr res, arb_srcptr poly, ulong n, slong len, slong prec)
138+
void arb_poly_nth_derivative(arb_poly_t res, const arb_poly_t poly, ulong n, slong prec)
165139
void _arb_poly_integral(arb_ptr res, arb_srcptr poly, slong len, slong prec)
166140
void arb_poly_integral(arb_poly_t res, const arb_poly_t poly, slong prec)
167141
void _arb_poly_borel_transform(arb_ptr res, arb_srcptr poly, slong len, slong prec)
@@ -175,7 +149,7 @@ cdef extern from "flint/arb_poly.h":
175149
void _arb_poly_binomial_transform(arb_ptr b, arb_srcptr a, slong alen, slong len, slong prec)
176150
void arb_poly_binomial_transform(arb_poly_t b, const arb_poly_t a, slong len, slong prec)
177151
void _arb_poly_graeffe_transform(arb_ptr b, arb_srcptr a, slong len, slong prec)
178-
void arb_poly_graeffe_transform(arb_poly_t b, arb_poly_t a, slong prec)
152+
void arb_poly_graeffe_transform(arb_poly_t b, const arb_poly_t a, slong prec)
179153
void _arb_poly_pow_ui_trunc_binexp(arb_ptr res, arb_srcptr f, slong flen, ulong exp, slong len, slong prec)
180154
void arb_poly_pow_ui_trunc_binexp(arb_poly_t res, const arb_poly_t poly, ulong exp, slong len, slong prec)
181155
void _arb_poly_pow_ui(arb_ptr res, arb_srcptr f, slong flen, ulong exp, slong prec)
@@ -202,10 +176,6 @@ cdef extern from "flint/arb_poly.h":
202176
void arb_poly_exp_series_basecase(arb_poly_t f, const arb_poly_t h, slong n, slong prec)
203177
void _arb_poly_exp_series(arb_ptr f, arb_srcptr h, slong hlen, slong n, slong prec)
204178
void arb_poly_exp_series(arb_poly_t f, const arb_poly_t h, slong n, slong prec)
205-
void _arb_poly_sin_cos_series_basecase(arb_ptr s, arb_ptr c, arb_srcptr h, slong hlen, slong n, slong prec, int times_pi)
206-
void arb_poly_sin_cos_series_basecase(arb_poly_t s, arb_poly_t c, const arb_poly_t h, slong n, slong prec, int times_pi)
207-
void _arb_poly_sin_cos_series_tangent(arb_ptr s, arb_ptr c, arb_srcptr h, slong hlen, slong n, slong prec, int times_pi)
208-
void arb_poly_sin_cos_series_tangent(arb_poly_t s, arb_poly_t c, const arb_poly_t h, slong n, slong prec, int times_pi)
209179
void _arb_poly_sin_cos_series(arb_ptr s, arb_ptr c, arb_srcptr h, slong hlen, slong n, slong prec)
210180
void arb_poly_sin_cos_series(arb_poly_t s, arb_poly_t c, const arb_poly_t h, slong n, slong prec)
211181
void _arb_poly_sin_series(arb_ptr s, arb_srcptr h, slong hlen, slong n, slong prec)

src/flint/flintlib/arb_types.pxd

Lines changed: 17 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -18,14 +18,6 @@ cdef extern from "flint/arb_types.h":
1818
ctypedef arb_struct * arb_ptr
1919
ctypedef const arb_struct * arb_srcptr
2020

21-
# Macros
22-
cdef arf_ptr arb_midref(const arb_t x)
23-
cdef mag_ptr arb_radref(const arb_t x)
24-
25-
cdef const ulong ARB_STR_MORE
26-
cdef const ulong ARB_STR_NO_RADIUS
27-
cdef const ulong ARB_STR_CONDENSE
28-
2921
ctypedef struct arb_mat_struct:
3022
arb_ptr entries
3123
slong r
@@ -40,3 +32,20 @@ cdef extern from "flint/arb_types.h":
4032
slong length
4133

4234
ctypedef arb_poly_struct arb_poly_t[1]
35+
36+
cdef extern from "flint/arb_types.h":
37+
# Macros
38+
cdef arf_ptr arb_midref(const arb_t x)
39+
cdef mag_ptr arb_radref(const arb_t x)
40+
cdef const ulong ARB_STR_MORE
41+
cdef const ulong ARB_STR_NO_RADIUS
42+
cdef const ulong ARB_STR_CONDENSE
43+
44+
cdef extern from "flint/arb_mat.h":
45+
# Macros
46+
arb_ptr arb_mat_entry(arb_mat_t mat, slong i, slong j)
47+
slong arb_mat_nrows(arb_mat_t mat)
48+
slong arb_mat_ncols(arb_mat_t mat)
49+
50+
cdef extern from "flint/arb_poly.h":
51+
void arb_poly_set_arb(arb_poly_t poly, const arb_t c)

src/flint/types/acb.pyx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@ from flint.flintlib.mag cimport *
1818
from flint.flintlib.arb cimport *
1919
from flint.flintlib.arb_types cimport arb_midref, arb_radref
2020
from flint.flintlib.arf cimport *
21-
from flint.flintlib.arf_types cimport arf_rnd_t, ARF_RND_NEAR
21+
from flint.flintlib.arf_types cimport ARF_RND_NEAR
2222
from flint.flintlib.acb cimport *
2323
from flint.flintlib.acb_modular cimport *
2424
from flint.flintlib.acb_hypgeom cimport *

src/flint/types/acb_mat.pyx

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,14 @@ from flint.flintlib.fmpz_mat cimport fmpz_mat_nrows, fmpz_mat_ncols
1515
from flint.flintlib.fmpq_mat cimport fmpq_mat_nrows, fmpq_mat_ncols
1616
from flint.flintlib.mag cimport *
1717
from flint.flintlib.arb cimport *
18-
from flint.flintlib.arb_types cimport mag_struct, arb_radref, arb_midref
18+
from flint.flintlib.arb_types cimport (
19+
mag_struct,
20+
arb_radref,
21+
arb_midref,
22+
arb_mat_entry,
23+
arb_mat_nrows,
24+
arb_mat_ncols,
25+
)
1926
from flint.flintlib.arb_mat cimport *
2027
from flint.flintlib.arf cimport *
2128
from flint.flintlib.acb cimport *

src/flint/types/arb_mat.pyx

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,13 @@ from flint.flintlib.fmpz_mat cimport fmpz_mat_nrows, fmpz_mat_ncols
1616
from flint.flintlib.fmpq_mat cimport fmpq_mat_nrows, fmpq_mat_ncols
1717
from flint.flintlib.arf cimport *
1818
from flint.flintlib.arb cimport *
19-
from flint.flintlib.arb_types cimport arb_radref, arb_midref
19+
from flint.flintlib.arb_types cimport (
20+
arb_radref,
21+
arb_midref,
22+
arb_mat_nrows,
23+
arb_mat_ncols,
24+
arb_mat_entry,
25+
)
2026
from flint.flintlib.arb_mat cimport *
2127
cimport cython
2228

src/flint/types/arb_poly.pyx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@ from flint.types.fmpq cimport fmpq
1212
from flint.types.acb cimport acb
1313
from flint.types.acb_poly cimport acb_poly
1414

15-
from flint.flintlib.arb_types cimport arb_struct
15+
from flint.flintlib.arb_types cimport arb_struct, arb_poly_set_arb
1616
from flint.flintlib.arb cimport *
1717
from flint.flintlib.arb_poly cimport *
1818
cimport libc.stdlib

0 commit comments

Comments
 (0)