summarylogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--.SRCINFO4
-rw-r--r--PKGBUILD4
-rw-r--r--sagemath-pari-2.13.patch116
-rw-r--r--sagemath-singular-4.1.2.patch54
4 files changed, 89 insertions, 89 deletions
diff --git a/.SRCINFO b/.SRCINFO
index 4266ebf335bd..3a5a678ffc2e 100644
--- a/.SRCINFO
+++ b/.SRCINFO
@@ -103,9 +103,9 @@ pkgbase = sagemath-git
sha256sums = 4fb46b12b5ee5e5bde87f646dc69a7b8929886be247e2d9a9ae1f12efbe5b580
sha256sums = af922e1f978821a9a1f6c9a56130d71e5011c84a7aee7bf66a591bee658af30b
sha256sums = 7da0dbcda15a327c21dc33853cb8f98cb86a283139f8735e3b20a71d49458a88
- sha256sums = 881186d016a6eb47b919765b9d4e6abc4560fce54e08cf42bd948ba77e16aa85
+ sha256sums = e6ce1829347fa588096cd975c5d607ae8d32d407f0bab2cdadd13e1bfb99494d
sha256sums = 34f06f9776f84f6998b1350555316e0ffea76ed16e149916970f19ef750a467f
- sha256sums = 84875c90268436cb6a740a4e1bffd70b4895458ef9e1ee268a3c4aa0564e893f
+ sha256sums = 58cfc3826d123a6c7293e5db382dc111b9df0ad192dc30e4d1df373d0aff7ec2
pkgname = sagemath-git
optdepends = cython: to compile cython code
diff --git a/PKGBUILD b/PKGBUILD
index 7f38cd117e58..7c3c73260303 100644
--- a/PKGBUILD
+++ b/PKGBUILD
@@ -46,9 +46,9 @@ sha256sums=('SKIP'
'4fb46b12b5ee5e5bde87f646dc69a7b8929886be247e2d9a9ae1f12efbe5b580'
'af922e1f978821a9a1f6c9a56130d71e5011c84a7aee7bf66a591bee658af30b'
'7da0dbcda15a327c21dc33853cb8f98cb86a283139f8735e3b20a71d49458a88'
- '881186d016a6eb47b919765b9d4e6abc4560fce54e08cf42bd948ba77e16aa85'
+ 'e6ce1829347fa588096cd975c5d607ae8d32d407f0bab2cdadd13e1bfb99494d'
'34f06f9776f84f6998b1350555316e0ffea76ed16e149916970f19ef750a467f'
- '84875c90268436cb6a740a4e1bffd70b4895458ef9e1ee268a3c4aa0564e893f')
+ '58cfc3826d123a6c7293e5db382dc111b9df0ad192dc30e4d1df373d0aff7ec2')
pkgver() {
cd sage
diff --git a/sagemath-pari-2.13.patch b/sagemath-pari-2.13.patch
index bf9bccfc41bf..64966b005a36 100644
--- a/sagemath-pari-2.13.patch
+++ b/sagemath-pari-2.13.patch
@@ -1,5 +1,5 @@
diff --git a/src/sage/arith/misc.py b/src/sage/arith/misc.py
-index ba100c4a83..8aa96d8e14 100644
+index 53d9683279..564b99044f 100644
--- a/src/sage/arith/misc.py
+++ b/src/sage/arith/misc.py
@@ -1458,13 +1458,13 @@ def divisors(n):
@@ -341,7 +341,7 @@ index 33aa4d2d46..b506227cff 100644
R = RealField(prec)
C = ComplexField(prec)
diff --git a/src/sage/libs/pari/tests.py b/src/sage/libs/pari/tests.py
-index 415a707fe8..6a3626f308 100644
+index eb1c04f1e6..40329aea82 100644
--- a/src/sage/libs/pari/tests.py
+++ b/src/sage/libs/pari/tests.py
@@ -135,7 +135,7 @@ Some more exotic examples::
@@ -379,7 +379,7 @@ index 415a707fe8..6a3626f308 100644
sage: pari('x+1').conj()
x + 1
-@@ -763,7 +763,7 @@ Transcendental functions::
+@@ -767,7 +767,7 @@ Transcendental functions::
sage: pari(2).besseli(3+i)
1.12539407613913 + 2.08313822670661*I
sage: C.<i> = ComplexField()
@@ -388,7 +388,7 @@ index 415a707fe8..6a3626f308 100644
-0.280775566958244 - 0.486708533223726*I
sage: pari(1.5).cos()
-@@ -818,7 +818,7 @@ Transcendental functions::
+@@ -822,7 +822,7 @@ Transcendental functions::
sage: pari(-1).gamma()
Traceback (most recent call last):
...
@@ -397,7 +397,7 @@ index 415a707fe8..6a3626f308 100644
sage: pari(2).gammah()
1.32934038817914
-@@ -1629,7 +1624,7 @@ General number fields::
+@@ -1633,7 +1633,7 @@ General number fields::
sage: x = QQ['x'].0; nf = pari(x^2 + 2).nfinit()
sage: nf.nfgaloisconj()
@@ -406,7 +406,7 @@ index 415a707fe8..6a3626f308 100644
sage: nf = pari(x^3 + 2).nfinit()
sage: nf.nfgaloisconj()
[x]~
-@@ -1672,7 +1667,7 @@ General number fields::
+@@ -1676,7 +1676,7 @@ General number fields::
[[1, [7605, 4]~, [5610, 5]~, [7913, -6]~; 0, 1, 0, -1; 0, 0, 1, 0; 0, 0, 0, 1], [[19320, 13720; 0, 56], [2, 1; 0, 1], 1, 1]]
sage: pari('x^3 - 17').nfinit()
@@ -415,7 +415,7 @@ index 415a707fe8..6a3626f308 100644
sage: pari('x^2 + 10^100 + 1').nfinit()
[...]
sage: pari('1.0').nfinit()
-@@ -1733,7 +1728,7 @@ General number fields::
+@@ -1737,7 +1737,7 @@ General number fields::
sage: pari(-23).quadhilbert()
x^3 - x^2 + 1
sage: pari(145).quadhilbert()
@@ -424,7 +424,7 @@ index 415a707fe8..6a3626f308 100644
sage: pari(-12).quadhilbert() # Not fundamental
Traceback (most recent call last):
...
-@@ -1758,7 +1753,7 @@ library::
+@@ -1762,7 +1762,7 @@ library::
sage: e = pari([0,0,0,-82,0]).ellinit()
sage: eta1 = e.elleta(precision=100)[0]
sage: eta1.sage()
@@ -434,7 +434,7 @@ index 415a707fe8..6a3626f308 100644
sage: eta1.sage()
3.60546360143265208591582056420772677481026899659802474544
diff --git a/src/sage/matrix/matrix1.pyx b/src/sage/matrix/matrix1.pyx
-index 689195dc85..6bca9e19ca 100644
+index 0455c169fe..4fa3cb9b2d 100644
--- a/src/sage/matrix/matrix1.pyx
+++ b/src/sage/matrix/matrix1.pyx
@@ -87,7 +87,7 @@ cdef class Matrix(Matrix0):
@@ -447,7 +447,7 @@ index 689195dc85..6bca9e19ca 100644
from sage.libs.pari.all import pari
return pari.matrix(self._nrows, self._ncols, self._list())
diff --git a/src/sage/modular/local_comp/liftings.py b/src/sage/modular/local_comp/liftings.py
-index 5d7be71f16..5ed77f1785 100644
+index 91bfd2448d..f9bf800b22 100644
--- a/src/sage/modular/local_comp/liftings.py
+++ b/src/sage/modular/local_comp/liftings.py
@@ -222,9 +222,9 @@ def lift_for_SL(A, N=None):
@@ -492,10 +492,10 @@ index 7a91d353e3..b71fc8aac4 100644
True
"""
diff --git a/src/sage/modular/multiple_zeta.py b/src/sage/modular/multiple_zeta.py
-index 540e29d0e5..9083303db3 100644
+index 4c8718f3be..c195adad4d 100644
--- a/src/sage/modular/multiple_zeta.py
+++ b/src/sage/modular/multiple_zeta.py
-@@ -455,7 +455,7 @@ class MultizetaValues(UniqueRepresentation):
+@@ -457,7 +457,7 @@ class MultizetaValues(UniqueRepresentation):
"""
self.prec = int(prec)
self.max_weight = int(max_weight)
@@ -558,7 +558,7 @@ index 53857d31a0..6557b7f308 100644
return repr(self.vector())
diff --git a/src/sage/modules/fg_pid/fgp_module.py b/src/sage/modules/fg_pid/fgp_module.py
-index b111d7fb32..c518d7479a 100644
+index a5597dfe1d..a002cf5ce3 100644
--- a/src/sage/modules/fg_pid/fgp_module.py
+++ b/src/sage/modules/fg_pid/fgp_module.py
@@ -70,17 +70,17 @@ the technical note has a V that need not be equal to V0, in general. ::
@@ -595,7 +595,7 @@ index b111d7fb32..c518d7479a 100644
sage: x.additive_order()
16
-@@ -143,7 +143,7 @@ You can explicitly coerce elements of the kernel into M0 though. ::
+@@ -144,7 +144,7 @@ You can explicitly coerce elements of the kernel into M0 though. ::
sage: M0(K.0)
(2, 0)
sage: M0(K.1)
@@ -604,7 +604,7 @@ index b111d7fb32..c518d7479a 100644
sage: f(M0(K.0))
(0)
sage: f(M0(K.1))
-@@ -179,7 +179,7 @@ TESTS::
+@@ -180,7 +180,7 @@ TESTS::
sage: Q.linear_combination_of_smith_form_gens([1,3])
(1, 3)
sage: Q(V([1,3,4]))
@@ -613,7 +613,7 @@ index b111d7fb32..c518d7479a 100644
sage: Q(W([1,16,0]))
(0, 0)
sage: V = span([[1/2,1,1],[3/2,2,1],[0,0,1]],QQ)
-@@ -632,7 +632,7 @@ class FGP_Module_class(Module):
+@@ -633,7 +633,7 @@ class FGP_Module_class(Module):
sage: W = V.span([2*V.0+4*V.1, 9*V.0+12*V.1, 4*V.2])
sage: Q = V/W
sage: x = Q(V.0-V.1); x # indirect doctest
@@ -622,7 +622,7 @@ index b111d7fb32..c518d7479a 100644
sage: type(x)
<class 'sage.modules.fg_pid.fgp_module.FGP_Module_class_with_category.element_class'>
sage: x is Q(x)
-@@ -931,9 +931,9 @@ class FGP_Module_class(Module):
+@@ -932,9 +932,9 @@ class FGP_Module_class(Module):
sage: Q = V/W
sage: Q._smith_form()
(
@@ -635,7 +635,7 @@ index b111d7fb32..c518d7479a 100644
)
"""
return self._relative_matrix().smith_form()
-@@ -1026,7 +1026,7 @@ class FGP_Module_class(Module):
+@@ -1027,7 +1027,7 @@ class FGP_Module_class(Module):
sage: Q.smith_form_gens()
((1, 0), (0, 1))
sage: [x.lift() for x in Q.smith_form_gens()]
@@ -644,7 +644,7 @@ index b111d7fb32..c518d7479a 100644
"""
# Get the rightmost transformation in the Smith form
_, _, X = self._smith_form()
-@@ -1067,18 +1067,18 @@ class FGP_Module_class(Module):
+@@ -1068,18 +1068,18 @@ class FGP_Module_class(Module):
[ 0 0 0 1/3 0]
[ 0 0 0 0 2/3]
sage: D.gens_to_smith()
@@ -672,7 +672,7 @@ index b111d7fb32..c518d7479a 100644
The matrix `T` now satisfies a certain congruence::
-@@ -1120,14 +1120,14 @@ class FGP_Module_class(Module):
+@@ -1121,14 +1121,14 @@ class FGP_Module_class(Module):
[ 0 0 0 1/3 0]
[ 0 0 0 0 2/3]
sage: D.smith_to_gens()
@@ -693,7 +693,7 @@ index b111d7fb32..c518d7479a 100644
This matrix satisfies the congruence::
-@@ -1148,7 +1148,7 @@ class FGP_Module_class(Module):
+@@ -1149,7 +1149,7 @@ class FGP_Module_class(Module):
of the user defined generators that is x::
sage: x.vector() * D.smith_to_gens()
@@ -702,7 +702,7 @@ index b111d7fb32..c518d7479a 100644
"""
if self.base_ring() != ZZ:
# it is not
-@@ -1196,7 +1196,7 @@ class FGP_Module_class(Module):
+@@ -1197,7 +1197,7 @@ class FGP_Module_class(Module):
sage: gens = [V(g) for g in gens]
sage: D = FGP_with_gens(V, W, gens)
sage: D.gens()
@@ -711,7 +711,7 @@ index b111d7fb32..c518d7479a 100644
We create some element of D::
-@@ -1209,12 +1209,12 @@ class FGP_Module_class(Module):
+@@ -1210,12 +1210,12 @@ class FGP_Module_class(Module):
sage: v = D.gens_vector(x)
sage: v
@@ -726,7 +726,7 @@ index b111d7fb32..c518d7479a 100644
Let us check::
-@@ -1278,28 +1278,28 @@ class FGP_Module_class(Module):
+@@ -1279,28 +1279,28 @@ class FGP_Module_class(Module):
sage: O.V()
Free module of degree 3 and rank 2 over Integer Ring
User basis matrix:
@@ -767,7 +767,7 @@ index b111d7fb32..c518d7479a 100644
True
"""
try:
-@@ -1407,8 +1407,8 @@ class FGP_Module_class(Module):
+@@ -1408,8 +1408,8 @@ class FGP_Module_class(Module):
sage: O.V()
Free module of degree 3 and rank 2 over Integer Ring
User basis matrix:
@@ -778,7 +778,7 @@ index b111d7fb32..c518d7479a 100644
sage: O.W()
Free module of degree 3 and rank 2 over Integer Ring
Echelon basis matrix:
-@@ -1699,7 +1699,7 @@ class FGP_Module_class(Module):
+@@ -1700,7 +1700,7 @@ class FGP_Module_class(Module):
sage: V = span([[1/2,1,1],[3/2,2,1],[0,0,1]],ZZ); W = V.span([2*V.0+4*V.1, 9*V.0+12*V.1, 4*V.2])
sage: Q = V/W
sage: Q.random_element()
@@ -900,7 +900,7 @@ index 80cf269cc0..9cb22461a0 100644
sage: b.multiplicative_order()
9094947017729282379150390624
diff --git a/src/sage/rings/finite_rings/integer_mod_ring.py b/src/sage/rings/finite_rings/integer_mod_ring.py
-index d5072839b2..315aa4f9be 100644
+index 79ed150464..a10f10d883 100644
--- a/src/sage/rings/finite_rings/integer_mod_ring.py
+++ b/src/sage/rings/finite_rings/integer_mod_ring.py
@@ -627,7 +627,7 @@ class IntegerModRing_generic(quotient_ring.QuotientRing_generic):
@@ -975,10 +975,10 @@ index cd4c2212c3..007a68e4c0 100644
sage: c = OK(a)
sage: b = k(a); b
diff --git a/src/sage/rings/integer.pyx b/src/sage/rings/integer.pyx
-index 4c835d0697..650669e1e1 100644
+index 77a3a18913..421a90e10e 100644
--- a/src/sage/rings/integer.pyx
+++ b/src/sage/rings/integer.pyx
-@@ -5451,7 +5451,7 @@ cdef class Integer(sage.structure.element.EuclideanDomainElement):
+@@ -5474,7 +5474,7 @@ cdef class Integer(sage.structure.element.EuclideanDomainElement):
sage: 3._bnfisnorm(QuadraticField(-1, 'i'))
(1, 3)
sage: 7._bnfisnorm(CyclotomicField(7))
@@ -1097,10 +1097,10 @@ index 46d0ca8c9d..1ad6d583a8 100644
if isinstance(args[0], FractionalIdealClass):
return self.element_class(self, None, self._number_field.ideal(args[0].ideal()))
diff --git a/src/sage/rings/number_field/number_field.py b/src/sage/rings/number_field/number_field.py
-index 9bb756cc82..0b7cc29d83 100644
+index 9a5bc410ea..4555eb1d24 100644
--- a/src/sage/rings/number_field/number_field.py
+++ b/src/sage/rings/number_field/number_field.py
-@@ -3422,7 +3422,7 @@ class NumberField_generic(WithEqualityById, number_field_base.NumberField):
+@@ -3440,7 +3440,7 @@ class NumberField_generic(WithEqualityById, number_field_base.NumberField):
sage: L.<b> = K.extension(x^2 - 3, x^2 + 1)
sage: M.<c> = L.extension(x^2 + 1)
sage: L.ideal(K.ideal(2, a))
@@ -1109,7 +1109,7 @@ index 9bb756cc82..0b7cc29d83 100644
sage: M.ideal(K.ideal(2, a)) == M.ideal(a*(b - c)/2)
True
-@@ -4590,7 +4576,7 @@ class NumberField_generic(WithEqualityById, number_field_base.NumberField):
+@@ -4608,7 +4608,7 @@ class NumberField_generic(WithEqualityById, number_field_base.NumberField):
1/13*a^2 + 7/13*a - 332/13,
-1/13*a^2 + 6/13*a + 345/13,
-1,
@@ -1118,7 +1118,7 @@ index 9bb756cc82..0b7cc29d83 100644
sage: units[5] in (1/13*a^2 - 19/13*a - 7/13, 1/13*a^2 + 20/13*a - 7/13)
True
sage: len(units) == 6
-@@ -4632,8 +4618,8 @@ class NumberField_generic(WithEqualityById, number_field_base.NumberField):
+@@ -4650,8 +4650,8 @@ class NumberField_generic(WithEqualityById, number_field_base.NumberField):
sage: K.<a> = QuadraticField(-105)
sage: K._S_class_group_quotient_matrix((K.ideal(11, a + 4),))
[0 0]
@@ -1128,7 +1128,7 @@ index 9bb756cc82..0b7cc29d83 100644
"""
from sage.matrix.constructor import matrix
S_clgp_gens = self._S_class_group_and_units(S)[1]
-@@ -4754,7 +4740,7 @@ class NumberField_generic(WithEqualityById, number_field_base.NumberField):
+@@ -4772,7 +4772,7 @@ class NumberField_generic(WithEqualityById, number_field_base.NumberField):
1/13*a^2 + 7/13*a - 332/13,
-1/13*a^2 + 6/13*a + 345/13,
-1,
@@ -1137,7 +1137,7 @@ index 9bb756cc82..0b7cc29d83 100644
sage: gens[5] in (1/13*a^2 - 19/13*a - 7/13, 1/13*a^2 + 20/13*a - 7/13)
True
sage: gens[6] in (-1/13*a^2 + 45/13*a - 97/13, 1/13*a^2 - 45/13*a + 97/13)
-@@ -5930,28 +5930,37 @@ class NumberField_generic(WithEqualityById, number_field_base.NumberField):
+@@ -5948,28 +5948,37 @@ class NumberField_generic(WithEqualityById, number_field_base.NumberField):
try:
return self._integral_basis_dict[v]
except (AttributeError, KeyError):
@@ -1195,7 +1195,7 @@ index 9bb756cc82..0b7cc29d83 100644
def reduced_basis(self, prec=None):
r"""
-@@ -6637,7 +6646,8 @@ class NumberField_generic(WithEqualityById, number_field_base.NumberField):
+@@ -6655,7 +6664,8 @@ class NumberField_generic(WithEqualityById, number_field_base.NumberField):
"""
Return generators for the unit group modulo torsion.
@@ -1205,7 +1205,7 @@ index 9bb756cc82..0b7cc29d83 100644
INPUT:
-@@ -6659,7 +6645,7 @@ class NumberField_generic(WithEqualityById, number_field_base.NumberField):
+@@ -6677,7 +6687,7 @@ class NumberField_generic(WithEqualityById, number_field_base.NumberField):
sage: A = x^4 - 10*x^3 + 20*5*x^2 - 15*5^2*x + 11*5^3
sage: K = NumberField(A, 'a')
sage: K.units()
@@ -1214,7 +1214,7 @@ index 9bb756cc82..0b7cc29d83 100644
For big number fields, provably computing the unit group can
take a very long time. In this case, one can ask for the
-@@ -6670,14 +6656,14 @@ class NumberField_generic(WithEqualityById, number_field_base.NumberField):
+@@ -6688,14 +6698,14 @@ class NumberField_generic(WithEqualityById, number_field_base.NumberField):
sage: K.units(proof=True) # takes forever, not tested
...
sage: K.units(proof=False) # result not independently verified
@@ -1235,7 +1235,7 @@ index 9bb756cc82..0b7cc29d83 100644
TESTS:
-@@ -6686,7 +6672,7 @@ class NumberField_generic(WithEqualityById, number_field_base.NumberField):
+@@ -6704,7 +6714,7 @@ class NumberField_generic(WithEqualityById, number_field_base.NumberField):
sage: K.<a> = NumberField(1/2*x^2 - 1/6)
sage: K.units()
@@ -1244,7 +1244,7 @@ index 9bb756cc82..0b7cc29d83 100644
"""
proof = proof_flag(proof)
-@@ -6704,7 +6714,7 @@ class NumberField_generic(WithEqualityById, number_field_base.NumberField):
+@@ -6722,7 +6732,7 @@ class NumberField_generic(WithEqualityById, number_field_base.NumberField):
pass
# get PARI to compute the units
@@ -1253,7 +1253,7 @@ index 9bb756cc82..0b7cc29d83 100644
B = tuple(self(b, check=False) for b in B)
if proof:
# cache the provable results and return them
-@@ -6719,7 +6729,7 @@ class NumberField_generic(WithEqualityById, number_field_base.NumberField):
+@@ -6737,7 +6747,7 @@ class NumberField_generic(WithEqualityById, number_field_base.NumberField):
"""
Return the unit group (including torsion) of this number field.
@@ -1262,7 +1262,7 @@ index 9bb756cc82..0b7cc29d83 100644
INPUT:
-@@ -6765,7 +6751,7 @@ class NumberField_generic(WithEqualityById, number_field_base.NumberField):
+@@ -6783,7 +6793,7 @@ class NumberField_generic(WithEqualityById, number_field_base.NumberField):
sage: U.gens()
(u0, u1, u2, u3, u4, u5, u6, u7, u8)
sage: U.gens_values() # result not independently verified
@@ -1271,7 +1271,7 @@ index 9bb756cc82..0b7cc29d83 100644
"""
proof = proof_flag(proof)
-@@ -6953,7 +6939,7 @@ class NumberField_generic(WithEqualityById, number_field_base.NumberField):
+@@ -6971,7 +6981,7 @@ class NumberField_generic(WithEqualityById, number_field_base.NumberField):
sage: solutions, bound = K.S_unit_solutions(S, prec=100, include_bound=True)
sage: bound
@@ -1280,7 +1280,7 @@ index 9bb756cc82..0b7cc29d83 100644
"""
from .S_unit_solver import solve_S_unit_equation
return solve_S_unit_equation(self, S, prec, include_exponents, include_bound, proof)
-@@ -10792,9 +10802,9 @@ class NumberField_cyclotomic(NumberField_absolute):
+@@ -10810,9 +10820,9 @@ class NumberField_cyclotomic(NumberField_absolute):
EXAMPLES::
sage: k5.<z> = CyclotomicField(5)
@@ -1292,7 +1292,7 @@ index 9bb756cc82..0b7cc29d83 100644
sage: z^7 + 3
z^2 + 3
sage: k5(w) # indirect doctest
-@@ -10805,7 +10815,7 @@ class NumberField_cyclotomic(NumberField_absolute):
+@@ -10823,7 +10833,7 @@ class NumberField_cyclotomic(NumberField_absolute):
sage: F = CyclotomicField(8)
sage: z = F.gen()
@@ -1301,7 +1301,7 @@ index 9bb756cc82..0b7cc29d83 100644
E(8)-E(8)^3
sage: F(a)
-zeta8^3 + zeta8
-@@ -10819,6 +10829,7 @@ class NumberField_cyclotomic(NumberField_absolute):
+@@ -10837,6 +10847,7 @@ class NumberField_cyclotomic(NumberField_absolute):
It also works with the old pexpect interface to GAP::
@@ -1310,7 +1310,7 @@ index 9bb756cc82..0b7cc29d83 100644
[ [ E(4), 1 ], [ 0, 1+E(8)-E(8)^3 ] ]
sage: b[1,2]
diff --git a/src/sage/rings/number_field/number_field_element.pyx b/src/sage/rings/number_field/number_field_element.pyx
-index 811edde5f0..80ac1604da 100644
+index 0c2499bfee..88bfc6d6d8 100644
--- a/src/sage/rings/number_field/number_field_element.pyx
+++ b/src/sage/rings/number_field/number_field_element.pyx
@@ -1629,7 +1629,7 @@ cdef class NumberFieldElement(FieldElement):
@@ -1419,7 +1419,7 @@ index c8760280d1..6b72eff4a0 100644
sage: K.subfields(8, 'w')
[
diff --git a/src/sage/rings/number_field/order.py b/src/sage/rings/number_field/order.py
-index 82e2cd2d07..f15fe4ad17 100644
+index 82a9da5cdb..1e818c94b8 100644
--- a/src/sage/rings/number_field/order.py
+++ b/src/sage/rings/number_field/order.py
@@ -2181,7 +2181,7 @@ def EisensteinIntegers(names="omega"):
@@ -1432,7 +1432,7 @@ index 82e2cd2d07..f15fe4ad17 100644
-0.500000000000000 + 0.866025403784439*I
sage: omega.minpoly()
diff --git a/src/sage/rings/number_field/unit_group.py b/src/sage/rings/number_field/unit_group.py
-index 5c94f7407d..47a2755e36 100644
+index 5c94f7407d..2a3c617ca3 100644
--- a/src/sage/rings/number_field/unit_group.py
+++ b/src/sage/rings/number_field/unit_group.py
@@ -15,12 +15,12 @@ The first generator is a primitive root of unity in the field::
@@ -1618,7 +1618,7 @@ index 5c94f7407d..47a2755e36 100644
def _element_constructor_(self, u):
"""
-@@ -375,7 +375,7 @@ class UnitGroup(AbelianGroupWithValues_class):
+@@ -375,7 +372,7 @@ class UnitGroup(AbelianGroupWithValues_class):
sage: UK.gens()
(u0, u1)
sage: UK.gens_values()
@@ -1650,7 +1650,7 @@ index 5c94f7407d..47a2755e36 100644
return self.element_class(self, m)
-@@ -527,9 +527,9 @@ class UnitGroup(AbelianGroupWithValues_class):
+@@ -527,9 +523,9 @@ class UnitGroup(AbelianGroupWithValues_class):
sage: U.zeta(2, all=True)
[-1]
sage: U.zeta(3)
@@ -1662,7 +1662,7 @@ index 5c94f7407d..47a2755e36 100644
sage: U.zeta(4)
Traceback (most recent call last):
...
-@@ -645,7 +645,7 @@ class UnitGroup(AbelianGroupWithValues_class):
+@@ -645,7 +641,7 @@ class UnitGroup(AbelianGroupWithValues_class):
sage: SUK = UnitGroup(K,S=2)
sage: v = (3,1,4,1,5,9,2)
sage: u = SUK.exp(v); u
@@ -1671,7 +1671,7 @@ index 5c94f7407d..47a2755e36 100644
sage: SUK.log(u)
(3, 1, 4, 1, 5, 9, 2)
sage: SUK.log(u) == v
-@@ -692,7 +692,7 @@ class UnitGroup(AbelianGroupWithValues_class):
+@@ -692,7 +688,7 @@ class UnitGroup(AbelianGroupWithValues_class):
sage: SUK = UnitGroup(K,S=2)
sage: v = (3,1,4,1,5,9,2)
sage: u = SUK.exp(v); u
@@ -1694,7 +1694,7 @@ index 20f1574e90..bf4b831a75 100644
return sum(self(x[i]) * v ** i for i in range(x.poldegree() + 1))
diff --git a/src/sage/rings/polynomial/polynomial_element.pyx b/src/sage/rings/polynomial/polynomial_element.pyx
-index d562a46088..761d22c785 100644
+index b7f3058ce7..4615107773 100644
--- a/src/sage/rings/polynomial/polynomial_element.pyx
+++ b/src/sage/rings/polynomial/polynomial_element.pyx
@@ -7550,7 +7550,7 @@ cdef class Polynomial(CommutativeAlgebraElement):
@@ -1707,7 +1707,7 @@ index d562a46088..761d22c785 100644
[(-2.8510609648967059?e-452, 1)]
sage: p.roots(ring=QQbar)
diff --git a/src/sage/rings/polynomial/polynomial_quotient_ring.py b/src/sage/rings/polynomial/polynomial_quotient_ring.py
-index 66af8957b9..8d6dfe1e6e 100644
+index cd7b05ab0d..ec340c0ae9 100644
--- a/src/sage/rings/polynomial/polynomial_quotient_ring.py
+++ b/src/sage/rings/polynomial/polynomial_quotient_ring.py
@@ -1306,7 +1306,16 @@ class PolynomialQuotientRing_generic(CommutativeRing):
@@ -1824,10 +1824,10 @@ index e1111c1c55..41a9c67214 100644
verbose = int(verbose)
if known_points is None:
diff --git a/src/sage/schemes/elliptic_curves/ell_rational_field.py b/src/sage/schemes/elliptic_curves/ell_rational_field.py
-index 61074f21b9..9a19def280 100644
+index 3631a12f1d..a0166490da 100644
--- a/src/sage/schemes/elliptic_curves/ell_rational_field.py
+++ b/src/sage/schemes/elliptic_curves/ell_rational_field.py
-@@ -5403,9 +5403,9 @@ class EllipticCurve_rational_field(EllipticCurve_number_field):
+@@ -5408,9 +5408,9 @@ class EllipticCurve_rational_field(EllipticCurve_number_field):
sage: E = EllipticCurve('37a1')
sage: E.eval_modular_form([1.5+I,2.0+I,2.5+I],100) # abs tol 1e-20
@@ -1838,7 +1838,7 @@ index 61074f21b9..9a19def280 100644
+ 0.00186044853403710837 + 3.71914507780688601e-22*I,
+ -0.00187439785481520858 - 6.39417173217386647e-23*I]
- sage: E.eval_modular_form(2.1+I, 100) # abs tol 1e-20
+ sage: E.eval_modular_form(2.1+I, 100) # abs tol 1e-16
[0.00150864362757267079 + 0.00109100341113449845*I]
diff --git a/src/sage/schemes/elliptic_curves/isogeny_small_degree.py b/src/sage/schemes/elliptic_curves/isogeny_small_degree.py
index 7178da3685..ea0a7e88bc 100644
diff --git a/sagemath-singular-4.1.2.patch b/sagemath-singular-4.1.2.patch
index c42b2f4b9956..85e5411c6cae 100644
--- a/sagemath-singular-4.1.2.patch
+++ b/sagemath-singular-4.1.2.patch
@@ -1,5 +1,5 @@
diff --git a/src/doc/en/constructions/algebraic_geometry.rst b/src/doc/en/constructions/algebraic_geometry.rst
-index a312548..d1c9c95 100644
+index 3933bf0839..76b173d80a 100644
--- a/src/doc/en/constructions/algebraic_geometry.rst
+++ b/src/doc/en/constructions/algebraic_geometry.rst
@@ -139,7 +139,7 @@ Other methods
@@ -10,8 +10,8 @@ index a312548..d1c9c95 100644
+ sage: I = singular.ideal('x^4+x', 'y^4+y')
sage: L = singular.closed_points(I)
sage: # Here you have all the points :
- sage: print(L)
-@@ -325,7 +325,7 @@ Singular itself to help an understanding of how the wrapper works.
+ sage: L # random
+@@ -329,7 +329,7 @@ Singular itself to help an understanding of how the wrapper works.
sage: X = Curve(f); pts = X.rational_points()
sage: D = X.divisor([ (3, pts[0]), (-1,pts[1]), (10, pts[5]) ])
sage: X.riemann_roch_basis(D)
@@ -21,7 +21,7 @@ index a312548..d1c9c95 100644
- Using Singular's ``BrillNoether`` command (for details see the section
Brill-Noether in the Singular online documentation
diff --git a/src/sage/algebras/free_algebra.py b/src/sage/algebras/free_algebra.py
-index 7391dd9..7234f91 100644
+index 7391dd9812..7234f91456 100644
--- a/src/sage/algebras/free_algebra.py
+++ b/src/sage/algebras/free_algebra.py
@@ -39,7 +39,15 @@ two-sided ideals, and thus provide ideal containment tests::
@@ -69,7 +69,7 @@ index 7391dd9..7234f91 100644
newname = 'x'
while newname in varnames:
diff --git a/src/sage/algebras/letterplace/free_algebra_element_letterplace.pyx b/src/sage/algebras/letterplace/free_algebra_element_letterplace.pyx
-index ad863ea..d6127c9 100644
+index e7fed21ada..e9c1c9d908 100644
--- a/src/sage/algebras/letterplace/free_algebra_element_letterplace.pyx
+++ b/src/sage/algebras/letterplace/free_algebra_element_letterplace.pyx
@@ -17,6 +17,7 @@ AUTHOR:
@@ -127,7 +127,7 @@ index ad863ea..d6127c9 100644
return FreeAlgebraElement_letterplace(A, p, check=False)
diff --git a/src/sage/algebras/letterplace/free_algebra_letterplace.pxd b/src/sage/algebras/letterplace/free_algebra_letterplace.pxd
-index 7e5f2bb..d1d162c 100644
+index 7e5f2bbe97..d1d162c3b4 100644
--- a/src/sage/algebras/letterplace/free_algebra_letterplace.pxd
+++ b/src/sage/algebras/letterplace/free_algebra_letterplace.pxd
@@ -13,8 +13,15 @@ from sage.rings.ring cimport Algebra
@@ -147,7 +147,7 @@ index 7e5f2bb..d1d162c 100644
cdef MPolynomialRing_libsingular _commutative_ring
cdef MPolynomialRing_libsingular _current_ring
diff --git a/src/sage/algebras/letterplace/free_algebra_letterplace.pyx b/src/sage/algebras/letterplace/free_algebra_letterplace.pyx
-index a9d09ad..714284e 100644
+index 39cfa4dfed..b520c4cab8 100644
--- a/src/sage/algebras/letterplace/free_algebra_letterplace.pyx
+++ b/src/sage/algebras/letterplace/free_algebra_letterplace.pyx
@@ -37,7 +37,15 @@ The preceding containment test is based on the computation of Groebner
@@ -200,7 +200,7 @@ index a9d09ad..714284e 100644
-singular_system=singular_function("system")
+freeAlgebra = singular_function("freeAlgebra")
- # unfortunately we can not set Singular attributes for MPolynomialRing_libsingular
+ # unfortunately we cannot set Singular attributes for MPolynomialRing_libsingular
# Hence, we must constantly work around Letterplace's sanity checks,
@@ -242,7 +257,7 @@ cdef class FreeAlgebra_letterplace(Algebra):
sage: F.<a,b,c> = FreeAlgebra(K, implementation='letterplace')
@@ -222,7 +222,7 @@ index a9d09ad..714284e 100644
raise TypeError("The generator degrees must be given by a list or tuple of %d positive integers" % (self.__ngens-1))
self._degrees = tuple([int(i) for i in degrees])
self.set_degbound(max(self._degrees))
-@@ -666,7 +683,7 @@ cdef class FreeAlgebra_letterplace(Algebra):
+@@ -662,7 +679,7 @@ cdef class FreeAlgebra_letterplace(Algebra):
Sage, since it does the reductions in a different order
compared to Singular. Therefore, we call the original Singular
reduction method, and prevent a warning message by asserting
@@ -231,7 +231,7 @@ index a9d09ad..714284e 100644
sage: from sage.libs.singular.function import singular_function
sage: poly_reduce = singular_function("NF")
-@@ -682,8 +699,10 @@ cdef class FreeAlgebra_letterplace(Algebra):
+@@ -678,8 +695,10 @@ cdef class FreeAlgebra_letterplace(Algebra):
ngens = self.__ngens
degbound = self._degbound
cdef list G = [C(x._poly) for x in g]
@@ -243,7 +243,7 @@ index a9d09ad..714284e 100644
return C.ideal(out)
###########################
-@@ -879,3 +898,28 @@ cdef class FreeAlgebra_letterplace(Algebra):
+@@ -875,3 +894,28 @@ cdef class FreeAlgebra_letterplace(Algebra):
PNames[P.ngens(): len(PNames): P.ngens()+1] = list(Names[self.ngens(): len(Names): self.ngens()+1])[:P.degbound()]
x = Ppoly.hom([Gens[Names.index(asdf)] for asdf in PNames])(x.letterplace_polynomial())
return FreeAlgebraElement_letterplace(self,self._current_ring(x))
@@ -273,7 +273,7 @@ index a9d09ad..714284e 100644
+ """
+ singular_ring_delete(self._lp_ring)
diff --git a/src/sage/algebras/letterplace/letterplace_ideal.pyx b/src/sage/algebras/letterplace/letterplace_ideal.pyx
-index d7214d1..5b8cf48 100644
+index f1430ee77c..c16803280b 100644
--- a/src/sage/algebras/letterplace/letterplace_ideal.pyx
+++ b/src/sage/algebras/letterplace/letterplace_ideal.pyx
@@ -18,7 +18,11 @@ One can compute Groebner bases out to a finite degree, can compute normal
@@ -391,7 +391,7 @@ index d7214d1..5b8cf48 100644
Since the commutators of the generators are contained in the ideal,
we can verify the above result by a computation in a polynomial ring
-@@ -276,9 +303,32 @@ class LetterplaceIdeal(Ideal_nc):
+@@ -275,9 +302,32 @@ class LetterplaceIdeal(Ideal_nc):
libsingular_options['redSB'] = True
A.set_degbound(degbound)
P = A._current_ring
@@ -428,7 +428,7 @@ index d7214d1..5b8cf48 100644
libsingular_options['redSB'] = bck[1]
self.__GB = A.ideal(out,side='twosided',coerce=False)
diff --git a/src/sage/combinat/root_system/hecke_algebra_representation.py b/src/sage/combinat/root_system/hecke_algebra_representation.py
-index 51f4113..ba42ed1 100644
+index 51f4113706..ba42ed1524 100644
--- a/src/sage/combinat/root_system/hecke_algebra_representation.py
+++ b/src/sage/combinat/root_system/hecke_algebra_representation.py
@@ -746,7 +746,7 @@ class HeckeAlgebraRepresentation(WithEqualityById, SageObject):
@@ -441,7 +441,7 @@ index 51f4113..ba42ed1 100644
(q2/(-q1+q2))*2121 + ((-q2)/(-q1+q2))*121 - 212 + 12,
-2121 + 121]
diff --git a/src/sage/combinat/root_system/non_symmetric_macdonald_polynomials.py b/src/sage/combinat/root_system/non_symmetric_macdonald_polynomials.py
-index 3537772..ee8ddec 100644
+index 35377724c9..ee8ddec7dd 100644
--- a/src/sage/combinat/root_system/non_symmetric_macdonald_polynomials.py
+++ b/src/sage/combinat/root_system/non_symmetric_macdonald_polynomials.py
@@ -555,8 +555,7 @@ class NonSymmetricMacdonaldPolynomials(CherednikOperatorsEigenvectors):
@@ -489,7 +489,7 @@ index 3537772..ee8ddec 100644
....: for weight in IntegerVectors(d,3).map(list).map(L0):
....: eigenvalues = E.eigenvalues(E[L0(weight)])
diff --git a/src/sage/combinat/sf/macdonald.py b/src/sage/combinat/sf/macdonald.py
-index e664e21..cc525b4 100644
+index e664e21b5a..cc525b4d7e 100644
--- a/src/sage/combinat/sf/macdonald.py
+++ b/src/sage/combinat/sf/macdonald.py
@@ -483,7 +483,7 @@ class Macdonald(UniqueRepresentation):
@@ -511,7 +511,7 @@ index e664e21..cc525b4 100644
return self( self._s(left)*self._s(right) )
diff --git a/src/sage/interfaces/singular.py b/src/sage/interfaces/singular.py
-index 88a33b0..a7cf5ea 100644
+index e0faf1409e..5c02e8f0fb 100644
--- a/src/sage/interfaces/singular.py
+++ b/src/sage/interfaces/singular.py
@@ -191,13 +191,21 @@ The 1x1 and 2x2 minors::
@@ -539,7 +539,7 @@ index 88a33b0..a7cf5ea 100644
::
diff --git a/src/sage/libs/singular/function.pyx b/src/sage/libs/singular/function.pyx
-index 0fea70a..26c74d0 100644
+index 0fea70ad25..26c74d0d7f 100644
--- a/src/sage/libs/singular/function.pyx
+++ b/src/sage/libs/singular/function.pyx
@@ -1257,7 +1257,7 @@ cdef class SingularFunction(SageObject):
@@ -582,7 +582,7 @@ index 0fea70a..26c74d0 100644
The Singular function ``list`` can be called with any number of
arguments::
diff --git a/src/sage/rings/asymptotic/asymptotics_multivariate_generating_functions.py b/src/sage/rings/asymptotic/asymptotics_multivariate_generating_functions.py
-index 8b9367e..ef04d4f 100644
+index 8b9367ea1a..ef04d4f2b0 100644
--- a/src/sage/rings/asymptotic/asymptotics_multivariate_generating_functions.py
+++ b/src/sage/rings/asymptotic/asymptotics_multivariate_generating_functions.py
@@ -1579,7 +1579,7 @@ class FractionWithFactoredDenominator(RingElement):
@@ -604,7 +604,7 @@ index 8b9367e..ef04d4f 100644
sage: F1 = decomp[1]
sage: p = {x: 1, y: 1, z: 1}
diff --git a/src/sage/rings/polynomial/multi_polynomial_element.py b/src/sage/rings/polynomial/multi_polynomial_element.py
-index d86833f..3742439 100644
+index 72e25ebd02..49b4298bc0 100644
--- a/src/sage/rings/polynomial/multi_polynomial_element.py
+++ b/src/sage/rings/polynomial/multi_polynomial_element.py
@@ -2231,7 +2231,7 @@ def degree_lowest_rational_function(r, x):
@@ -617,7 +617,7 @@ index d86833f..3742439 100644
-1
sage: degree_lowest_rational_function(r,b)
diff --git a/src/sage/rings/polynomial/multi_polynomial_ideal.py b/src/sage/rings/polynomial/multi_polynomial_ideal.py
-index f025b3a..94e130d 100644
+index e45a47f4d9..2a6d9fc93a 100644
--- a/src/sage/rings/polynomial/multi_polynomial_ideal.py
+++ b/src/sage/rings/polynomial/multi_polynomial_ideal.py
@@ -154,7 +154,7 @@ when the system has no solutions over the rationals.
@@ -640,7 +640,7 @@ index f025b3a..94e130d 100644
The ideals must share the same ring::
-@@ -4008,7 +4008,7 @@ class MPolynomialIdeal( MPolynomialIdeal_singular_repr, \
+@@ -4012,7 +4012,7 @@ class MPolynomialIdeal( MPolynomialIdeal_singular_repr, \
sage: J.groebner_basis.set_cache(gb)
sage: ideal(J.transformed_basis()).change_ring(P).interreduced_basis() # testing trac 21884
@@ -649,7 +649,7 @@ index f025b3a..94e130d 100644
Giac's gbasis over `\QQ` can benefit from a probabilistic lifting and
multi threaded operations::
-@@ -4111,9 +4111,9 @@ class MPolynomialIdeal( MPolynomialIdeal_singular_repr, \
+@@ -4115,9 +4115,9 @@ class MPolynomialIdeal( MPolynomialIdeal_singular_repr, \
sage: P.<a,b,c> = PolynomialRing(ZZ,3)
sage: I = P * (a + 2*b + 2*c - 1, a^2 - a + 2*b^2 + 2*c^2, 2*a*b + 2*b*c - b)
sage: I.groebner_basis()
@@ -663,7 +663,7 @@ index f025b3a..94e130d 100644
10*b*c + 12*c^2 - b - 4*c,
a + 2*b + 2*c - 1]
diff --git a/src/sage/rings/polynomial/multi_polynomial_libsingular.pyx b/src/sage/rings/polynomial/multi_polynomial_libsingular.pyx
-index 1758424..553d22d 100644
+index 836afdcdcd..4129c2c8fd 100644
--- a/src/sage/rings/polynomial/multi_polynomial_libsingular.pyx
+++ b/src/sage/rings/polynomial/multi_polynomial_libsingular.pyx
@@ -1349,7 +1349,7 @@ cdef class MPolynomialRing_libsingular(MPolynomialRing_base):
@@ -676,7 +676,7 @@ index 1758424..553d22d 100644
// block 1 : ordering dp
// : names x y
diff --git a/src/sage/rings/polynomial/plural.pyx b/src/sage/rings/polynomial/plural.pyx
-index c2792ae..aa2ef59 100644
+index c2792aec88..aa2ef59e79 100644
--- a/src/sage/rings/polynomial/plural.pyx
+++ b/src/sage/rings/polynomial/plural.pyx
@@ -390,28 +390,30 @@ cdef class NCPolynomialRing_plural(Ring):
@@ -732,7 +732,7 @@ index c2792ae..aa2ef59 100644
#MPolynomialRing_generic.__init__(self, base_ring, n, names, order)
diff --git a/src/sage/rings/polynomial/polynomial_singular_interface.py b/src/sage/rings/polynomial/polynomial_singular_interface.py
-index 74b8b82..beee5ad 100644
+index 37f131b585..d9c33d9c2b 100644
--- a/src/sage/rings/polynomial/polynomial_singular_interface.py
+++ b/src/sage/rings/polynomial/polynomial_singular_interface.py
@@ -165,7 +165,7 @@ class PolynomialRing_singular_repr:
@@ -745,7 +745,7 @@ index 74b8b82..beee5ad 100644
// block 1 : ordering dp
// : names x y
diff --git a/src/sage/schemes/curves/projective_curve.py b/src/sage/schemes/curves/projective_curve.py
-index 1091c29..4f5936e 100644
+index 1091c29c20..4f5936edb8 100644
--- a/src/sage/schemes/curves/projective_curve.py
+++ b/src/sage/schemes/curves/projective_curve.py
@@ -2001,7 +2001,7 @@ class ProjectivePlaneCurve_finite_field(ProjectivePlaneCurve_field):