Skip to content

Commit d6cbcca

Browse files
committed
Method polynomial_construction for multivalued laurent polynomial is no monomial_factorization
and alias is created for univariate ones.
1 parent a9fca3f commit d6cbcca

File tree

3 files changed

+13
-14
lines changed

3 files changed

+13
-14
lines changed

src/sage/groups/finitely_presented.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1798,7 +1798,7 @@ def characteristic_varieties(self, ring=QQ, matrix_ideal=None, groebner=False):
17981798
S = R.polynomial_ring()
17991799
ideal = [S(elt) for elt in ideal]
18001800
for j in range(1, A.ncols()):
1801-
L = [p.polynomial_construction()[0] for p in A.minors(j)]
1801+
L = [p.monomial_factorization()[0] for p in A.minors(j)]
18021802
J = R.ideal(L + ideal)
18031803
res.append(J)
18041804
if not groebner or not R.base_ring().is_field():

src/sage/rings/polynomial/laurent_polynomial.pyx

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1557,6 +1557,8 @@ cdef class LaurentPolynomial_univariate(LaurentPolynomial):
15571557
Return the polynomial and the shift in power used to construct the
15581558
Laurent polynomial `t^n u`.
15591559
1560+
``monomial_factorization`` is an alias for ``polynomial_construction``
1561+
15601562
OUTPUT:
15611563
15621564
A tuple ``(u, n)`` where ``u`` is the underlying polynomial and ``n``
@@ -1568,9 +1570,13 @@ cdef class LaurentPolynomial_univariate(LaurentPolynomial):
15681570
sage: f = 1/x + x^2 + 3*x^4
15691571
sage: f.polynomial_construction()
15701572
(3*x^5 + x^3 + 1, -1)
1573+
sage: f.polynomial_construction() == f.monomial_factorization()
1574+
True
15711575
"""
15721576
return (self.__u, self.__n)
15731577

1578+
monomial_factorization = polynomial_construction
1579+
15741580
def is_constant(self):
15751581
"""
15761582
Return whether this Laurent polynomial is constant.

src/sage/rings/polynomial/laurent_polynomial_mpair.pyx

Lines changed: 6 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -1520,7 +1520,7 @@ cdef class LaurentPolynomial_mpair(LaurentPolynomial):
15201520

15211521
return R({m[i]: c for m, c in self.dict().iteritems()})
15221522

1523-
def polynomial_construction(self):
1523+
def monomial_factorization(self):
15241524
"""
15251525
Factor ``self`` into a polynomial and a monomial.
15261526
@@ -1533,28 +1533,21 @@ cdef class LaurentPolynomial_mpair(LaurentPolynomial):
15331533
15341534
sage: R.<x, y> = LaurentPolynomialRing(QQ)
15351535
sage: f = y / x + x^2 / y + 3 * x^4 * y^-2
1536-
sage: f.polynomial_construction()
1536+
sage: f.monomial_factorization()
15371537
(3*x^5 + x^3*y + y^3, 1/(x*y^2))
15381538
sage: f = y * x + x^2 / y + 3 * x^4 * y^-2
1539-
sage: f.polynomial_construction()
1539+
sage: f.monomial_factorization()
15401540
(3*x^3 + y^3 + x*y, x/y^2)
1541-
sage: x.polynomial_construction()
1541+
sage: x.monomial_factorization()
15421542
(1, x)
1543-
sage: (y^-1).polynomial_construction()
1543+
sage: (y^-1).monomial_factorization()
15441544
(1, 1/y)
15451545
"""
15461546
self._normalize()
15471547
ring = self._parent._R
15481548
g = ring.gens()
15491549
mon = ring.prod(g[i] ** j for i, j in enumerate(self._mon))
1550-
return (self._poly, mon) # R = self.parent()
1551-
# n = R.ngens()
1552-
# S = R.polynomial_ring()
1553-
# if not self:
1554-
# return (self, R(1))
1555-
# minimo = tuple(min(a[1].degree(v) for a in self) for v in R.gens())
1556-
# mon = R({minimo: 1})
1557-
# return (S(mon ** -1 * self), mon)
1550+
return (self._poly, mon)
15581551

15591552
def factor(self):
15601553
"""

0 commit comments

Comments
 (0)