Skip to content

Commit 8a1f33d

Browse files
author
Matthias Koeppe
committed
sage.rings.polynomial: Update # needs
1 parent 6f03124 commit 8a1f33d

15 files changed

+423
-338
lines changed

src/sage/rings/polynomial/flatten.py

Lines changed: 20 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -111,37 +111,41 @@ def __init__(self, domain):
111111
112112
::
113113
114+
sage: # needs sage.rings.number_field
114115
sage: x = polygen(ZZ, 'x')
115-
sage: K.<v> = NumberField(x^3 - 2) # needs sage.rings.number_field
116-
sage: R = K['x','y']['a','b'] # needs sage.rings.number_field
116+
sage: K.<v> = NumberField(x^3 - 2)
117+
sage: R = K['x','y']['a','b']
117118
sage: from sage.rings.polynomial.flatten import FlatteningMorphism
118-
sage: f = FlatteningMorphism(R) # needs sage.rings.number_field
119-
sage: f(R('v*a*x^2 + b^2 + 1/v*y')) # needs sage.rings.number_field
119+
sage: f = FlatteningMorphism(R)
120+
sage: f(R('v*a*x^2 + b^2 + 1/v*y'))
120121
v*x^2*a + b^2 + (1/2*v^2)*y
121122
122123
::
123124
124-
sage: R = QQbar['x','y']['a','b'] # needs sage.rings.number_field
125+
sage: # needs sage.rings.number_field
126+
sage: R = QQbar['x','y']['a','b']
125127
sage: from sage.rings.polynomial.flatten import FlatteningMorphism
126-
sage: f = FlatteningMorphism(R) # needs sage.rings.number_field
127-
sage: f(R('QQbar(sqrt(2))*a*x^2 + b^2 + QQbar(I)*y')) # needs sage.rings.number_field sage.symbolic
128+
sage: f = FlatteningMorphism(R)
129+
sage: f(R('QQbar(sqrt(2))*a*x^2 + b^2 + QQbar(I)*y')) # needs sage.symbolic
128130
1.414213562373095?*x^2*a + b^2 + I*y
129131
130132
::
131133
132-
sage: R.<z> = PolynomialRing(QQbar, 1) # needs sage.rings.number_field
134+
sage: # needs sage.rings.number_field
135+
sage: R.<z> = PolynomialRing(QQbar, 1)
133136
sage: from sage.rings.polynomial.flatten import FlatteningMorphism
134-
sage: f = FlatteningMorphism(R) # needs sage.rings.number_field
135-
sage: f.domain(), f.codomain() # needs sage.rings.number_field
137+
sage: f = FlatteningMorphism(R)
138+
sage: f.domain(), f.codomain()
136139
(Multivariate Polynomial Ring in z over Algebraic Field,
137140
Multivariate Polynomial Ring in z over Algebraic Field)
138141
139142
::
140143
141-
sage: R.<z> = PolynomialRing(QQbar) # needs sage.rings.number_field
144+
sage: # needs sage.rings.number_field
145+
sage: R.<z> = PolynomialRing(QQbar)
142146
sage: from sage.rings.polynomial.flatten import FlatteningMorphism
143-
sage: f = FlatteningMorphism(R) # needs sage.rings.number_field
144-
sage: f.domain(), f.codomain() # needs sage.rings.number_field
147+
sage: f = FlatteningMorphism(R)
148+
sage: f.domain(), f.codomain()
145149
(Univariate Polynomial Ring in z over Algebraic Field,
146150
Univariate Polynomial Ring in z over Algebraic Field)
147151
@@ -487,9 +491,9 @@ def __init__(self, domain, D):
487491
The following was fixed in :trac:`23811`::
488492
489493
sage: R.<c> = RR[]
490-
sage: P.<z> = AffineSpace(R, 1) # needs sage.modules
491-
sage: H = End(P) # needs sage.modules
492-
sage: f = H([z^2 + c]) # needs sage.modules
494+
sage: P.<z> = AffineSpace(R, 1)
495+
sage: H = End(P)
496+
sage: f = H([z^2 + c])
493497
sage: f.specialization({c:1}) # needs sage.modules
494498
Scheme endomorphism of
495499
Affine Space of dimension 1 over Real Field with 53 bits of precision

src/sage/rings/polynomial/ideal.py

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -75,11 +75,11 @@ def groebner_basis(self, algorithm=None):
7575
7676
sage: R.<x> = QQ[]
7777
sage: I = R.ideal([x^2 - 1, x^3 - 1])
78-
sage: G = I.groebner_basis(); G # needs sage.libs.singular
78+
sage: G = I.groebner_basis(); G
7979
[x - 1]
80-
sage: type(G) # needs sage.libs.singular
80+
sage: type(G)
8181
<class 'sage.rings.polynomial.multi_polynomial_sequence.PolynomialSequence_generic'>
82-
sage: list(G) # needs sage.libs.singular
82+
sage: list(G)
8383
[x - 1]
8484
"""
8585
gb = self.gens_reduced()

src/sage/rings/polynomial/laurent_polynomial.pyx

Lines changed: 15 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -515,13 +515,14 @@ cdef class LaurentPolynomial_univariate(LaurentPolynomial):
515515
516516
You can specify a map on the base ring::
517517
518+
sage: # needs sage.rings.number_field
518519
sage: Zx.<x> = ZZ[]
519-
sage: K.<i> = NumberField(x^2 + 1) # needs sage.rings.number_field
520-
sage: cc = K.hom([-i]) # needs sage.rings.number_field
521-
sage: R.<t> = LaurentPolynomialRing(K) # needs sage.rings.number_field
522-
sage: H = Hom(R, R) # needs sage.rings.number_field
523-
sage: phi = H([t^-2], base_map=cc) # needs sage.rings.number_field
524-
sage: phi(i*t) # needs sage.rings.number_field
520+
sage: K.<i> = NumberField(x^2 + 1)
521+
sage: cc = K.hom([-i])
522+
sage: R.<t> = LaurentPolynomialRing(K)
523+
sage: H = Hom(R, R)
524+
sage: phi = H([t^-2], base_map=cc)
525+
sage: phi(i*t)
525526
-i*t^-2
526527
"""
527528
x = im_gens[0]
@@ -1630,10 +1631,11 @@ cdef class LaurentPolynomial_univariate(LaurentPolynomial):
16301631
16311632
The answer is dependent of the base ring::
16321633
1633-
sage: S.<u> = LaurentPolynomialRing(QQbar) # needs sage.rings.number_field
1634-
sage: (2 + 4*t + 2*t^2).is_square() # needs sage.rings.number_field
1634+
sage: # needs sage.rings.number_field
1635+
sage: S.<u> = LaurentPolynomialRing(QQbar)
1636+
sage: (2 + 4*t + 2*t^2).is_square()
16351637
False
1636-
sage: (2 + 4*u + 2*u^2).is_square() # needs sage.rings.number_field
1638+
sage: (2 + 4*u + 2*u^2).is_square()
16371639
True
16381640
16391641
TESTS::
@@ -1756,12 +1758,13 @@ cdef class LaurentPolynomial_univariate(LaurentPolynomial):
17561758
17571759
Check that :trac:`28187` is fixed::
17581760
1761+
sage: # needs sage.symbolic
17591762
sage: R.<x> = LaurentPolynomialRing(ZZ)
17601763
sage: p = 1/x + 1 + x
1761-
sage: x,y = var("x, y") # needs sage.symbolic
1762-
sage: p._derivative(x) # needs sage.symbolic
1764+
sage: x,y = var("x, y")
1765+
sage: p._derivative(x)
17631766
-x^-2 + 1
1764-
sage: p._derivative(y) # needs sage.symbolic
1767+
sage: p._derivative(y)
17651768
Traceback (most recent call last):
17661769
...
17671770
ValueError: cannot differentiate with respect to y

src/sage/rings/polynomial/multi_polynomial.pyx

Lines changed: 17 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -448,8 +448,9 @@ cdef class MPolynomial(CommutativePolynomial):
448448
449449
TESTS::
450450
451-
sage: R = Qp(7)['x,y,z,t,p']; S = ZZ['x,z,t']['p'] # needs sage.rings.padics
452-
sage: R(S.0) # needs sage.rings.padics
451+
sage: # needs sage.rings.padics
452+
sage: R = Qp(7)['x,y,z,t,p']; S = ZZ['x,z,t']['p']
453+
sage: R(S.0)
453454
p
454455
sage: R = QQ['x,y,z,t,p']; S = ZZ['x']['y,z,t']['p']
455456
sage: z = S.base_ring().gen(1)
@@ -459,8 +460,8 @@ cdef class MPolynomial(CommutativePolynomial):
459460
sage: z = S.base_ring().gen(1); p = S.0; x = S.base_ring().base_ring().gen()
460461
sage: R(z+p)
461462
z + p
462-
sage: R = Qp(7)['x,y,z,p']; S = ZZ['x']['y,z,t']['p'] # shouldn't work, but should throw a better error # needs sage.rings.padics
463-
sage: R(S.0) # needs sage.rings.padics
463+
sage: R = Qp(7)['x,y,z,p']; S = ZZ['x']['y,z,t']['p'] # shouldn't work, but should throw a better error
464+
sage: R(S.0)
464465
p
465466
466467
See :trac:`2601`::
@@ -1554,9 +1555,10 @@ cdef class MPolynomial(CommutativePolynomial):
15541555
15551556
Test polynomials over QQbar (:trac:`25265`)::
15561557
1557-
sage: R.<x,y> = QQbar[] # needs sage.rings.number_field
1558-
sage: f = x^5*y + 3*x^2*y^2 - 2*x + y - 1 # needs sage.rings.number_field
1559-
sage: f.discriminant(y) # needs sage.rings.number_field
1558+
sage: # needs sage.rings.number_field
1559+
sage: R.<x,y> = QQbar[]
1560+
sage: f = x^5*y + 3*x^2*y^2 - 2*x + y - 1
1561+
sage: f.discriminant(y)
15601562
x^10 + 2*x^5 + 24*x^3 + 12*x^2 + 1
15611563
15621564
AUTHOR: Miguel Marco
@@ -1772,10 +1774,11 @@ cdef class MPolynomial(CommutativePolynomial):
17721774
17731775
::
17741776
1775-
sage: R.<x,y> = NumberField(symbolic_expression(x^2+3),'a')['x,y'] # needs sage.rings.number_field sage.symbolic
1776-
sage: f = (1/17)*x^19 + (1/6)*y - (2/3)*x + 1/3; f # needs sage.rings.number_field sage.symbolic
1777+
sage: # needs sage.rings.number_field sage.symbolic
1778+
sage: R.<x,y> = NumberField(symbolic_expression(x^2+3),'a')['x,y']
1779+
sage: f = (1/17)*x^19 + (1/6)*y - (2/3)*x + 1/3; f
17771780
1/17*x^19 - 2/3*x + 1/6*y + 1/3
1778-
sage: f.denominator() # needs sage.rings.number_field sage.symbolic
1781+
sage: f.denominator()
17791782
102
17801783
17811784
Finally, we try to compute the denominator of a polynomial with
@@ -1874,9 +1877,10 @@ cdef class MPolynomial(CommutativePolynomial):
18741877
18751878
::
18761879
1877-
sage: K = NumberField(symbolic_expression('x^3+2'), 'a')['x']['s,t'] # needs sage.rings.number_field sage.symbolic
1878-
sage: f = K.random_element() # needs sage.rings.number_field sage.symbolic
1879-
sage: f.numerator() / f.denominator() == f # needs sage.rings.number_field sage.symbolic
1880+
sage: # needs sage.rings.number_field sage.symbolic
1881+
sage: K = NumberField(symbolic_expression('x^3+2'), 'a')['x']['s,t']
1882+
sage: f = K.random_element()
1883+
sage: f.numerator() / f.denominator() == f
18801884
True
18811885
sage: R = RR['x,y,z']
18821886
sage: f = R.random_element()

src/sage/rings/polynomial/multi_polynomial_element.py

Lines changed: 20 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -94,13 +94,14 @@ def __init__(self, parent, x):
9494
"""
9595
EXAMPLES::
9696
97+
sage: # needs sage.rings.number_field
9798
sage: x = polygen(ZZ, 'x')
98-
sage: K.<cuberoot2> = NumberField(x^3 - 2) # needs sage.rings.number_field
99-
sage: L.<cuberoot3> = K.extension(x^3 - 3) # needs sage.rings.number_field
100-
sage: S.<sqrt2> = L.extension(x^2 - 2) # needs sage.rings.number_field
101-
sage: S # needs sage.rings.number_field
99+
sage: K.<cuberoot2> = NumberField(x^3 - 2)
100+
sage: L.<cuberoot3> = K.extension(x^3 - 3)
101+
sage: S.<sqrt2> = L.extension(x^2 - 2)
102+
sage: S
102103
Number Field in sqrt2 with defining polynomial x^2 - 2 over its base field
103-
sage: P.<x,y,z> = PolynomialRing(S) # indirect doctest # needs sage.rings.number_field
104+
sage: P.<x,y,z> = PolynomialRing(S) # indirect doctest
104105
"""
105106
CommutativeRingElement.__init__(self, parent)
106107
self.__element = x
@@ -797,12 +798,13 @@ def monomial_coefficient(self, mon):
797798
798799
::
799800
801+
sage: # needs sage.rings.number_field
800802
sage: a = polygen(ZZ, 'a')
801-
sage: K.<a> = NumberField(a^2 + a + 1) # needs sage.rings.number_field
802-
sage: P.<x,y> = K[] # needs sage.rings.number_field
803-
sage: f = (a*x - 1) * ((a+1)*y - 1); f # needs sage.rings.number_field
803+
sage: K.<a> = NumberField(a^2 + a + 1)
804+
sage: P.<x,y> = K[]
805+
sage: f = (a*x - 1) * ((a+1)*y - 1); f
804806
-x*y + (-a)*x + (-a - 1)*y + 1
805-
sage: f.monomial_coefficient(x) # needs sage.rings.number_field
807+
sage: f.monomial_coefficient(x)
806808
-a
807809
"""
808810
if parent(mon) is not self.parent():
@@ -1710,18 +1712,20 @@ def lm(self):
17101712
17111713
::
17121714
1713-
sage: R.<x,y,z> = PolynomialRing(CC, 3, order='deglex') # needs sage.rings.real_mpfr
1714-
sage: (x^1*y^2*z^3 + x^3*y^2*z^0).lm() # needs sage.rings.real_mpfr
1715+
sage: # needs sage.rings.real_mpfr
1716+
sage: R.<x,y,z> = PolynomialRing(CC, 3, order='deglex')
1717+
sage: (x^1*y^2*z^3 + x^3*y^2*z^0).lm()
17151718
x*y^2*z^3
1716-
sage: (x^1*y^2*z^4 + x^1*y^1*z^5).lm() # needs sage.rings.real_mpfr
1719+
sage: (x^1*y^2*z^4 + x^1*y^1*z^5).lm()
17171720
x*y^2*z^4
17181721
17191722
::
17201723
1721-
sage: R.<x,y,z> = PolynomialRing(QQbar, 3, order='degrevlex') # needs sage.rings.number_field
1722-
sage: (x^1*y^5*z^2 + x^4*y^1*z^3).lm() # needs sage.rings.number_field
1724+
sage: # needs sage.rings.number_field
1725+
sage: R.<x,y,z> = PolynomialRing(QQbar, 3, order='degrevlex')
1726+
sage: (x^1*y^5*z^2 + x^4*y^1*z^3).lm()
17231727
x*y^5*z^2
1724-
sage: (x^4*y^7*z^1 + x^4*y^2*z^3).lm() # needs sage.rings.number_field
1728+
sage: (x^4*y^7*z^1 + x^4*y^2*z^3).lm()
17251729
x^4*y^7*z
17261730
17271731
TESTS::
@@ -2107,7 +2111,7 @@ def factor(self, proof=None):
21072111
...
21082112
NotImplementedError: ...
21092113
sage: R.base_ring()._factor_multivariate_polynomial = lambda f, **kwargs: f.change_ring(QQ).factor()
2110-
sage: (x*y).factor()
2114+
sage: (x*y).factor() # needs sage.libs.pari
21112115
y * x
21122116
sage: del R.base_ring()._factor_multivariate_polynomial # clean up
21132117

0 commit comments

Comments
 (0)