Skip to content

Commit b6a3f5a

Browse files
author
Matthias Koeppe
committed
sage.rings.{finite_rings,polynomial}: Modularization fixes for imports
1 parent c7698e5 commit b6a3f5a

File tree

1 file changed

+9
-4
lines changed

1 file changed

+9
-4
lines changed

src/sage/rings/polynomial/polynomial_ring.py

Lines changed: 9 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -3497,9 +3497,6 @@ def irreducible_element(self, n, algorithm=None):
34973497
from sage.libs.pari.all import pari
34983498
from sage.rings.finite_rings.conway_polynomials import (conway_polynomial,
34993499
exists_conway_polynomial)
3500-
from .polynomial_gf2x import (GF2X_BuildIrred_list,
3501-
GF2X_BuildSparseIrred_list,
3502-
GF2X_BuildRandomIrred_list)
35033500

35043501
p = self.characteristic()
35053502
n = int(n)
@@ -3512,7 +3509,12 @@ def irreducible_element(self, n, algorithm=None):
35123509
elif exists_conway_polynomial(p, n):
35133510
algorithm = "conway"
35143511
elif p == 2:
3515-
algorithm = "minimal_weight"
3512+
try:
3513+
from .polynomial_gf2x import GF2X_BuildSparseIrred_list
3514+
except ImportError:
3515+
algorithm = "adleman-lenstra"
3516+
else:
3517+
algorithm = "minimal_weight"
35163518
else:
35173519
algorithm = "adleman-lenstra"
35183520
elif algorithm == "primitive":
@@ -3527,6 +3529,7 @@ def irreducible_element(self, n, algorithm=None):
35273529
return self(conway_polynomial(p, n))
35283530
elif algorithm == "first_lexicographic":
35293531
if p == 2:
3532+
from .polynomial_gf2x import GF2X_BuildIrred_list
35303533
return self(GF2X_BuildIrred_list(n))
35313534
else:
35323535
# Fallback to PolynomialRing_dense_finite_field.irreducible_element
@@ -3535,11 +3538,13 @@ def irreducible_element(self, n, algorithm=None):
35353538
return self(pari(p).ffinit(n).ffgen().ffprimroot().charpoly())
35363539
elif algorithm == "minimal_weight":
35373540
if p == 2:
3541+
from .polynomial_gf2x import GF2X_BuildSparseIrred_list
35383542
return self(GF2X_BuildSparseIrred_list(n))
35393543
else:
35403544
raise NotImplementedError("'minimal_weight' option only implemented for p = 2")
35413545
elif algorithm == "random":
35423546
if p == 2:
3547+
from .polynomial_gf2x import GF2X_BuildRandomIrred_list
35433548
return self(GF2X_BuildRandomIrred_list(n))
35443549
else:
35453550
pass

0 commit comments

Comments
 (0)