Skip to content

Commit d6f2608

Browse files
committed
Add gr_series compatibility shim for FLINT<3.4.0
1 parent f00f7a2 commit d6f2608

2 files changed

Lines changed: 26 additions & 4 deletions

File tree

src/flint/flintlib/functions/compat.pxd

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,27 @@
11
from flint.flintlib.types.flint cimport slong
22
from flint.flintlib.types.fmpz_mod cimport fmpz_mod_mpoly_ctx_t, fmpz_mod_mpoly_t
3+
from flint.flintlib.types.gr cimport gr_ctx_t
34

45

56
cdef extern from *:
67
"""
8+
#include "flint/gr.h"
9+
#if __FLINT_RELEASE >= 30400 /* Flint 3.4.0 or later */
10+
#include "flint/gr_series.h"
11+
#endif
12+
13+
#if __FLINT_RELEASE >= 30400 /* Flint 3.4.0 or later */
14+
15+
#define compat_gr_ctx_init_gr_series(...) gr_series_ctx_init(__VA_ARGS__)
16+
#define compat_gr_ctx_init_series_mod_gr_poly(...) gr_series_mod_ctx_init(__VA_ARGS__)
17+
18+
#else
19+
20+
#define compat_gr_ctx_init_gr_series(...) gr_ctx_init_gr_series(__VA_ARGS__)
21+
#define compat_gr_ctx_init_series_mod_gr_poly(...) gr_ctx_init_series_mod_gr_poly(__VA_ARGS__)
22+
23+
#endif
24+
725
#if __FLINT_RELEASE < 30200 /* Flint < 3.2.0 */
826
927
#define compat_fmpz_mod_mpoly_compose_fmpz_mod_mpoly_gen(...) (void)0
@@ -14,4 +32,6 @@ cdef extern from *:
1432
1533
#endif
1634
"""
35+
void compat_gr_ctx_init_gr_series(gr_ctx_t ctx, gr_ctx_t base_ring, slong prec)
36+
void compat_gr_ctx_init_series_mod_gr_poly(gr_ctx_t ctx, gr_ctx_t base_ring, slong n)
1737
void compat_fmpz_mod_mpoly_compose_fmpz_mod_mpoly_gen(fmpz_mod_mpoly_t A, const fmpz_mod_mpoly_t B, const slong * c, const fmpz_mod_mpoly_ctx_t ctxB, const fmpz_mod_mpoly_ctx_t ctxAC)

src/flint/types/_gr.pxd

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -29,6 +29,10 @@ from flint.flintlib.functions.fmpq_poly cimport (
2929
fmpq_poly_init,
3030
fmpq_poly_set,
3131
)
32+
from flint.flintlib.functions.compat cimport (
33+
compat_gr_ctx_init_gr_series,
34+
# compat_gr_ctx_init_series_mod_gr_poly,
35+
)
3236

3337

3438
from flint.flintlib.types.gr cimport (
@@ -81,8 +85,6 @@ from flint.flintlib.functions.gr_domains cimport (
8185
gr_ctx_init_gr_poly,
8286
gr_ctx_init_gr_mpoly,
8387
# gr_ctx_init_fmpz_mpoly_q,
84-
# gr_ctx_init_series_mod_gr_poly,
85-
gr_ctx_init_gr_series,
8688
)
8789
from flint.flintlib.functions.gr cimport (
8890
gr_heap_init,
@@ -1514,7 +1516,7 @@ cdef class gr_gr_mpoly_ctx(gr_mpoly_ctx):
15141516
# cdef inline gr_series_mod_gr_poly_ctx _new(gr_ctx base_ctx, slong n):
15151517
# cdef gr_series_mod_gr_poly_ctx ctx
15161518
# ctx = gr_series_mod_gr_poly_ctx.__new__(gr_series_mod_gr_poly_ctx)
1517-
# gr_ctx_init_series_mod_gr_poly(ctx.ctx_t, base_ctx.ctx_t, n)
1519+
# compat_gr_ctx_init_series_mod_gr_poly(ctx.ctx_t, base_ctx.ctx_t, n)
15181520
# ctx._init = True
15191521
# ctx.base_ctx = base_ctx
15201522
# ctx._n = n
@@ -1530,7 +1532,7 @@ cdef class gr_series_ctx(gr_ctx):
15301532
cdef inline gr_series_ctx _new(gr_ctx base_ctx, slong prec):
15311533
cdef gr_series_ctx ctx
15321534
ctx = gr_series_ctx.__new__(gr_series_ctx)
1533-
gr_ctx_init_gr_series(ctx.ctx_t, base_ctx.ctx_t, prec)
1535+
compat_gr_ctx_init_gr_series(ctx.ctx_t, base_ctx.ctx_t, prec)
15341536
ctx._init = True
15351537
ctx.base_ctx = base_ctx
15361538
ctx._prec = prec

0 commit comments

Comments
 (0)