Skip to content

Commit 2a7b4c9

Browse files
author
Release Manager
committed
gh-35076: Add ABCs CommutativePolynomial, MPolynomial_libsingular, InfinitePolynomial; deprecate is_Polynomial, is_MPolynomial <!-- ^^^^^ Please provide a concise, informative and self-explanatory title. Don't put issue numbers in there, do this in the PR body below. For example, instead of "Fixes #1234" use "Introduce new method to calculate 1+1" --> ### 📚 Description <!-- Describe your changes here in detail --> <!-- Why is this change required? What problem does it solve? --> <!-- If it resolves an open issue, please link to the issue here. For example "Closes #1337" --> Closes #32709 ### 📝 Checklist <!-- Put an `x` in all the boxes that apply. --> <!-- If your change requires a documentation PR, please link it appropriately --> <!-- If you're unsure about any of these, don't hesitate to ask. We're here to help! --> - [ ] I have made sure that the title is self-explanatory and the description concisely explains the PR. - [x] I have linked an issue or discussion. - [x] I have created tests covering the changes. - [ ] I have updated the documentation accordingly. ### ⌛ Dependencies <!-- List all open pull requests that this PR logically depends on --> <!-- - #xyz: short description why this is a dependency - #abc: ... --> URL: #35076 Reported by: Matthias Köppe Reviewer(s): Travis Scrimshaw
2 parents 39b4912 + 3b65350 commit 2a7b4c9

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

57 files changed

+691
-608
lines changed

src/sage/algebras/fusion_rings/shm_managers.pyx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@ from multiprocessing import shared_memory
2222
from sage.algebras.fusion_rings.poly_tup_engine cimport poly_to_tup, tup_fixes_sq, _flatten_coeffs
2323
from sage.rings.integer cimport Integer
2424
from sage.rings.rational cimport Rational
25-
from sage.rings.polynomial.multi_polynomial_libsingular cimport MPolynomial_libsingular
25+
from sage.rings.polynomial.multi_polynomial cimport MPolynomial_libsingular
2626
from sage.rings.polynomial.polydict cimport ETuple
2727

2828
import numpy as np

src/sage/combinat/kazhdan_lusztig.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,7 @@
2020
#*****************************************************************************
2121

2222

23-
from sage.rings.polynomial.polynomial_element import is_Polynomial
23+
from sage.rings.polynomial.polynomial_element import Polynomial
2424
from sage.misc.cachefunc import cached_method
2525
from sage.rings.polynomial.laurent_polynomial import LaurentPolynomial
2626
from sage.structure.sage_object import SageObject
@@ -76,7 +76,7 @@ def __init__(self, W, q, trace=False):
7676
self._trace = trace
7777
self._one = W.one()
7878
self._base_ring = q.parent()
79-
if is_Polynomial(q):
79+
if isinstance(q, Polynomial):
8080
self._base_ring_type = "polynomial"
8181
elif isinstance(q, LaurentPolynomial):
8282
self._base_ring_type = "laurent"

src/sage/combinat/schubert_polynomial.py

Lines changed: 5 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -80,10 +80,9 @@
8080
from sage.misc.cachefunc import cached_method
8181
from sage.rings.integer import Integer
8282
from sage.rings.integer_ring import ZZ
83-
from sage.rings.polynomial.infinite_polynomial_element import InfinitePolynomial_sparse
83+
from sage.rings.polynomial.infinite_polynomial_element import InfinitePolynomial
8484
from sage.rings.polynomial.polynomial_ring_constructor import PolynomialRing
85-
from sage.rings.polynomial.multi_polynomial import is_MPolynomial
86-
85+
from sage.rings.polynomial.multi_polynomial import MPolynomial
8786
import sage.libs.symmetrica.all as symmetrica
8887

8988

@@ -150,7 +149,7 @@ def expand(self):
150149
x0
151150
"""
152151
p = symmetrica.t_SCHUBERT_POLYNOM(self)
153-
if not is_MPolynomial(p):
152+
if not isinstance(p, MPolynomial):
154153
R = PolynomialRing(self.parent().base_ring(), 1, 'x0')
155154
p = R(p)
156155
return p
@@ -462,9 +461,9 @@ def _element_constructor_(self, x):
462461
elif isinstance(x, Permutation):
463462
perm = x.remove_extra_fixed_points()
464463
return self._from_dict({perm: self.base_ring().one()})
465-
elif is_MPolynomial(x):
464+
elif isinstance(x, MPolynomial):
466465
return symmetrica.t_POLYNOM_SCHUBERT(x)
467-
elif isinstance(x, InfinitePolynomial_sparse):
466+
elif isinstance(x, InfinitePolynomial):
468467
R = x.polynomial().parent()
469468
# massage the term order to be what symmetrica expects
470469
S = PolynomialRing(R.base_ring(),

src/sage/combinat/sf/sfa.py

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -217,8 +217,8 @@
217217
from sage.rings.integer import Integer
218218
from sage.rings.infinity import infinity
219219
from sage.rings.polynomial.polynomial_ring_constructor import PolynomialRing
220-
from sage.rings.polynomial.polynomial_element import is_Polynomial
221-
from sage.rings.polynomial.multi_polynomial import is_MPolynomial
220+
from sage.rings.polynomial.polynomial_element import Polynomial
221+
from sage.rings.polynomial.multi_polynomial import MPolynomial
222222
from sage.combinat.partition import _Partitions, Partitions, Partitions_n, Partition
223223
from sage.categories.hopf_algebras import HopfAlgebras
224224
from sage.categories.hopf_algebras_with_basis import HopfAlgebrasWithBasis
@@ -6409,7 +6409,7 @@ def _nonnegative_coefficients(x):
64096409
sage: _nonnegative_coefficients(x^2-4)
64106410
False
64116411
"""
6412-
if is_Polynomial(x) or is_MPolynomial(x):
6412+
if isinstance(x, Polynomial) or isinstance(x, MPolynomial):
64136413
return all(c >= 0 for c in x.coefficients(sparse=False))
64146414
else:
64156415
return x >= 0

src/sage/crypto/boolean_function.pyx

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -40,7 +40,7 @@ from sage.rings.finite_rings.finite_field_constructor import GF
4040
from sage.rings.polynomial.pbori.pbori import BooleanPolynomial
4141
from sage.rings.finite_rings.finite_field_constructor import is_FiniteField
4242
from sage.rings.finite_rings.finite_field_givaro import FiniteField_givaro
43-
from sage.rings.polynomial.polynomial_element import is_Polynomial
43+
from sage.rings.polynomial.polynomial_element import Polynomial
4444

4545
from sage.misc.superseded import deprecated_function_alias
4646

@@ -327,7 +327,7 @@ cdef class BooleanFunction(SageObject):
327327
bitset_init(self._truth_table, <mp_bitcnt_t> (1<<self._nvariables))
328328
bitset_zero(self._truth_table)
329329

330-
elif is_Polynomial(x):
330+
elif isinstance(x, Polynomial):
331331
K = x.base_ring()
332332
if is_FiniteField(K) and K.characteristic() == 2:
333333
self._nvariables = K.degree()

src/sage/crypto/mq/rijndael_gf.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1549,9 +1549,9 @@ def compose(self, f, g, algorithm='encrypt', f_attr=None, g_attr=None):
15491549
if not isinstance(f, RijndaelGF.Round_Component_Poly_Constr):
15501550
msg = "keyword 'f' must be a Round_Component_Poly_Constr"
15511551
raise TypeError(msg)
1552-
from sage.rings.polynomial.multi_polynomial import is_MPolynomial
1552+
from sage.rings.polynomial.multi_polynomial import MPolynomial
15531553
if not isinstance(g, RijndaelGF.Round_Component_Poly_Constr) and \
1554-
not is_MPolynomial(g):
1554+
not isinstance(g, MPolynomial):
15551555
msg = ("keyword 'g' must be a Round_Component_Poly_Constr or a "
15561556
"polynomial over {0}")
15571557
raise TypeError(msg.format(self._F))

src/sage/crypto/sbox.pyx

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -173,12 +173,12 @@ cdef class SBox(SageObject):
173173
sage: S.output_size()
174174
3
175175
"""
176-
from sage.rings.polynomial.polynomial_element import is_Polynomial
176+
from sage.rings.polynomial.polynomial_element import Polynomial
177177

178178
if "S" in kwargs:
179179
args = kwargs["S"]
180180

181-
if len(args) == 1 and is_Polynomial(args[0]):
181+
if len(args) == 1 and isinstance(args[0], Polynomial):
182182
# SBox defined via Univariate Polynomial, compute lookup table
183183
# by evaluating the polynomial on every base_ring element
184184
poly = args[0]

src/sage/crypto/stream.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,7 @@
2020
from sage.arith.all import gcd, power_mod
2121
from sage.rings.finite_rings.finite_field_constructor import FiniteField
2222
from sage.rings.finite_rings.integer_mod_ring import IntegerModFactory
23-
from sage.rings.polynomial.polynomial_element import is_Polynomial
23+
from sage.rings.polynomial.polynomial_element import Polynomial
2424

2525

2626
IntegerModRing = IntegerModFactory("IntegerModRing")
@@ -73,7 +73,7 @@ def __call__(self, key):
7373
if not isinstance(key, (list, tuple)) and len(key) == 2:
7474
raise TypeError("Argument key (= %s) must be a list of tuple of length 2" % key)
7575
poly, IS = key
76-
if not is_Polynomial(poly):
76+
if not isinstance(poly, Polynomial):
7777
raise TypeError("poly (= %s) must be a polynomial." % poly)
7878
if not isinstance(IS, (list, tuple)):
7979
raise TypeError("IS (= %s) must be an initial in the key space." % IS)

src/sage/groups/affine_gps/group_element.py

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -414,13 +414,13 @@ def __call__(self, v):
414414
if v in parent.vector_space():
415415
return self._A*v + self._b
416416

417-
from sage.rings.polynomial.polynomial_element import is_Polynomial
418-
if is_Polynomial(v) and parent.degree() == 1:
417+
from sage.rings.polynomial.polynomial_element import Polynomial
418+
if isinstance(v, Polynomial) and parent.degree() == 1:
419419
ring = v.parent()
420420
return ring([self._A[0,0], self._b[0]])
421421

422-
from sage.rings.polynomial.multi_polynomial import is_MPolynomial
423-
if is_MPolynomial(v) and parent.degree() == v.parent().ngens():
422+
from sage.rings.polynomial.multi_polynomial import MPolynomial
423+
if isinstance(v, MPolynomial) and parent.degree() == v.parent().ngens():
424424
ring = v.parent()
425425
from sage.modules.free_module_element import vector
426426
image_coords = self._A * vector(ring, ring.gens()) + self._b

src/sage/groups/perm_gps/permgroup_element.pyx

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -122,8 +122,8 @@ from cypari2.gen cimport Gen
122122

123123
from sage.ext.stdsage cimport HAS_DICTIONARY
124124
from sage.rings.all import ZZ, Integer
125-
from sage.rings.polynomial.polynomial_element import is_Polynomial
126-
from sage.rings.polynomial.multi_polynomial import is_MPolynomial
125+
from sage.rings.polynomial.polynomial_element import Polynomial
126+
from sage.rings.polynomial.multi_polynomial import MPolynomial
127127
from sage.structure.element import is_Matrix
128128
from sage.matrix.all import MatrixSpace
129129
from sage.sets.finite_enumerated_set import FiniteEnumeratedSet
@@ -1233,12 +1233,12 @@ cdef class PermutationGroupElement(MultiplicativeGroupElement):
12331233
"""
12341234
if not self_on_left:
12351235
left = x
1236-
if is_Polynomial(left):
1236+
if isinstance(left, Polynomial):
12371237
if self != 1:
12381238
raise ValueError("%s does not act on %s" % (self,
12391239
left.parent()))
12401240
return left
1241-
elif is_MPolynomial(left):
1241+
elif isinstance(left, MPolynomial):
12421242
R = left.parent()
12431243
vars = R.gens()
12441244
try:

0 commit comments

Comments
 (0)