Skip to content

Commit

Permalink
Trac #33160: update Singular to 4.3.1
Browse files Browse the repository at this point in the history
The previous update was on #32907

See https://www.singular.uni-kl.de/Manual/4-3-0/sing_2998.htm -
in particular,  Flint 2.8 is supported.

This ticket also serves as the new target ticket for Singular's ci-sage
after Singular/Singular#1131

URL: https://trac.sagemath.org/33160
Reported by: dimpase
Ticket author(s): Matthias Koeppe, Michael Orlitzky, Dima Pasechnik
Reviewer(s): Dima Pasechnik, Matthias Koeppe
  • Loading branch information
Release Manager committed Jul 24, 2022
2 parents 4cc4817 + 9cb5807 commit 79ed9e5
Show file tree
Hide file tree
Showing 5 changed files with 24 additions and 30 deletions.
8 changes: 4 additions & 4 deletions build/pkgs/singular/checksums.ini
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
tarball=singular-VERSION.tar.gz
sha1=f257a0ef23cedb2c8f9514bbc5f292ca3660a244
md5=8b9142f42cb73aede3940ef3c5f9586d
cksum=2019987428
upstream_url=ftp://jim.mathematik.uni-kl.de/pub/Math/Singular/SOURCES/4-2-1/singular-VERSION.tar.gz
sha1=6c2b622d3681e2de3d58d30c654d43d3e32b720c
md5=abb1e37c794472e7760655358ab66054
cksum=17455733
upstream_url=ftp://jim.mathematik.uni-kl.de/pub/Math/Singular/SOURCES/4-3-1/singular-VERSION.tar.gz
2 changes: 1 addition & 1 deletion build/pkgs/singular/package-version.txt
Original file line number Diff line number Diff line change
@@ -1 +1 @@
4.2.1p3
4.3.1p1
22 changes: 0 additions & 22 deletions build/pkgs/singular/patches/1128.patch

This file was deleted.

8 changes: 5 additions & 3 deletions src/sage/rings/polynomial/hilbert.pyx
Original file line number Diff line number Diff line change
Expand Up @@ -576,11 +576,13 @@ def hilbert_poincare_series(I, grading=None):
sage: hilbert_poincare_series(J).denominator().factor()
(t - 1)^14
This example exceeded the capabilities of Singular before version 4.2.1p2::
This example exceeded the capabilities of Singular before version 4.2.1p2.
In Singular 4.3.1, it works correctly on 64-bit, but on 32-bit, it prints overflow warnings
and omits some terms.
sage: J.hilbert_numerator(algorithm='singular')
120*t^33 - 3465*t^32 + 48180*t^31 - 429374*t^30 + 2753520*t^29 - 13522410*t^28 + 52832780*t^27 - 168384150*t^26 + 445188744*t^25 - 987193350*t^24 + 1847488500*t^23 + 1372406746*t^22 - 403422496*t^21 - 8403314*t^20 - 471656596*t^19 + 1806623746*t^18 + 752776200*t^17 + 752776200*t^16 - 1580830020*t^15 + 1673936550*t^14 - 1294246800*t^13 + 786893250*t^12 - 382391100*t^11 + 146679390*t^10 - 42299400*t^9 + 7837830*t^8 - 172260*t^7 - 468930*t^6 + 183744*t^5 - 39270*t^4 + 5060*t^3 - 330*t^2 + 1
120*t^33 - 3465*t^32 + 48180*t^31 - 429374*t^30 + 2753520*t^29 - 13522410*t^28 + 52832780*t^27 - 168384150*t^26 + 445188744*t^25 - 987193350*t^24 + 1847488500*t^23 + 1372406746*t^22 - 403422496*t^21 - 8403314*t^20 - 471656596*t^19 + 1806623746*t^18 + 752776200*t^17 + 752776200*t^16 - 1580830020*t^15 + 1673936550*t^14 - 1294246800*t^13 + 786893250*t^12 - 382391100*t^11 + 146679390*t^10 - 42299400*t^9 + 7837830*t^8 - 172260*t^7 - 468930*t^6 + 183744*t^5 - 39270*t^4 + 5060*t^3 - 330*t^2 + 1 # 64-bit
...120*t^33 - 3465*t^32 + 48180*t^31 - ... # 32-bit
"""
cdef Polynomial_integer_dense_flint HP
HP, grading = first_hilbert_series(I, grading=grading, return_grading=True)
Expand Down
14 changes: 14 additions & 0 deletions src/sage/rings/polynomial/multi_polynomial_ideal.py
Original file line number Diff line number Diff line change
Expand Up @@ -2902,6 +2902,20 @@ def hilbert_numerator(self, grading = None, algorithm = 'sage'):
sage: I = Ideal([x^3*y^2 + 3*x^2*y^2*z + y^3*z^2 + z^5])
sage: I.hilbert_numerator()
-t^5 + 1
Our two algorithms should always agree; not tested until
:trac:`33178` is fixed::
sage: m = ZZ.random_element(2,8) # not tested
sage: nvars = m^2 # not tested
sage: R = PolynomialRing(QQ, "x", nvars) # not tested
sage: M = matrix(R, m, R.gens()) # not tested
sage: I = R.ideal(M.minors(2)) # not tested
sage: n1 = I.hilbert_numerator() # not tested
sage: n2 = I.hilbert_numerator(algorithm='singular') # not tested
sage: n1 == n2 # not tested
True
"""
if not self.is_homogeneous():
raise TypeError("Ideal must be homogeneous.")
Expand Down

0 comments on commit 79ed9e5

Please sign in to comment.