Skip to content

Commit d1198cb

Browse files
committed
align new types with testing
1 parent 9be6886 commit d1198cb

10 files changed

Lines changed: 223 additions & 32 deletions

src/flint/flintlib/fq_default_poly_factor.pxd

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,11 @@
11
from flint.flintlib.fq_default cimport fq_default_t, fq_default_ctx_t
2-
from flint.flintlib.flint cimport slong
2+
from flint.flintlib.flint cimport ulong, slong
33
from flint.flintlib.fq_default_poly cimport fq_default_poly_t
44
from flint.flintlib.fq_poly_factor cimport fq_poly_factor_t
55
from flint.flintlib.fq_nmod_poly_factor cimport fq_nmod_poly_factor_t
66
from flint.flintlib.fq_zech_poly_factor cimport fq_zech_poly_factor_t
7-
from flintlib.nmod_poly_factor cimport nmod_poly_factor_t
8-
from flintlib.fmpz_mod_poly_factor cimport fmpz_mod_poly_factor_t
7+
from flint.flintlib.nmod_poly_factor cimport nmod_poly_factor_t
8+
from flint.flintlib.fmpz_mod_poly_factor cimport fmpz_mod_poly_factor_t
99

1010
cdef extern from "flint/fq_default_poly_factor.h":
1111
# Type definitions **********************************************/

src/flint/flintlib/fq_nmod_poly_factor.pxd

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
1-
from flint.flintlib.flint cimport slong, flint_rand_t
1+
from flint.flintlib.flint cimport ulong, slong, flint_rand_t
22
from flint.flintlib.fq_nmod cimport fq_nmod_ctx_t, fq_nmod_t, fq_nmod_struct
3-
from flint.flintlib.fq_nmod_poly cimport fq_nmod_poly_t
3+
from flint.flintlib.fq_nmod cimport fq_nmod_poly_struct, fq_nmod_poly_t
44

55
cdef extern from "flint/fq_nmod_poly_factor.h":
66
# Type definitions **********************************************/

src/flint/flintlib/fq_poly_factor.pxd

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,6 @@
1-
from flint.flintlib.flint cimport slong, flint_rand_t
1+
from flint.flintlib.flint cimport ulong, slong, flint_rand_t
22
from flint.flintlib.fq cimport fq_t, fq_struct, fq_ctx_t
3-
from flint.flintlib.fq_poly cimport fq_poly_t
4-
3+
from flint.flintlib.fq cimport fq_poly_struct, fq_poly_t
54

65

76
cdef extern from "flint/fq_poly_factor.h":

src/flint/flintlib/fq_zech_poly_factor.pxd

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
1-
from flint.flintlib.flint cimport flint_rand_t, slong
1+
from flint.flintlib.flint cimport flint_rand_t, slong, ulong
22
from flint.flintlib.fq_zech cimport fq_zech_ctx_t, fq_zech_t, fq_zech_struct
3-
from flint.flintlib.fq_zech_poly cimport fq_zech_poly_t
3+
from flint.flintlib.fq_zech cimport fq_zech_poly_struct, fq_zech_poly_t
44

55
cdef extern from "flint/fq_zech_poly_factor.h":
66
# Type definitions **********************************************/

src/flint/test/__main__.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -74,7 +74,7 @@ def run_doctests(verbose=None):
7474
flint.types.fq_default,
7575
flint.types.fq_default_poly,
7676
flint.types.arf,
77-
# flint.types.arb,
77+
flint.types.arb,
7878
flint.types.arb_poly,
7979
flint.types.arb_mat,
8080
flint.types.arb_series,

src/flint/test/test_all.py

Lines changed: 27 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -2466,12 +2466,29 @@ def _all_polys():
24662466
(lambda *a: flint.fmpz_mod_poly(*a, flint.fmpz_mod_poly_ctx(2**255 - 19)),
24672467
lambda x: flint.fmpz_mod(x, flint.fmpz_mod_ctx(2**255 - 19)),
24682468
True),
2469+
(lambda *a: flint.fq_default_poly(*a, flint.fq_default_poly_ctx(2**127 - 1)),
2470+
lambda x: flint.fq_default(x, flint.fq_default_ctx(2**127 - 1)),
2471+
True),
2472+
(lambda *a: flint.fq_default_poly(*a, flint.fq_default_poly_ctx(2**127 - 1, 2)),
2473+
lambda x: flint.fq_default(x, flint.fq_default_ctx(2**127 - 1, 2)),
2474+
True),
2475+
(lambda *a: flint.fq_default_poly(*a, flint.fq_default_poly_ctx(65537)),
2476+
lambda x: flint.fq_default(x, flint.fq_default_ctx(65537)),
2477+
True),
2478+
(lambda *a: flint.fq_default_poly(*a, flint.fq_default_poly_ctx(65537, 5)),
2479+
lambda x: flint.fq_default(x, flint.fq_default_ctx(65537, 5)),
2480+
True),
2481+
(lambda *a: flint.fq_default_poly(*a, flint.fq_default_poly_ctx(11)),
2482+
lambda x: flint.fq_default(x, flint.fq_default_ctx(11)),
2483+
True),
2484+
(lambda *a: flint.fq_default_poly(*a, flint.fq_default_poly_ctx(11, 5)),
2485+
lambda x: flint.fq_default(x, flint.fq_default_ctx(11, 5)),
2486+
True),
24692487
]
24702488

24712489

24722490
def test_polys():
24732491
for P, S, is_field in _all_polys():
2474-
24752492
assert P([S(1)]) == P([1]) == P(P([1])) == P(1)
24762493

24772494
assert raises(lambda: P([None]), TypeError)
@@ -2560,6 +2577,8 @@ def setbad(obj, i, val):
25602577
assert P(v).repr() == f'nmod_poly({v!r}, 17)'
25612578
elif type(p) == flint.fmpz_mod_poly:
25622579
pass # fmpz_mod_poly does not have .repr() ...
2580+
elif type(p) == flint.fq_default_poly:
2581+
pass # fq_default_poly does not have .repr() ...
25632582
else:
25642583
assert False
25652584

@@ -2599,7 +2618,7 @@ def setbad(obj, i, val):
25992618

26002619
for T in [int, S, flint.fmpz]:
26012620
assert P([1, 2, 3]) - T(1) == P([0, 2, 3])
2602-
assert T(1) - P([1, 2, 3]) == P([0, -2, -3])
2621+
assert T(1) - P([1, 2, 3]) == P([0, -2, -3]), f"{P([0, -2, -3]) = }, {T(1) - P([1, 2, 3]) = }"
26032622

26042623
assert raises(lambda: P([1, 2, 3]) - None, TypeError)
26052624
assert raises(lambda: None - P([1, 2, 3]), TypeError)
@@ -2666,7 +2685,7 @@ def setbad(obj, i, val):
26662685
# XXX: Not sure what this should do in general:
26672686
p = P([1, 1])
26682687
mod = P([1, 1])
2669-
if type(p) not in [flint.fmpz_mod_poly, flint.nmod_poly]:
2688+
if type(p) not in [flint.fmpz_mod_poly, flint.nmod_poly, flint.fq_default_poly]:
26702689
assert raises(lambda: pow(p, 2, mod), NotImplementedError)
26712690
else:
26722691
assert p * p % mod == pow(p, 2, mod)
@@ -2696,8 +2715,11 @@ def setbad(obj, i, val):
26962715

26972716
assert P([1, 2, 1]).derivative() == P([2, 2])
26982717

2699-
if is_field:
2700-
assert P([1, 2, 1]).integral() == P([0, 1, 1, S(1)/3])
2718+
p = P([1, 2, 1])
2719+
if is_field and type(p) != flint.fq_default_poly:
2720+
assert p.integral() == P([0, 1, 1, S(1)/3])
2721+
if type(p) == flint.fq_default_poly:
2722+
assert raises(lambda: p.integral(), NotImplementedError)
27012723

27022724
def _all_mpolys():
27032725
return [

src/flint/types/fmpz_mod_poly.pyx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1734,4 +1734,4 @@ cdef class fmpz_mod_poly(flint_poly):
17341734
This method is not implemented for polynomials in
17351735
:math:`(\mathbb{Z}/N\mathbb{Z})[X]`
17361736
"""
1737-
raise DomainError("Cannot compute compex roots for polynomials over integers modulo N")
1737+
raise DomainError("Cannot compute complex roots for polynomials over integers modulo N")

src/flint/types/fq_default.pyx

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -572,10 +572,10 @@ cdef class fq_default(flint_scalar):
572572

573573
# Conversion failed, element was not a compatible scalar
574574
if check is NotImplemented:
575-
res = False
576-
else:
577-
# We now have an fq_default element with the same context, so compare value only
578-
res = fq_default_equal(self.val, (<fq_default>cmp).val, self.ctx.val)
575+
return NotImplemented
576+
577+
# We now have an fq_default element with the same context, so compare value only
578+
res = fq_default_equal(self.val, (<fq_default>cmp).val, self.ctx.val)
579579

580580
# Flip the result of res if we're doing not equals
581581
if op == 2:

src/flint/types/fq_default_poly.pxd

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,6 @@
11
from flint.flintlib.fq_default_poly cimport *
2+
from flint.flintlib.fq_default_poly_factor cimport *
3+
from flint.flintlib.fq_default cimport fq_default_neg
24

35
from flint.flint_base.flint_base cimport flint_poly
46
from flint.types.fq_default cimport fq_default_ctx

0 commit comments

Comments
 (0)