From c33529a6cf988921d63d2fb258ca9092c9f93829 Mon Sep 17 00:00:00 2001 From: Matthias Koeppe Date: Sat, 19 Aug 2023 12:48:31 -0700 Subject: [PATCH 1/4] src/sage/rings/finite_rings/element_ntl_gf2e.pyx: Remove unused imports, use Vector for isinstance test --- .../rings/finite_rings/element_ntl_gf2e.pyx | 28 ++----------------- 1 file changed, 2 insertions(+), 26 deletions(-) diff --git a/src/sage/rings/finite_rings/element_ntl_gf2e.pyx b/src/sage/rings/finite_rings/element_ntl_gf2e.pyx index 33db43010b9..7c5ab521b7a 100644 --- a/src/sage/rings/finite_rings/element_ntl_gf2e.pyx +++ b/src/sage/rings/finite_rings/element_ntl_gf2e.pyx @@ -36,6 +36,7 @@ from sage.structure.richcmp cimport (richcmp, richcmp_not_equal, rich_to_bool) from sage.structure.parent cimport Parent +from sage.structure.element cimport Vector from sage.rings.finite_rings.finite_field_base cimport FiniteField @@ -50,15 +51,10 @@ from sage.interfaces.abc import GapElement cdef object is_IntegerMod -cdef object IntegerModRing_generic cdef object Integer cdef object Rational -cdef object is_Polynomial -cdef object ConwayPolynomials -cdef object conway_polynomial cdef object MPolynomial cdef object Polynomial -cdef object FreeModuleElement cdef object GF cdef object GF2, GF2_0, GF2_1 @@ -69,15 +65,10 @@ cdef int late_import() except -1: imports. """ global is_IntegerMod, \ - IntegerModRing_generic, \ Integer, \ Rational, \ - is_Polynomial, \ - ConwayPolynomials, \ - conway_polynomial, \ MPolynomial, \ Polynomial, \ - FreeModuleElement, \ GF, \ GF2, GF2_0, GF2_1 @@ -87,30 +78,15 @@ cdef int late_import() except -1: import sage.rings.finite_rings.integer_mod is_IntegerMod = sage.rings.finite_rings.integer_mod.is_IntegerMod - import sage.rings.finite_rings.integer_mod_ring - IntegerModRing_generic = sage.rings.finite_rings.integer_mod_ring.IntegerModRing_generic - import sage.rings.rational Rational = sage.rings.rational.Rational - import sage.rings.polynomial.polynomial_element - is_Polynomial = sage.rings.polynomial.polynomial_element.is_Polynomial - - import sage.databases.conway - ConwayPolynomials = sage.databases.conway.ConwayPolynomials - - import sage.rings.finite_rings.conway_polynomials - conway_polynomial = sage.rings.finite_rings.conway_polynomials.conway_polynomial - import sage.rings.polynomial.multi_polynomial_element MPolynomial = sage.rings.polynomial.multi_polynomial_element.MPolynomial import sage.rings.polynomial.polynomial_element Polynomial = sage.rings.polynomial.polynomial_element.Polynomial - import sage.modules.free_module_element - FreeModuleElement = sage.modules.free_module_element.FreeModuleElement - import sage.rings.finite_rings.finite_field_constructor GF = sage.rings.finite_rings.finite_field_constructor.FiniteField GF2 = GF(2) @@ -313,7 +289,7 @@ cdef class Cache_ntl_gf2e(Cache_base): elif isinstance(e, str): return self._parent(eval(e.replace("^","**"),self._parent.gens_dict())) - elif isinstance(e, FreeModuleElement): + elif isinstance(e, Vector): if self._parent.vector_space(map=False) != e.parent(): raise TypeError("e.parent must match self.vector_space") ztmp = Integer(e.list(),2) From 1bb410e1b1c853ec6fd209a7a7a6647df2f47c60 Mon Sep 17 00:00:00 2001 From: Matthias Koeppe Date: Sat, 19 Aug 2023 13:14:50 -0700 Subject: [PATCH 2/4] src/sage/rings/finite_rings/finite_field_ntl_gf2e.pyx: Remove unused imports --- src/sage/rings/finite_rings/finite_field_ntl_gf2e.py | 12 +----------- 1 file changed, 1 insertion(+), 11 deletions(-) diff --git a/src/sage/rings/finite_rings/finite_field_ntl_gf2e.py b/src/sage/rings/finite_rings/finite_field_ntl_gf2e.py index 33ea3d1bcfc..17161467f12 100644 --- a/src/sage/rings/finite_rings/finite_field_ntl_gf2e.py +++ b/src/sage/rings/finite_rings/finite_field_ntl_gf2e.py @@ -33,14 +33,7 @@ def late_import(): """ if "GF2" in globals(): return - global is_FiniteField, exists_conway_polynomial, conway_polynomial, Cache_ntl_gf2e, GF, GF2, is_Polynomial - - import sage.rings.finite_rings.finite_field_base - is_FiniteField = sage.rings.finite_rings.finite_field_base.is_FiniteField - - import sage.rings.finite_rings.conway_polynomials - exists_conway_polynomial = sage.rings.finite_rings.conway_polynomials.exists_conway_polynomial - conway_polynomial = sage.rings.finite_rings.conway_polynomials.conway_polynomial + global Cache_ntl_gf2e, GF, GF2 import sage.rings.finite_rings.element_ntl_gf2e Cache_ntl_gf2e = sage.rings.finite_rings.element_ntl_gf2e.Cache_ntl_gf2e @@ -49,9 +42,6 @@ def late_import(): GF = sage.rings.finite_rings.finite_field_constructor.GF GF2 = GF(2) - import sage.rings.polynomial.polynomial_element - is_Polynomial = sage.rings.polynomial.polynomial_element.is_Polynomial - class FiniteField_ntl_gf2e(FiniteField): """ From d614be81610902e39bb052fc019f1047b493211a Mon Sep 17 00:00:00 2001 From: Matthias Koeppe Date: Sun, 27 Aug 2023 16:29:06 -0700 Subject: [PATCH 3/4] src/sage/rings/finite_rings/element_givaro.pyx: Remove unused imports, use Vector for isinstance test --- .../rings/finite_rings/element_givaro.pyx | 20 ++++--------------- 1 file changed, 4 insertions(+), 16 deletions(-) diff --git a/src/sage/rings/finite_rings/element_givaro.pyx b/src/sage/rings/finite_rings/element_givaro.pyx index 61e8e5b99ca..ead2551ded5 100644 --- a/src/sage/rings/finite_rings/element_givaro.pyx +++ b/src/sage/rings/finite_rings/element_givaro.pyx @@ -65,17 +65,16 @@ from cypari2.gen cimport Gen from cypari2.stack cimport clear_stack from sage.structure.parent cimport Parent +from sage.structure.element cimport Vector from sage.interfaces.abc import GapElement cdef object is_IntegerMod cdef object Integer cdef object Rational -cdef object ConwayPolynomials -cdef object conway_polynomial cdef object MPolynomial cdef object Polynomial -cdef object FreeModuleElement + cdef void late_import(): """ @@ -84,11 +83,8 @@ cdef void late_import(): global is_IntegerMod, \ Integer, \ Rational, \ - ConwayPolynomials, \ - conway_polynomial, \ MPolynomial, \ - Polynomial, \ - FreeModuleElement + Polynomial if is_IntegerMod is not None: return @@ -102,20 +98,12 @@ cdef void late_import(): import sage.rings.rational Rational = sage.rings.rational.Rational - import sage.databases.conway - ConwayPolynomials = sage.databases.conway.ConwayPolynomials - - import sage.rings.finite_rings.finite_field_constructor - conway_polynomial = sage.rings.finite_rings.conway_polynomials.conway_polynomial - import sage.rings.polynomial.multi_polynomial_element MPolynomial = sage.rings.polynomial.multi_polynomial_element.MPolynomial import sage.rings.polynomial.polynomial_element Polynomial = sage.rings.polynomial.polynomial_element.Polynomial - import sage.modules.free_module_element - FreeModuleElement = sage.modules.free_module_element.FreeModuleElement cdef class Cache_givaro(Cache_base): def __init__(self, parent, unsigned int p, unsigned int k, modulus, repr="poly", cache=False): @@ -391,7 +379,7 @@ cdef class Cache_givaro(Cache_base): return self.parent(eval(e.replace("^", "**"), self.parent.gens_dict())) - elif isinstance(e, FreeModuleElement): + elif isinstance(e, Vector): if self.parent.vector_space(map=False) != e.parent(): raise TypeError("e.parent must match self.vector_space") ret = self._zero_element From c0bad3207cb610b5ed0a0ff7d1b6d06a52f611fe Mon Sep 17 00:00:00 2001 From: Matthias Koeppe Date: Sun, 27 Aug 2023 16:30:09 -0700 Subject: [PATCH 4/4] src/sage/rings/finite_rings/element_pari_ffelt.pyx: Use Vector for isinstance test --- src/sage/rings/finite_rings/element_pari_ffelt.pyx | 9 +++------ 1 file changed, 3 insertions(+), 6 deletions(-) diff --git a/src/sage/rings/finite_rings/element_pari_ffelt.pyx b/src/sage/rings/finite_rings/element_pari_ffelt.pyx index b83f259abcc..a1dce8b5ae7 100644 --- a/src/sage/rings/finite_rings/element_pari_ffelt.pyx +++ b/src/sage/rings/finite_rings/element_pari_ffelt.pyx @@ -32,15 +32,12 @@ from sage.rings.integer cimport Integer from sage.rings.polynomial.polynomial_element import Polynomial from sage.rings.polynomial.multi_polynomial_element import MPolynomial from sage.rings.rational import Rational +from sage.structure.element cimport Vector from sage.structure.richcmp cimport rich_to_bool -try: - from sage.modules.free_module_element import FreeModuleElement -except ImportError: - FreeModuleElement = () - from sage.interfaces.abc import GapElement + cdef GEN _INT_to_FFELT(GEN g, GEN x) except NULL: """ Convert the t_INT `x` to an element of the field of definition of @@ -457,7 +454,7 @@ cdef class FiniteFieldElement_pari_ffelt(FinitePolyExtElement): sig_off() raise TypeError(f"unable to convert PARI {x.type()} to finite field element") - elif (isinstance(x, FreeModuleElement) + elif (isinstance(x, Vector) and x.parent() is self._parent.vector_space(map=False)): g = (self._parent._gen_pari).g t = g[1] # codeword: t_FF_FpXQ, t_FF_Flxq, t_FF_F2xq