Skip to content

Commit b84af00

Browse files
committed
gr_nmod: don't use gr_ctx_set_is_field in Flint 3.1
1 parent b2d6e89 commit b84af00

File tree

4 files changed

+38
-4
lines changed

4 files changed

+38
-4
lines changed

src/flint/__init__.py

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,5 @@
11
from .pyflint import *
22

3-
from .types.gr import gr_ctx, gr_fmpz_ctx, gr_fmpq_ctx, gr_fmpzi_ctx
4-
53
from .types.fmpz import *
64
from .types.fmpz_poly import *
75
from .types.fmpz_mat import *

src/flint/types/gr.pxd renamed to src/flint/types/_gr.pxd

Lines changed: 26 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,9 @@ from flint.flintlib.types.fmpz cimport (
1111
from flint.flintlib.types.fmpq cimport (
1212
fmpq_poly_t,
1313
)
14+
from flint.flintlib.functions.ulong_extras cimport (
15+
n_is_prime,
16+
)
1417
from flint.flintlib.functions.fmpz cimport (
1518
fmpz_init_set,
1619
)
@@ -41,27 +44,35 @@ from flint.flintlib.functions.gr_domains cimport (
4144
gr_ctx_init_fmpz,
4245
gr_ctx_init_fmpq,
4346
gr_ctx_init_fmpzi,
47+
4448
gr_ctx_init_nmod,
4549
gr_ctx_init_fmpz_mod,
50+
# gr_ctx_set_is_field,
51+
4652
gr_ctx_init_fq,
4753
gr_ctx_init_fq_nmod,
4854
gr_ctx_init_fq_zech,
55+
4956
gr_ctx_init_nf,
5057
gr_ctx_init_nf_fmpz_poly,
58+
5159
gr_ctx_init_real_qqbar,
5260
gr_ctx_init_complex_qqbar,
61+
_gr_ctx_qqbar_set_limits,
62+
5363
gr_ctx_init_real_ca,
5464
gr_ctx_init_complex_ca,
5565
gr_ctx_init_real_algebraic_ca,
5666
gr_ctx_init_complex_algebraic_ca,
5767
gr_ctx_init_complex_extended_ca,
68+
5869
gr_ctx_init_real_float_arf,
5970
gr_ctx_init_complex_float_acf,
71+
6072
gr_ctx_init_real_arb,
6173
gr_ctx_init_complex_acb,
6274
gr_ctx_init_fexpr,
6375

64-
_gr_ctx_qqbar_set_limits,
6576
)
6677
from flint.flintlib.functions.gr cimport (
6778
gr_heap_init,
@@ -425,28 +436,42 @@ cdef _gr_fexpr_ctx gr_fexpr_ctx_c
425436
@cython.no_gc
426437
cdef class gr_nmod_ctx(gr_scalar_ctx):
427438
cdef ulong n
439+
cdef bint is_field
428440

429441
@staticmethod
430442
cdef inline gr_nmod_ctx _new(ulong n):
431443
cdef gr_nmod_ctx ctx
444+
cdef bint is_prime = n_is_prime(n)
432445
ctx = gr_nmod_ctx.__new__(gr_nmod_ctx)
433446
ctx.n = n
447+
ctx.is_field = is_prime
434448
gr_ctx_init_nmod(ctx.ctx_t, n)
435449
ctx._init = True
450+
# if is_prime:
451+
# gr_ctx_set_is_field(ctx.ctx_t, T_TRUE)
452+
# else:
453+
# gr_ctx_set_is_field(ctx.ctx_t, T_FALSE)
436454
return ctx
437455

438456

439457
@cython.no_gc
440458
cdef class gr_fmpz_mod_ctx(gr_scalar_ctx):
441459
cdef fmpz_t n
460+
cdef bint is_field
442461

443462
@staticmethod
444463
cdef inline gr_fmpz_mod_ctx _new(fmpz n):
445464
cdef gr_fmpz_mod_ctx ctx
465+
cdef bint is_prime = n.is_prime()
446466
ctx = gr_fmpz_mod_ctx.__new__(gr_fmpz_mod_ctx)
467+
ctx.is_field = is_prime
447468
fmpz_init_set(ctx.n, n.val)
448469
gr_ctx_init_fmpz_mod(ctx.ctx_t, ctx.n)
449470
ctx._init = True
471+
# if is_prime:
472+
# gr_ctx_set_is_field(ctx.ctx_t, T_TRUE)
473+
# else:
474+
# gr_ctx_set_is_field(ctx.ctx_t, T_FALSE)
450475
return ctx
451476

452477

src/flint/types/gr.pyx renamed to src/flint/types/_gr.pyx

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -245,6 +245,13 @@ cdef class gr_nmod_ctx(gr_scalar_ctx):
245245
def new(ulong n) -> gr_nmod_ctx:
246246
return gr_nmod_ctx._new(n)
247247

248+
@property
249+
def is_prime(self) -> bool:
250+
return self._is_prime()
251+
252+
def modulus(self):
253+
return self.n
254+
248255
def __repr__(self):
249256
return f"gr_nmod_ctx({self.n})"
250257

@@ -257,6 +264,10 @@ cdef class gr_fmpz_mod_ctx(gr_scalar_ctx):
257264
n = fmpz(n)
258265
return gr_fmpz_mod_ctx._new(n)
259266

267+
@property
268+
def is_prime(self) -> bool:
269+
return self._is_prime()
270+
260271
def modulus(self):
261272
cdef fmpz n = fmpz.__new__(fmpz)
262273
fmpz_init_set(n.val, self.n)

src/flint/types/meson.build

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -48,7 +48,7 @@ exts = [
4848
'fmpz_mod_mpoly',
4949
'fmpq_mpoly',
5050

51-
'gr',
51+
'_gr',
5252
]
5353

5454
if have_acb_theta

0 commit comments

Comments
 (0)