Opened 5 months ago

Closed 9 days ago

Last modified 9 days ago

#34537 closed enhancement (fixed)

Upgrade to pari 2.15.2

Reported by: vdelecroix Owned by:
Priority: critical Milestone: sage-9.8
Component: number theory Keywords:
Cc: arojas, gh-collares, cremona Merged in:
Authors: Bill Allombert, Vincent Delecroix, Antonio Rojas Reviewers: Dima Pasechnik, John Cremona
Report Upstream: Workaround found; Bug reported upstream. Work issues:
Branch: e8cfad0 (Commits, GitHub, GitLab) Commit:
Dependencies: Stopgaps:

GitHub link to the corresponding issue

Description (last modified by mkoeppe)

PARI/GP 2.15 is out, and homebrew, gentoo, arch, debian-unstable already have the new version.

Attachments (2)

giac-1.9.0.15p0.log (56.3 KB) - added by vdelecroix 5 months ago.
testall.log (1.7 MB) - added by vdelecroix 5 months ago.

Download all attachments as: .zip

Change History (173)

Changed 5 months ago by vdelecroix

Attachment: giac-1.9.0.15p0.log added

comment:1 Changed 5 months ago by vdelecroix

Description: modified (diff)

comment:2 Changed 5 months ago by vdelecroix

Indeed, according to Bill Allombert ANYARG is gone in PARI/GP 2.15.0.

comment:3 Changed 5 months ago by vdelecroix

a solution

#ifdef __cplusplus
#  define ANYARG ...
#else
#  define ANYARG
#endif

comment:4 Changed 5 months ago by vdelecroix

Authors: Bill Allombert, Vincent Delecroix
Branch: u/vdelecroix/34537
Commit: c9fec46d5a07aa12d37937a6193261e96558c1c5

New commits:

d3058fechange pari version
c9fec46ANYARG giac patch

Changed 5 months ago by vdelecroix

Attachment: testall.log added

comment:5 Changed 5 months ago by vdelecroix

For the complete log, see testall.log

geometry/polyhedron/backend_normaliz.py  # 1 doctest failed
geometry/polyhedron/backend_field.py  # 2 doctests failed
dynamics/arithmetic_dynamics/projective_ds.py  # 1 doctest failed
arith/misc.py  # 4 doctests failed
libs/pari/tests.py  # 2 doctests failed
doctest/forker.py  # 1 doctest failed
doctest/sources.py  # 1 doctest failed
modular/cusps_nf.py  # 1 doctest failed
modular/modform/l_series_gross_zagier.py  # 1 doctest failed
modular/modsym/p1list_nf.py  # 3 doctests failed
modular/modform_hecketriangle/hecke_triangle_group_element.py  # 1 doctest failed
interfaces/genus2reduction.py  # 15 doctests failed
plot/plot3d/index_face_set.pyx  # Timed out
modules/free_quadratic_module_integer_symmetric.py  # 6 doctests failed
lfunctions/pari.py  # 1 doctest failed
lfunctions/dokchitser.py  # 4 doctests failed
rings/qqbar.py  # 28 doctests failed
rings/function_field/function_field.py  # 1 doctest failed
rings/number_field/selmer_group.py  # 1 doctest failed
rings/number_field/class_group.py  # 3 doctests failed
rings/number_field/number_field_ideal_rel.py  # 3 doctests failed
rings/number_field/bdd_height.py  # 1 doctest failed
rings/number_field/order.py  # 1 doctest failed
rings/number_field/S_unit_solver.py  # 4 doctests failed
rings/number_field/number_field.py  # 20 doctests failed
rings/number_field/number_field_rel.py  # 2 doctests failed
rings/number_field/number_field_ideal.py  # 1 doctest failed
rings/number_field/number_field_element.pyx  # 3 doctests failed
rings/number_field/galois_group.py  # 1 doctest failed
rings/finite_rings/finite_field_prime_modn.py  # 1 doctest failed
rings/finite_rings/residue_field.pyx  # 12 doctests failed
rings/polynomial/polynomial_quotient_ring.py  # 1 doctest failed
rings/polynomial/polynomial_element.pyx  # 2 doctests failed
rings/polynomial/polynomial_number_field.pyx  # 1 doctest failed
groups/fqf_orthogonal.py  # 1 doctest failed
groups/matrix_gps/isometries.py  # 1 doctest failed
schemes/curves/affine_curve.py  # 3 doctests failed
schemes/plane_conics/con_rational_function_field.py  # 3 doctests failed
schemes/elliptic_curves/gal_reps_number_field.py  # 2 doctests failed
schemes/elliptic_curves/ell_rational_field.py  # 17 doctests failed
schemes/elliptic_curves/isogeny_small_degree.py  # 1 doctest failed
schemes/elliptic_curves/gp_simon.py  # 1 doctest failed
schemes/elliptic_curves/modular_parametrization.py  # 3 doctests failed
schemes/elliptic_curves/BSD.py  # 3 doctests failed
schemes/elliptic_curves/ell_generic.py  # 1 doctest failed
schemes/elliptic_curves/heegner.py  # 181 doctests failed
schemes/elliptic_curves/ell_field.py  # 1 doctest failed
schemes/elliptic_curves/ell_number_field.py  # 6 doctests failed
schemes/hyperelliptic_curves/jacobian_endomorphism_utils.py  # 4 doctests failed
schemes/hyperelliptic_curves/jacobian_generic.py  # 10 doctests failed
schemes/affine/affine_morphism.py  # 1 doctest failed
quadratic_forms/binary_qf.py  # 25 doctests failed
quadratic_forms/quadratic_form__automorphisms.py  # 1 doctest failed
quadratic_forms/qfsolve.py  # 1 doctest failed
quadratic_forms/genera/genus.py  # 5 doctests failed

comment:6 Changed 5 months ago by arojas

Branch: u/vdelecroix/34537u/arojas/34537

comment:7 Changed 5 months ago by arojas

Commit: c9fec46d5a07aa12d37937a6193261e96558c1c56a83955cd1c55ddac45539888df233a3c1a885c6

Pushed fixes for test failures caused by different choice of generators and syntax changes so we have a clear picture of the actual issues. Remaining failures:

sage -t --long /usr/lib/python3.10/site-packages/sage/quadratic_forms/qfsolve.py  # 1 doctest failed
sage -t --long /usr/lib/python3.10/site-packages/sage/quadratic_forms/binary_qf.py  # 25 doctests failed
sage -t --long /usr/lib/python3.10/site-packages/sage/quadratic_forms/genera/genus.py  # 4 doctests failed
sage -t --long /usr/lib/python3.10/site-packages/sage/modular/modform/l_series_gross_zagier.py  # 1 doctest failed
sage -t --long /usr/lib/python3.10/site-packages/sage/schemes/plane_conics/con_rational_function_field.py  # 3 doctests failed
sage -t --long /usr/lib/python3.10/site-packages/sage/schemes/curves/affine_curve.py  # 3 doctests failed
sage -t --long /usr/lib/python3.10/site-packages/sage/schemes/elliptic_curves/heegner.py  # 181 doctests failed
sage -t --long /usr/lib/python3.10/site-packages/sage/schemes/elliptic_curves/ell_rational_field.py  # 17 doctests failed
sage -t --long /usr/lib/python3.10/site-packages/sage/schemes/elliptic_curves/BSD.py  # 3 doctests failed
sage -t --long /usr/lib/python3.10/site-packages/sage/schemes/elliptic_curves/modular_parametrization.py  # 3 doctests failed
sage -t --long /usr/lib/python3.10/site-packages/sage/schemes/elliptic_curves/gp_simon.py  # 1 doctest failed
sage -t --long /usr/lib/python3.10/site-packages/sage/schemes/hyperelliptic_curves/jacobian_generic.py  # 10 doctests failed
sage -t --long /usr/lib/python3.10/site-packages/sage/schemes/hyperelliptic_curves/jacobian_endomorphism_utils.py  # 4 doctests failed
sage -t --long /usr/lib/python3.10/site-packages/sage/modules/free_quadratic_module_integer_symmetric.py  # 1 doctest failed
sage -t --long /usr/lib/python3.10/site-packages/sage/lfunctions/dokchitser.py  # 4 doctests failed
sage -t --long /usr/lib/python3.10/site-packages/sage/groups/fqf_orthogonal.py  # 1 doctest failed
sage -t --long /usr/lib/python3.10/site-packages/sage/rings/number_field/number_field.py  # 11 doctests failed
sage -t --long /usr/lib/python3.10/site-packages/sage/rings/number_field/number_field_element.pyx  # 1 doctest failed
sage -t --long /usr/lib/python3.10/site-packages/sage/rings/polynomial/polynomial_element.pyx  # 2 doctests failed
sage -t --long /usr/lib/python3.10/site-packages/sage/rings/polynomial/polynomial_number_field.pyx  # 1 doctest failed
sage -t --long /usr/lib/python3.10/site-packages/sage/rings/function_field/function_field.py  # 1 doctest failed

New commits:

6a83955Adjust tests for pari 2.15

comment:8 Changed 5 months ago by git

Commit: 6a83955cd1c55ddac45539888df233a3c1a885c624e9e51b1a8c4f0c08bc6bc675ec12aca19d705c

Branch pushed to git repo; I updated commit sha1. New commits:

24e9e51Binary quadratic forms are of t_QFB type in pari 2.15

comment:9 Changed 5 months ago by git

Commit: 24e9e51b1a8c4f0c08bc6bc675ec12aca19d705ce9f6662798a513759747e46be5aacd064cd93ab7

Branch pushed to git repo; I updated commit sha1. New commits:

e9f6662Remove qfminimize function from qfsolve.gp, it is unused and conflicts with the builtin qfminimize in gp 2.15

comment:10 Changed 5 months ago by git

Commit: e9f6662798a513759747e46be5aacd064cd93ab772ff8265647ee235dd13abfa4d849af477e1387b

Branch pushed to git repo; I updated commit sha1. New commits:

72ff826Rename custom ellrank function as it conflicts with a native ellrank from gp 2.15

comment:11 Changed 5 months ago by arojas

Report Upstream: N/AReported upstream. No feedback yet.

Upstream report for the failures in schemes.curves.affine_curve and rings.number_field.number_field:

https://pari.math.u-bordeaux.fr/cgi-bin/bugreport.cgi?bug=2414

comment:12 Changed 5 months ago by git

Commit: 72ff8265647ee235dd13abfa4d849af477e1387b330e7d7e4da66abb7249f8e91a3e36dced209cff

Branch pushed to git repo; I updated commit sha1. New commits:

0e44b62Another test fix
330e7d7Update test in gp_simon.py

comment:13 Changed 5 months ago by git

Commit: 330e7d7e4da66abb7249f8e91a3e36dced209cffb1e967798b77a62b7ca926016ec1eee1b41937f2

Branch pushed to git repo; I updated commit sha1. New commits:

b1e9677Update to 2.15.0 final

comment:14 Changed 5 months ago by git

Commit: b1e967798b77a62b7ca926016ec1eee1b41937f2da873261689a2dc05ccc8ddd0ed45f56f55962db

Branch pushed to git repo; I updated commit sha1. New commits:

07020f0Merge remote-tracking branch 'origin/develop' into t/34537/34537
da87326Add workaround for PARI bug#2414

comment:15 Changed 5 months ago by git

Commit: da873261689a2dc05ccc8ddd0ed45f56f55962db9fbb8864ffef60eac5a8df28a365811c544fd239

Branch pushed to git repo; I updated commit sha1. New commits:

cd0cac6Another workaround for PARI bug#2414
9fbb886Filter out gp warnings that break parsing output in dokchitser.py

comment:16 Changed 5 months ago by arojas

Authors: Bill Allombert, Vincent DelecroixBill Allombert, Vincent Delecroix, Antonio Rojas
Summary: Prepare for pari 2.15Upgrade to pari 2.15

Only two remaining issues that are going to need more help from experts:

sage -t --long /usr/lib/python3.10/site-packages/sage/interfaces/genus2reduction.py  # 15 doctests failed
sage -t --long /usr/lib/python3.10/site-packages/sage/schemes/hyperelliptic_curves/jacobian_generic.py  # 10 doctests failed
sage -t --long /usr/lib/python3.10/site-packages/sage/schemes/hyperelliptic_curves/jacobian_endomorphism_utils.py  # 4 doctests failed

These are caused by the changes in gp's genus2red output from https://pari.math.u-bordeaux.fr/cgi-bin/gitweb.cgi?p=pari.git;a=commitdiff;h=a41e4fa95925eae42830217313583efc80628763

Sage's genus2reduction.py needs to be adapted to those changes.

sage -t --long /usr/lib/python3.10/site-packages/sage/groups/fqf_orthogonal.py  # 1 doctest failed

This is a weird issue that involves pari and gap code. Needs further investigation.

comment:17 Changed 5 months ago by git

Commit: 9fbb8864ffef60eac5a8df28a365811c544fd239328f04347598556e018ff8a861af1841c4ed294f

Branch pushed to git repo; I updated commit sha1. New commits:

328f043Fix one more test in docs

comment:18 Changed 5 months ago by git

Commit: 328f04347598556e018ff8a861af1841c4ed294fa019adcdf47f92e66ff85863ff3f5674f0ca6f9d

Branch pushed to git repo; I updated commit sha1. New commits:

a019adcRevert "Fix one more test in docs"

comment:19 in reply to:  11 Changed 5 months ago by arojas

Replying to Antonio Rojas:

Upstream report for the failures in schemes.curves.affine_curve and rings.number_field.number_field:

https://pari.math.u-bordeaux.fr/cgi-bin/bugreport.cgi?bug=2414

The bug was fixed upstream, but we may want to keep the workaround. It's not particularly hackish and will allow to use an unpatched system pari 2.15.0

comment:20 Changed 5 months ago by mkoeppe

Description: modified (diff)
Priority: majorcritical

comment:21 Changed 5 months ago by mkoeppe

Is this ready to go, or should we put the giac build fix on a separate ticket?

comment:22 Changed 5 months ago by arojas

Cc: arojas added

It's not ready, see comment:16

comment:23 Changed 5 months ago by mkoeppe

Dependencies: #34586

comment:24 Changed 5 months ago by mkoeppe

That's now #34586

comment:25 Changed 4 months ago by vdelecroix

Instead of using the ellQ_ellrank from Denis Simon script we should be using the ellrank from PARI/GP (available from version 2.15). Though, the latter only works over rational numbers.

comment:26 in reply to:  25 ; Changed 4 months ago by arojas

Replying to Vincent Delecroix:

Instead of using the ellQ_ellrank from Denis Simon script we should be using the ellrank from PARI/GP (available from version 2.15). Though, the latter only works over rational numbers.

That should go in a follow-up ticket, I think. The branch is already big enough.

comment:27 in reply to:  26 Changed 4 months ago by vdelecroix

Replying to Antonio Rojas:

Replying to Vincent Delecroix:

Instead of using the ellQ_ellrank from Denis Simon script we should be using the ellrank from PARI/GP (available from version 2.15). Though, the latter only works over rational numbers.

That should go in a follow-up ticket, I think. The branch is already big enough.

Sure: #34608

comment:28 Changed 4 months ago by vdelecroix

I am with Bill. I will push a fix for the genus 2 reduction.

comment:29 Changed 4 months ago by vdelecroix

Branch: u/arojas/34537public/34537
Commit: a019adcdf47f92e66ff85863ff3f5674f0ca6f9deb7db0d7db18cdc6fb0ef3671e99e8bf9fc1f3ff

New commits:

7c7d626fix call to pari genus2red
eb7db0dfix doc associated to genus 2 reduction

comment:30 Changed 4 months ago by vdelecroix

The modifications I have done are incompatible with PARI < 2.15. I think it would be simpler to enforce PARI >= 2.15 in the next sage version.

comment:31 Changed 4 months ago by git

Commit: eb7db0d7db18cdc6fb0ef3671e99e8bf9fc1f3ff6b250d389f6eb7e13a1c3baa34cedcd12512a320

Branch pushed to git repo; I updated commit sha1. New commits:

6b250d3Merge remote-tracking branch 'origin/develop' into t/34537/public/34537

comment:32 in reply to:  30 Changed 4 months ago by lorenz

Replying to Vincent Delecroix:

I think it would be simpler to enforce PARI >= 2.15 in the next sage version.

If done, this would simplify the patch at #33360, which currently chooses from two distinct implementations depending on the PARI version.

comment:33 Changed 4 months ago by dimpase

Meanwhile, please see #34496 - to forbid system Pari 2.15 and newer, until we're done here.

comment:34 Changed 4 months ago by git

Commit: 6b250d389f6eb7e13a1c3baa34cedcd12512a32096efc900c50423bc37dad84c6da4e2afe9712785

Branch pushed to git repo; I updated commit sha1. New commits:

96efc90Re-fix test that was moved to a different file in 9.8.beta1

comment:35 Changed 4 months ago by arojas

This is almost ready, just needs someone to figure out the failure in sage/groups/fqf_orthogonal.py

comment:36 Changed 4 months ago by vdelecroix

The test in fqf_orthogonal.py does not make much sense as Oq and OL are different groups.

comment:37 Changed 4 months ago by git

Commit: 96efc900c50423bc37dad84c6da4e2afe971278548ea610d2f4fca63dbeccd0ba575d458097267e2

Branch pushed to git repo; I updated commit sha1. New commits:

48ea610fix doctest if fqf_orthogonal

comment:38 in reply to:  35 Changed 4 months ago by arojas

Replying to Antonio Rojas:

This is almost ready, just needs someone to figure out the failure in sage/groups/fqf_orthogonal.py

OK, from a closer look it looks like this is just caused by a different choice of generators for the orthogonal group. Replacing

sage: assert Oq(OL.0) == Oq(OL.0.matrix())

with

sage: assert Oq(OL.1) == Oq(OL.1.matrix())

gives the same failure with pari 2.13. So, even though this looks like an actual issue, it is not a regression from the pari update, it just happened to work by chance before due to a different matrix being tested. I think we should just flag this as known bug and proceed with this.


New commits:

48ea610fix doctest if fqf_orthogonal

comment:39 Changed 4 months ago by vdelecroix

I pushed a "fix" in 48ea610. I do not think there is anything deep about generators that is tested here. Otherwise this should have been documented!

comment:40 Changed 4 months ago by vdelecroix

Dependencies: #34586
Status: newneeds_review

comment:41 Changed 4 months ago by vdelecroix

Antonio, if you don't like my last commit feel free to replace with "known bug".

comment:42 Changed 4 months ago by vdelecroix

Status: needs_reviewneeds_info

Should we enforce pari 2.15 at configure step?

comment:43 Changed 4 months ago by git

Commit: 48ea610d2f4fca63dbeccd0ba575d458097267e2b38f58826ab47308d6cf581ec16ec871439ea776

Branch pushed to git repo; I updated commit sha1. New commits:

b38f588Require pari>=2.15, remove old bug test

comment:44 in reply to:  42 Changed 4 months ago by arojas

Report Upstream: Reported upstream. No feedback yet.Workaround found; Bug reported upstream.
Status: needs_infoneeds_review

Replying to Vincent Delecroix:

Should we enforce pari 2.15 at configure step?

Was just doing that. Since there are backwards-incompatible changes, we should

comment:45 Changed 4 months ago by dimpase

Dependencies: #34496

see the rationale for putting #34496 into dependencies in #34496

comment:46 Changed 4 months ago by dimpase

Also m4_pushdef([SAGE_PARI_MINVER],["134912"]) is not right. This is pari 2.15.0, but without a patch it won't work. So this has to be a bigger value.

comment:47 Changed 4 months ago by git

Commit: b38f58826ab47308d6cf581ec16ec871439ea776b8ef29c1dd8f6e005e575d32bae4e58229cf3e42

Branch pushed to git repo; I updated commit sha1. This was a forced push. Last 10 new commits:

8641cfeAdd workaround for PARI bug#2414
074848cAnother workaround for PARI bug#2414
fc53487Filter out gp warnings that break parsing output in dokchitser.py
6be8431Fix one more test in docs
281cf7bRevert "Fix one more test in docs"
51ea7c3fix call to pari genus2red
2112c7efix doc associated to genus 2 reduction
04a1730Re-fix test that was moved to a different file in 9.8.beta1
f0365f3fix doctest if fqf_orthogonal
b8ef29cRequire pari>=2.15, remove old bug test

comment:48 Changed 4 months ago by dimpase

I've rebased over the branch of #34496 and bumped SAGE_PARI_MIN/MAXVER accordingly.

comment:49 in reply to:  46 Changed 4 months ago by arojas

Replying to Dima Pasechnik:

Also m4_pushdef([SAGE_PARI_MINVER],["134912"]) is not right. This is pari 2.15.0, but without a patch it won't work. So this has to be a bigger value.

Which patch? This works fine with plain 2.15.0

comment:50 Changed 4 months ago by git

Commit: b8ef29c1dd8f6e005e575d32bae4e58229cf3e422823bff46e12d48226db0326e270f02336c005bc

Branch pushed to git repo; I updated commit sha1. New commits:

2823bffcorrect minimal version of pari

comment:51 Changed 4 months ago by dimpase

OK, right, I didn't pay attention. It's giac's patch, not pari's. Fixed.

comment:52 Changed 4 months ago by arojas

Status: needs_reviewneeds_work

Looks like the force push reverted part of the 9.8.beta1 rebase. The changes in sage/geometry/polyhedron/backend_normaliz.py shouldn't be there, and the pycodestyle changes from #34522 in src/sage/lfunctions/pari.py are missing.

comment:53 Changed 4 months ago by git

Commit: 2823bff46e12d48226db0326e270f02336c005bc1e86aa26790d84bf066eca67f98a60a8aa3d4d3a

Branch pushed to git repo; I updated commit sha1. New commits:

1e86aa2Fix 9.8.beta1 rebase

comment:54 Changed 4 months ago by arojas

Status: needs_workneeds_review

comment:55 Changed 4 months ago by dimpase

tests good on macOS with Homebrew's pari 2.15.0

comment:56 Changed 4 months ago by dimpase

Reviewers: Dima Pasechnik

I suppose this needs a round of testing on GH Actions.

comment:57 Changed 4 months ago by dimpase

I've started https://github.com/sagemath/sagetrac-mirror/actions/runs/3164081241 I see the CI has been refactored, not sure how to run more tests.

comment:59 Changed 4 months ago by dimpase

started

https://github.com/sagemath/sagetrac-mirror/actions/runs/3167926282

and

https://github.com/sagemath/sagetrac-mirror/actions/runs/3167930205

By the way, with such urls as you provided, it's not sufficent to just push "Run workflow", as this widget still has "develop" as a branch to run - so the branch still had to manually selected.

comment:60 Changed 4 months ago by dimpase

works on M1 mac with Homebrew, too.

comment:61 Changed 4 months ago by dimpase

Status: needs_reviewpositive_review

there were errors with many CI runs on macOS, but I think it's not because of this. LGTM

comment:62 Changed 4 months ago by dimpase

Status: positive_reviewneeds_info

I spoke too soon. While Sage tests all pass, some of giac's selftests fail

[giac-1.9.0.15p0] make  check-TESTS
[giac-1.9.0.15p0] PASS: chk_partfrac
[giac-1.9.0.15p0] PASS: chk_factor
[giac-1.9.0.15p0] PASS: chk_integrate
[giac-1.9.0.15p0] PASS: chk_geo
[giac-1.9.0.15p0] FAIL: chk_fhan2
[giac-1.9.0.15p0] PASS: chk_cas
[giac-1.9.0.15p0] PASS: chk_fhan3
[giac-1.9.0.15p0] FAIL: chk_fhan4
[giac-1.9.0.15p0] PASS: chk_xavier
[giac-1.9.0.15p0] PASS: chk_morley_demo
[giac-1.9.0.15p0] FAIL: chk_fhan6
[giac-1.9.0.15p0] PASS: chk_limit
[giac-1.9.0.15p0] FAIL: chk_fhan8
[giac-1.9.0.15p0] PASS: chk_fhan5
[giac-1.9.0.15p0] PASS: chk_fhan0
[giac-1.9.0.15p0] PASS: chk_normalize
[giac-1.9.0.15p0] FAIL: chk_fhan13
[giac-1.9.0.15p0] FAIL: chk_fhan12
[giac-1.9.0.15p0] PASS: chk_fhan14
[giac-1.9.0.15p0] PASS: chk_fhan1
[giac-1.9.0.15p0] PASS: chk_fhan15
[giac-1.9.0.15p0] FAIL: chk_fhan11
[giac-1.9.0.15p0] PASS: chk_fhan17
[giac-1.9.0.15p0] PASS: chk_fhan16
[giac-1.9.0.15p0] PASS: chk_fhan20
[giac-1.9.0.15p0] PASS: chk_fhan19
[giac-1.9.0.15p0] PASS: chk_fhan21
[giac-1.9.0.15p0] FAIL: chk_fhan9
[giac-1.9.0.15p0] PASS: chk_fhan18
[giac-1.9.0.15p0] PASS: chk_fhan7
[giac-1.9.0.15p0] ============================================================================
[giac-1.9.0.15p0] Testsuite summary for giac 1.9.0
[giac-1.9.0.15p0] ============================================================================
[giac-1.9.0.15p0] # TOTAL: 30
[giac-1.9.0.15p0] # PASS:  22
[giac-1.9.0.15p0] # SKIP:  0
[giac-1.9.0.15p0] # XFAIL: 0
[giac-1.9.0.15p0] # FAIL:  8
[giac-1.9.0.15p0] # XPASS: 0

hopefully it's just formatting, but needs investigation

Version 0, edited 4 months ago by dimpase (next)

comment:63 Changed 4 months ago by arojas

I'm seeing just one failure, which is a segfault

  ***   the thread stack overflows !
  current stack size: 1024000 (0.977 Mbytes)
  [hint] set 'threadsizemax' to a nonzero value in your GPRC
  *** matdet: Warning: increasing stack size to 2048000.
  ***   at top-level: matdet([-10,-7,6,-7,1,4,-1,-2,-2,-5,1,7,-6,7,-
  ***                 ^----------------------------------------------
  *** matdet: the thread stack overflows !
  current stack size: 1024000 (0.977 Mbytes)
  [hint] set 'threadsizemax' to a nonzero value in your GPRC
Error in PARI subsystem
./chk_fhan4: line 3: 21708 Segmentation fault      (core dumped) ../src/icas TP04-sol.cas > TP04.tst

caused by the garbage collection changes in https://pari.math.u-bordeaux.fr/cgi-bin/gitweb.cgi?p=pari.git;a=commitdiff;h=259f62c17c101c380cfed56d303304a13e21ec1e

comment:64 Changed 4 months ago by dimpase

I see this segfault too. Does setting threadsizemax in ~/.gprc help?

comment:65 Changed 4 months ago by jhpalmieri

Dima, as noted at https://trac.sagemath.org/ticket/32785#comment:7, it is not new that giac fails its test suite, at least on OS X machines. On Intel (old version of giac and pari):

PASS: chk_partfrac
PASS: chk_fhan3
PASS: chk_factor
FAIL: chk_fhan2
PASS: chk_geo
PASS: chk_integrate
PASS: chk_fhan0
PASS: chk_cas
PASS: chk_fhan5
PASS: chk_fhan13
PASS: chk_fhan12
PASS: chk_fhan14
PASS: chk_fhan15
PASS: chk_fhan17
PASS: chk_fhan6
PASS: chk_fhan19
PASS: chk_fhan16
PASS: chk_fhan20
PASS: chk_fhan21
FAIL: chk_fhan9
PASS: chk_fhan18
PASS: chk_fhan7
PASS: chk_xavier
PASS: chk_morley_demo
PASS: chk_limit
PASS: chk_fhan11
PASS: chk_fhan8
PASS: chk_fhan4
PASS: chk_fhan1
PASS: chk_normalize

I'll try on an m2 machine later, to see what failures I get.

comment:66 Changed 4 months ago by dimpase

ok, thus it is not much of a regression.

comment:67 Changed 4 months ago by jhpalmieri

By the way, should #34496 really be a dependency, or is the point of this ticket to be able to bypass the problem of building with the newest pari?

comment:68 in reply to:  67 Changed 4 months ago by dimpase

Replying to John Palmieri:

By the way, should #34496 really be a dependency, or is the point of this ticket to be able to bypass the problem of building with the newest pari?

#34496 added a useful tweak to spkg-configure of pari, and so we build up on it.

comment:69 Changed 4 months ago by jhpalmieri

I'm not going to be able to check test suite failures with the old pari/giac on Apple M2 until Friday.

comment:70 Changed 4 months ago by gh-collares

Cc: gh-collares added

comment:71 Changed 4 months ago by jhpalmieri

On Apple M2, the old pari and the old giac give these results in giac's test suite:

make  check-TESTS
PASS: chk_partfrac
PASS: chk_factor
PASS: chk_integrate
PASS: chk_geo
PASS: chk_cas
PASS: chk_limit
FAIL: chk_fhan2
PASS: chk_xavier
PASS: chk_morley_demo
PASS: chk_fhan3
PASS: chk_normalize
FAIL: chk_fhan4
FAIL: chk_fhan6
FAIL: chk_fhan8
PASS: chk_fhan5
PASS: chk_fhan0
FAIL: chk_fhan13
FAIL: chk_fhan12
PASS: chk_fhan1
PASS: chk_fhan14
PASS: chk_fhan15
FAIL: chk_fhan11
PASS: chk_fhan17
PASS: chk_fhan16
PASS: chk_fhan20
PASS: chk_fhan19
PASS: chk_fhan21
FAIL: chk_fhan9
PASS: chk_fhan18
PASS: chk_fhan7

comment:72 Changed 4 months ago by jhpalmieri

Looks like the same failures that Dima saw, so not a regression. I don't think it should be an obstacle to this ticket.

comment:73 Changed 4 months ago by dimpase

Status: needs_infopositive_review

OK, thanks. Back to positive.

comment:74 Changed 4 months ago by vbraun

Status: positive_reviewneeds_work

The cypari testsuite fails on OSX (intel), worked before

Successfully installed cypari2-2.1.2

real    1m45.872s
user    1m35.524s
sys     0m9.197s
Copying package files from temporary location /Users/buildbot-sage/worker/sage_git/build/local/var/lib/sage/venv-python3.10.5/var/tmp/sage/build/cypari-2.1.2/inst to /Users/buildbot-sage/worker/sage_git/build/local/var/lib/sage/venv-python3.10.5
Running the test suite for cypari-2.1.2...
ulimit -s 8192; python3 -u tests/rundoctest.py
================================================================================
Testing cypari2.closure
**********************************************************************
File "/Users/buildbot-sage/worker/sage_git/build/local/var/lib/sage/venv-python3.10.5/lib/python3.10/site-packages/cypari2/closure.cpython-310-darwin.so", line ?, in cypari2.closure.__test__.objtoclosure (line 145)
Failed example:
    mul([1], [2])
Differences (ndiff with -expected +actual):
      Traceback (most recent call last):
    - ...
    - PariError: call_python: forbidden multiplication t_VEC (1 elts) * t_VEC (1 elts)
    +   File "/Users/buildbot-sage/worker/sage_git/build/local/var/lib/sage/venv-python3.10.5/lib/python3.10/doctest.py", line 1350, in __run
    +     exec(compile(example.source, filename, "single",
    +   File "<doctest cypari2.closure.__test__.objtoclosure (line 145)[18]>", line 1, in <module>
    +     mul([1], [2])
    +   File "cypari2/gen.pyx", line 4110, in cypari2.gen.Gen.__call__
    +     sig_on()
    +   File "cypari2/handle_error.pyx", line 213, in cypari2.handle_error._pari_err_handle
    +     raise PariError(errnum, pari_error_string, clone_gen_noclear(E))
    + PariError: call_python: incorrect type in qfbcomp (t_VEC)
**********************************************************************
File "/Users/buildbot-sage/worker/sage_git/build/local/var/lib/sage/venv-python3.10.5/lib/python3.10/site-packages/cypari2/closure.cpython-310-darwin.so", line ?, in cypari2.closure.objtoclosure
Failed example:
    mul([1], [2])
Differences (ndiff with -expected +actual):
      Traceback (most recent call last):
    - ...
    - PariError: call_python: forbidden multiplication t_VEC (1 elts) * t_VEC (1 elts)
    +   File "/Users/buildbot-sage/worker/sage_git/build/local/var/lib/sage/venv-python3.10.5/lib/python3.10/doctest.py", line 1350, in __run
    +     exec(compile(example.source, filename, "single",
    +   File "<doctest cypari2.closure.objtoclosure[18]>", line 1, in <module>
    +     mul([1], [2])
    +   File "cypari2/gen.pyx", line 4110, in cypari2.gen.Gen.__call__
    +     sig_on()
    +   File "cypari2/handle_error.pyx", line 213, in cypari2.handle_error._pari_err_handle
    +     raise PariError(errnum, pari_error_string, clone_gen_noclear(E))
    + PariError: call_python: incorrect type in qfbcomp (t_VEC)
**********************************************************************

comment:75 in reply to:  74 Changed 4 months ago by vdelecroix

Replying to Volker Braun:

The cypari testsuite fails on OSX (intel), worked before

...

The error message indeed changed in PARI 2.15. Should that really block this ticket? Otherwise, we do have to upgrade cypari2 at the same time.

comment:76 Changed 4 months ago by vbraun

The (cy)pari testsuite is generally pretty solid so I'd hate to have to permanently disable it on the buildbot

comment:77 Changed 4 months ago by thansen

Here is an explanation for the cypari error: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=1020456#10

comment:78 in reply to:  77 Changed 4 months ago by dimpase

comment:79 Changed 3 months ago by tornaria

I have cypari2 pass all tests on pari-2.15 using

comment:80 Changed 3 months ago by dimpase

Summary: Upgrade to pari 2.15Upgrade to pari 2.15.1

comment:81 in reply to:  80 Changed 3 months ago by tornaria

Replying to Dima Pasechnik:

pari 2.15.1 is out, see https://pari.math.u-bordeaux.fr/archives/pari-announce-22/msg00002.html

Pari 2.15.1 includes the fix I cherry picked in my last comment.

The current HEAD of cypari2 already fied testsuite passes on pari 2.15, and Vincent said he will do a release soon.

It would be very nice if this can be merged for 9.8.

comment:82 Changed 3 months ago by arojas

Also, giac 1.9.0.29 builds fine against 2.15 without patching.

comment:83 in reply to:  82 ; Changed 3 months ago by dimpase

Replying to Antonio Rojas:

Also, giac 1.9.0.29 builds fine against 2.15 without patching.

do you want giac updated here, or on another ticket?

comment:84 Changed 3 months ago by mkoeppe

Dependencies: #34496#34496, #33878

cypari2 upgrade in #33878

comment:85 in reply to:  83 Changed 3 months ago by arojas

Replying to Dima Pasechnik:

do you want giac updated here, or on another ticket?

I don't personally mind, was just pointing out the possibility of updating giac instead of patching. Can this go back to needs_review now?

comment:86 Changed 3 months ago by dimpase

Status: needs_workneeds_review

comment:87 Changed 2 months ago by jhpalmieri

The title of the ticket says that we're upgrading to 2.15.1, but the branch only goes to 2.15.0.

comment:88 Changed 2 months ago by dimpase

Oh, right, I tested with Homebrew's pari, and Gentoo's pari (they are both 2.15.1), and forgot to bump this branch.

comment:89 Changed 2 months ago by dimpase

Branch: public/34537u/dimpase/packages/pari2151
Commit: 1e86aa26790d84bf066eca67f98a60a8aa3d4d3a364f6d1ae19d7cd620a4151e1a51d2e4223c1441
Dependencies: #34496, #33878

OK, readly now


Last 10 new commits:

c901802Fix one more test in docs
eea5ce7Revert "Fix one more test in docs"
3898bbffix call to pari genus2red
42a21a1fix doc associated to genus 2 reduction
d656b23Re-fix test that was moved to a different file in 9.8.beta1
d9c283efix doctest if fqf_orthogonal
29c80f6Require pari>=2.15, remove old bug test
9aa2be6correct minimal version of pari
69ff502Fix 9.8.beta1 rebase
364f6d1bump version to 2.15.1

comment:90 Changed 2 months ago by dimpase

rebased over 9.8.beta4

comment:91 Changed 2 months ago by jhpalmieri

On OS X Intel, the basic functionality is there (i.e., Sage builds and make ptestlong works), but the test suite for pari hangs. I see this in the log file, with no changes in more than an hour:

: gp-sta
* Testing addprimes        gp-sta..TIME=    8   gp-dyn..TIME=    8   
* Testing agm              gp-sta..TIME=   65   gp-dyn..TIME=   59   
* Testing algebras         gp-sta..TIME= 1490   gp-dyn..TIME= 1481   
* Testing alggroup         gp-sta..TIME=  661   gp-dyn..TIME=  651   
* Testing alghasse         gp-sta..TIME= 2701   gp-dyn..TIME= 2523   
* Testing alglattices      gp-sta..TIME= 1153   gp-dyn..TIME= 1150   
* Testing algsplit         gp-sta..TIME=  946   gp-dyn..TIME= 1139   
* Testing analyz           gp-sta..TIME=   22   gp-dyn..TIME=   20   
* Testing apply            gp-sta..TIME=    1   gp-dyn..TIME=    1   
* Testing arith            gp-sta..TIME=    0   gp-dyn..TIME=    0   
* Testing asymp            gp-sta..TIME=  129   gp-dyn..TIME=  117   
* Testing aurifeuille      gp-sta..TIME=    1   gp-dyn..TIME=    1   
* Testing bbhnf            gp-sta..TIME=  959   gp-dyn..TIME=  918   
* Testing bern             gp-sta..TIME=13627   gp-dyn..TIME=13270   
* Testing bessel           gp-sta..TIME=  177   gp-dyn..TIME=  170   
* Testing bestappr         gp-sta..TIME=    1   gp-dyn..TIME=    1   
* Testing binomial         gp-sta..TIME=  240   gp-dyn..TIME=  243   
* Testing bit              gp-sta..TIME=    1   gp-dyn..TIME=    1   
* Testing bnf              gp-sta..TIME=31168   gp-dyn..TIME=31762   
* Testing bnfisintnorm     gp-sta..TIME=  504   gp-dyn..TIME=  506   
* Testing bnflog           

This is after running export SAGE_CHECK=yes and make pari.

comment:92 Changed 2 months ago by jhpalmieri

I seem to get the same thing with the previous version of pari. I'm trying again and I will update later.

comment:93 Changed 2 months ago by dimpase

perhaps upstream does not test with macOS at all, or perhaps only with old versions, and not 13.0 ?

comment:94 Changed 2 months ago by jhpalmieri

Right, I get the same with the previous version of pari, so this failure should not hold up this ticket.

comment:95 Changed 2 months ago by jhpalmieri

On Apple Silicon, both the old and new pari pass their test suites.

comment:96 Changed 2 months ago by jhpalmieri

Many of the changes in doctests look fine to me, but I can't vouch for all of them. Can other people check them? (One example is the change in sage/schemes/elliptic_curves/ell_field.py, although there are others. Looks plausible but I don't know the details.)

comment:97 Changed 2 months ago by dimpase

Cc: cremona added

John C., can you have a look ?

comment:98 in reply to:  97 Changed 2 months ago by cremona

Replying to Dima Pasechnik:

John C., can you have a look ?

Sorry, only jut noticed this -- will do today.

comment:99 Changed 2 months ago by cremona

genus2reduction: makes sense for our doctests to just have y2 = ... since these reductions are not unique. The most important thing is for the minimal discriminant to be correct which we do check.

cusps_nf: OK

lfunctions/*: OK

libs/pari/tests: OK

S_unit_solver: OK

number_field/*: OK

polynomial/*: OK

QQbar: looks reasonable, would take ages to rigorously check everything

elliptic_curves/ ell_field: OK (the two fields are isomorphic) ell_generic: OK (0 is displayed differently)

ell_number_field: (1) the first simon_two_descent test in the diffs is strange as E is defined by EllipticCurve?(K, '37') where K is a number field; the resulting curve is the one with label '37a1'. Would you believe tat I had never noticed that the function parse_cremona_label() was happy both to have the curve number default to 1 (which I knew) and also the isogeny class letter code default to 'a'? Fine, it is documented, but one day I'll change that '37' to '37a1' to be less obscure. (2) the different matrices are OK since the rows/cols will be permuted if the curves in the class are sorted differently; the docstring (written by me) says "The curves in the class are sorted first by CM discriminant (then lexicographically using a-invariants)" which can lead to differences, either because the field generator changes or because the choice of minimal reduced model (and hence the a-invariants) is not deterministic. One day I'll implement the LMFDB way of sorting curves in the class.

The rest of the elliptic curves stuff is fine.

Note that we no longer need, and could deprecate, the simon_two_descent() method for curves over QQ, since the pari ellrank() function will always be better (being a C implementation with a lot of extra geatures of the same underlying theory). But this is *not* the case for that methof for curves over number fields, at present. And for a similar reason the rank() method for elliptic curves over Q (and related methods such as gens()) should definitely now have an 'algorithm=pari' option now which calls ellrank(). It's also probably true that it should be the default, for curves not in the database, as it is extremely good (=fast and good at finding generators). But not on this ticket.

I looked at mst of the files, and all the ones where I thought my expertise would be helpful. Looks good!

comment:100 Changed 2 months ago by dimpase

Reviewers: Dima PasechnikDima Pasechnik, John Cremona
Status: needs_reviewpositive_review

Thanks John, I take your long review as OK.

comment:101 in reply to:  100 Changed 2 months ago by cremona

Replying to Dima Pasechnik:

Thanks John, I take your long review as OK.

yes!

comment:102 Changed 7 weeks ago by vbraun

Status: positive_reviewneeds_work

There are a bunch of numerical noise issues on 32-bit:

**********************************************************************
File "src/sage/calculus/calculus.py", line 242, in sage.calculus.calculus
Failed example:
    float(z)
Expected:
    4.646783762432936
Got:
    4.646783762432935
**********************************************************************
File "src/sage/calculus/calculus.py", line 772, in sage.calculus.calculus.?
Failed example:
    float(f)
Expected:
    -480.0
Got:
    -2336.0
**********************************************************************
File "src/sage/calculus/calculus.py", line 784, in sage.calculus.calculus.?
Failed example:
    f.nintegrate(x,0,1)
Expected:
    (-480.0000000000001, 5.32907051820075...e-12, 21, 0)
Got:
    (-831.9999999999999, 9.237055564881304e-12, 21, 0)
**********************************************************************
2 items had failures:
   1 of 118 in sage.calculus.calculus
   2 of  15 in sage.calculus.calculus.?
    [457 tests, 3 failures, 19.44 s]
**********************************************************************
File "src/sage/calculus/wester.py", line 283, in sage.calculus.wester
Failed example:
    float(a)
Expected:
    1.1368683772...e-13
Got:
    0.0
**********************************************************************
1 item had failures:
   1 of 202 in sage.calculus.wester
    [201 tests, 1 failure, 2.45 s]
**********************************************************************
File "src/sage/categories/finite_coxeter_groups.py", line 705, in sage.categories.finite_coxeter_groups.FiniteCoxeterGroups.ParentMethods.permutahedron
Failed example:
    W.permutahedron()
Exception raised:
    Traceback (most recent call last):
      File "/var/lib/buildbot/worker/sage_git/build/src/sage/doctest/forker.py", line 695, in _run
        self.compile_and_execute(example, compiler, test.globs)
      File "/var/lib/buildbot/worker/sage_git/build/src/sage/doctest/forker.py", line 1093, in compile_and_execute
        exec(compiled, globs)
      File "<doctest sage.categories.finite_coxeter_groups.FiniteCoxeterGroups.ParentMethods.permutahedron[1]>", line 1, in <module>
        W.permutahedron()
      File "/var/lib/buildbot/worker/sage_git/build/src/sage/categories/finite_coxeter_groups.py", line 755, in permutahedron
        return Polyhedron(vertices=vertices, base_ring=base_ring)
      File "/var/lib/buildbot/worker/sage_git/build/src/sage/geometry/polyhedron/constructor.py", line 759, in Polyhedron
        return parent(Vrep, Hrep, convert=convert, verbose=verbose, mutable=mutable)
      File "sage/structure/parent.pyx", line 898, in sage.structure.parent.Parent.__call__
        return mor._call_with_args(x, args, kwds)
      File "sage/structure/coerce_maps.pyx", line 180, in sage.structure.coerce_maps.DefaultConvertMap_unique._call_with_args
        raise
      File "sage/structure/coerce_maps.pyx", line 175, in sage.structure.coerce_maps.DefaultConvertMap_unique._call_with_args
        return C._element_constructor(x, *args, **kwds)
      File "/var/lib/buildbot/worker/sage_git/build/src/sage/geometry/polyhedron/parent.py", line 684, in _element_constructor_
        return self.element_class(self, Vrep, Hrep, **kwds)
      File "/var/lib/buildbot/worker/sage_git/build/src/sage/geometry/polyhedron/backend_cdd_rdf.py", line 98, in __init__
        Polyhedron_cdd.__init__(self, parent, Vrep, Hrep, **kwds)
      File "/var/lib/buildbot/worker/sage_git/build/src/sage/geometry/polyhedron/base0.py", line 174, in __init__
        self._init_from_Vrepresentation(vertices, rays, lines, **kwds)
      File "/var/lib/buildbot/worker/sage_git/build/src/sage/geometry/polyhedron/backend_cdd.py", line 65, in _init_from_Vrepresentation
        s = self._run_cdd(s, '--repall', verbose=verbose)
      File "/var/lib/buildbot/worker/sage_git/build/src/sage/geometry/polyhedron/backend_cdd.py", line 172, in _run_cdd
        raise ValueError(ans.strip())
    ValueError: *Error: Numerical inconsistency is found.  Use the GMP exact arithmetic.
**********************************************************************
1 item had failures:
   1 of   6 in sage.categories.finite_coxeter_groups.FiniteCoxeterGroups.ParentMethods.permutahedron
    [151 tests, 1 failure, 4.74 s]
**********************************************************************
File "src/sage/dynamics/complex_dynamics/mandel_julia_helper.pyx", line 219, in sage.dynamics.complex_dynamics.mandel_julia_helper.?
Failed example:
    fast_external_ray(0,S=1,D=1)
Expected:
    [(100.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000,
      0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000),
     (9.51254777713729174697578576623132297117784691109499464854806785133621315075854778426714908,
      0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000)]
Got:
    [(100.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000,
      0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000),
     (9.51254777713729032775694689466896914675974929808733306327787458869355202130788654602053071,
      0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000)]
**********************************************************************
File "src/sage/dynamics/complex_dynamics/mandel_julia_helper.pyx", line 229, in sage.dynamics.complex_dynamics.mandel_julia_helper.?
Failed example:
    fast_external_ray(1/3,S=1,D=1)
Expected:
    [(-49.9999999999999786837179271969944238662719726562500000000000000000000000000000000000000000,
      86.6025403784438765342201804742217063903808593750000000000000000000000000000000000000000000),
     (-5.50628047023173006234970878097113901879832542655926629309001652388544528575532346900138516,
      8.64947510053972513843999918917106032664030380426885745306040284140385975750462108180377187)]
Got:
    [(-49.9999999999999786837179271969944238662719726562500000000000000000000000000000000000000000,
      86.6025403784438765342201804742217063903808593750000000000000000000000000000000000000000000),
     (-5.50628047023172980317558651097220813419960642675275525034690583138202683104446159128356526,
      8.64947510053972416699388454766038069022656677613412868926274778156654918224636699020909555)]
**********************************************************************
File "src/sage/dynamics/complex_dynamics/mandel_julia_helper.pyx", line 238, in sage.dynamics.complex_dynamics.mandel_julia_helper.?
Failed example:
    fast_external_ray(0.75234,S=1,D=1)
Expected:
    [(1.47021239172637052661229972727596759796142578125000000000000000000000000000000000000000000,
      -99.9891917935294287644865107722580432891845703125000000000000000000000000000000000000000000),
     (-0.352790406744857508500937144524776555433184352559852962308757189778284058275081335121601384,
      -9.98646630765023514178761177926164047797465369576787921409326037870837930920646860774032363)]
Got:
    [(1.47021239172637052661229972727596759796142578125000000000000000000000000000000000000000000,
      -99.9891917935294287644865107722580432891845703125000000000000000000000000000000000000000000),
     (-0.352790406744857531982226711825539675074733886273844201352581335945053660908669195067107961,
      -9.98646630765023371851343140849138176796542428333725755653082848714206880231557255794864137)]
**********************************************************************
1 item had failures:
   3 of  42 in sage.dynamics.complex_dynamics.mandel_julia_helper.?
    [43 tests, 3 failures, 5.81 s]
**********************************************************************
File "src/sage/functions/log.py", line 45, in sage.functions.log.Function_exp
Failed example:
    exp(float(2.5))
Expected:
    12.182493960703473
Got:
    12.182493960703475
**********************************************************************
File "src/sage/functions/log.py", line 47, in sage.functions.log.Function_exp
Failed example:
    exp(RDF('2.5'))
Expected:
    12.182493960703473
Got:
    12.182493960703475
**********************************************************************
1 item had failures:
   2 of  41 in sage.functions.log.Function_exp
    [281 tests, 2 failures, 4.10 s]
**********************************************************************
File "src/sage/functions/trig.py", line 608, in sage.functions.trig.Function_arccos.__init__
Failed example:
    acos(complex(1,1))
Expected:
    (0.9045568943023814-1.0612750619050357j)
Got:
    (0.9045568943023815-1.0612750619050357j)
**********************************************************************
1 item had failures:
   1 of  18 in sage.functions.trig.Function_arccos.__init__
    [261 tests, 1 failure, 2.37 s]
**********************************************************************
File "src/sage/geometry/hyperbolic_space/hyperbolic_geodesic.py", line 2384, in sage.geometry.hyperbolic_space.hyperbolic_geodesic.HyperbolicGeodesicHM._plot_vertices
Failed example:
    g._plot_vertices(5)
Expected:
    [(4.0, -4.0, 5.744562...),
     (1.363213..., -1.637073..., 2.353372...),
     (0.138568..., -0.969980..., 1.400022...),
     (-0.942533..., -1.307681..., 1.896945...),
     (-3.0, -3.0, 4.358898...)]
Got:
    [(4.0, -4.0, 5.744562646538029),
     (1.3632131724692087, -1.6370738298435317, 2.3533722353151303),
     (0.1385685838744788, -0.9699800871213657, 1.4000223647674161),
     (-0.942533854284406, -1.3076813974501604, 1.8969450977056255),
     (-3.0, -3.000000000000014, 4.35889894354068)]
**********************************************************************
1 item had failures:
   1 of   6 in sage.geometry.hyperbolic_space.hyperbolic_geodesic.HyperbolicGeodesicHM._plot_vertices
    [447 tests, 1 failure, 8.67 s]
**********************************************************************
File "src/sage/interacts/test_jupyter.rst", line 120, in sage.interacts.test_jupyter
Failed example:
    test(interacts.calculus.newton_method)
Expected:
    ...Interactive function <function newton_method at ...> with 7 widgets
      title: HTMLText(value='<h2>Newton method</h2>')
      f: EvalText(value='x^2 - 2', description='f', layout=Layout(max_width='81em'))
      c: IntSlider(value=6, description='Start ($x$)', max=10, min=-10)
      d: IntSlider(value=3, description='$10^{-d}$ precision', max=16, min=1)
      maxn: IntSlider(value=10, description='max iterations', max=15)
      interval: IntRangeSlider(value=(0, 6), description='Interval', max=10, min=-10)
      list_steps: Checkbox(value=False, description='List steps')
    \(\text{Precision } 2h = 0.001\)
    \({c = }1.4142141576301823\)
    \({f(c) = }1.6836416460996873 \times 10^{-06}\)
    \(6 \text{ iterations}\)
Got:
    <CSI-2K>
<CSI-2K>
\(\text{Precision } 2h = 0.0010000000000000002\)
    \({c = }1.4142141576301823\)
    \({f(c) = }1.6836416460996873 \times 10^{-06}\)
    \(6 \text{ iterations}\)
    Interactive function <function newton_method at 0xa6a181d8> with 7 widgets
      title: HTMLText(value='<h2>Newton method</h2>')
      f: EvalText(value='x^2 - 2', description='f', layout=Layout(max_width='81em'))
      c: IntSlider(value=6, description='Start ($x$)', max=10, min=-10)
      d: IntSlider(value=3, description='$10^{-d}$ precision', max=16, min=1)
      maxn: IntSlider(value=10, description='max iterations', max=15)
      interval: IntRangeSlider(value=(0, 6), description='Interval', max=10, min=-10)
      list_steps: Checkbox(value=False, description='List steps')
    \(\text{Precision } 2h = 0.0010000000000000002\)
    \({c = }1.4142141576301823\)
    \({f(c) = }1.6836416460996873 \times 10^{-06}\)
    \(6 \text{ iterations}\)
**********************************************************************
1 item had failures:
   1 of  30 in sage.interacts.test_jupyter
    [29 tests, 1 failure, 70.30 s]
**********************************************************************
File "src/sage/matrix/matrix_double_dense.pyx", line 1624, in sage.matrix.matrix_double_dense.Matrix_double_dense.right_eigenvectors
Failed example:
    spectrum[3]  # tol 1e-13
Expected:
    (-1.0, [(1.0, -0.5, 2.0, 0.5)], 1)
Got:
    (-1.0000000000000828,
     [(1.0, -0.4999999999999238, 1.9999999999997218, 0.4999999999999161)],
     1)
Tolerance exceeded in 3 of 6:
    -0.5 vs -0.4999999999999238, tolerance 2e-13 > 1e-13
    2.0 vs 1.9999999999997218, tolerance 2e-13 > 1e-13
    0.5 vs 0.4999999999999161, tolerance 2e-13 > 1e-13
**********************************************************************
1 item had failures:
   1 of  24 in sage.matrix.matrix_double_dense.Matrix_double_dense.right_eigenvectors
    [611 tests, 1 failure, 0.92 s]
**********************************************************************
File "src/sage/matrix/matrix_symbolic_dense.pyx", line 441, in sage.matrix.matrix_symbolic_dense.Matrix_symbolic_dense.exp
Failed example:
    exp(matrix(SR, [[1.2, 5.6], [3,4]])).change_ring(RDF)  # rel tol 1e-15
Expected:
    [ 346.5574872980695  661.7345909344504]
    [354.50067371488416  677.4247827652946]
Got:
    [346.55748729806896  661.7345909344492]
    [354.50067371488353  677.4247827652937]
Tolerance exceeded in 4 of 4:
    346.5574872980695 vs 346.55748729806896, tolerance 2e-15 > 1e-15
    661.7345909344504 vs 661.7345909344492, tolerance 2e-15 > 1e-15
    354.50067371488416 vs 354.50067371488353, tolerance 2e-15 > 1e-15
    677.4247827652946 vs 677.4247827652937, tolerance 2e-15 > 1e-15
**********************************************************************
1 item had failures:
   1 of  17 in sage.matrix.matrix_symbolic_dense.Matrix_symbolic_dense.exp
    [224 tests, 1 failure, 5.48 s]
**********************************************************************
File "src/sage/modules/free_module_element.pyx", line 1687, in sage.modules.free_module_element.FreeModuleElement.norm
Failed example:
    v.norm(5)
Expected:
    3.077384885394063
Got:
    3.0773848853940633
**********************************************************************
1 item had failures:
   1 of  24 in sage.modules.free_module_element.FreeModuleElement.norm
    [1081 tests, 1 failure, 5.08 s]
**********************************************************************
File "src/sage/modules/vector_real_double_dense.pyx", line 7, in sage.modules.vector_real_double_dense
Failed example:
    v
Expected:
    (1.0, 3.141592653589793, 1.414213562373095)
Got:
    (1.0, 3.141592653589793, 1.4142135623730951)
**********************************************************************
File "src/sage/modules/vector_real_double_dense.pyx", line 14, in sage.modules.vector_real_double_dense
Failed example:
    v
Expected:
    (5.0, 3.141592653589793, 1.414213562373095)
Got:
    (5.0, 3.141592653589793, 1.4142135623730951)
**********************************************************************
1 item had failures:
   2 of   8 in sage.modules.vector_real_double_dense
    [19 tests, 2 failures, 10.89 s]
**********************************************************************
File "src/sage/rings/complex_double.pyx", line 1136, in sage.rings.complex_double.ComplexDoubleElement._latex_
Failed example:
    z._latex_()
Expected:
    '-6.443164690985956 \\times 10^{34} - 6.113241307762409 \\times 10^{34}i'
Got:
    '-6.443164690985963 \\times 10^{34} - 6.113241307762415 \\times 10^{34}i'
**********************************************************************
File "src/sage/rings/complex_double.pyx", line 1685, in sage.rings.complex_double.ComplexDoubleElement._pow_
Failed example:
    CDF(-0.26319743704743886) ^ -2
Expected:
    14.435661446561994
Got:
    14.435661446561992
**********************************************************************
File "src/sage/rings/complex_double.pyx", line 1936, in sage.rings.complex_double.ComplexDoubleElement.arccos
Failed example:
    CDF(1,1).arccos()
Expected:
    0.9045568943023814 - 1.0612750619050357*I
Got:
    0.9045568943023815 - 1.0612750619050357*I
**********************************************************************
File "src/sage/rings/complex_double.pyx", line 2115, in sage.rings.complex_double.ComplexDoubleElement.arccosh
Failed example:
    CDF(1,1).arccosh()
Expected:
    1.0612750619050357 + 0.9045568943023814*I
Got:
    1.0612750619050357 + 0.9045568943023815*I
**********************************************************************
4 items had failures:
   1 of   4 in sage.rings.complex_double.ComplexDoubleElement._latex_
   1 of  19 in sage.rings.complex_double.ComplexDoubleElement._pow_
   1 of   2 in sage.rings.complex_double.ComplexDoubleElement.arccos
   1 of   2 in sage.rings.complex_double.ComplexDoubleElement.arccosh
    [341 tests, 4 failures, 0.27 s]
**********************************************************************
File "src/sage/rings/complex_mpc.pyx", line 1524, in sage.rings.complex_mpc.MPComplexNumber.__abs__
Failed example:
    float(sqrt(2^2 + 1^1))
Expected:
    2.23606797749979
Got:
    2.2360679774997894
**********************************************************************
1 item had failures:
   1 of  10 in sage.rings.complex_mpc.MPComplexNumber.__abs__
    [410 tests, 1 failure, 0.21 s]
**********************************************************************
File "src/sage/rings/complex_mpfr.pyx", line 1885, in sage.rings.complex_mpfr.ComplexNumber.__abs__
Failed example:
    float(sqrt(2^2 + 1^1))
Expected:
    2.23606797749979
Got:
    2.2360679774997894
**********************************************************************
1 item had failures:
   1 of   9 in sage.rings.complex_mpfr.ComplexNumber.__abs__
    [539 tests, 1 failure, 1.78 s]
**********************************************************************
File "src/sage/rings/number_field/number_field_element.pyx", line 1640, in sage.rings.number_field.number_field_element.NumberFieldElement.is_norm
Failed example:
    t = (-a).is_norm(L, element=True); t
Expected:
    (True, -b^3 - 1)
Got:
    (True, b^3 - 1)
**********************************************************************
File "src/sage/rings/number_field/number_field_element.pyx", line 1755, in sage.rings.number_field.number_field_element.NumberFieldElement._rnfisnorm
Failed example:
    t = (-a)._rnfisnorm(L); t
Expected:
    (-b^3 - 1, 1)
Got:
    (b^3 - 1, 1)
**********************************************************************
File "src/sage/rings/number_field/number_field_element.pyx", line 1759, in sage.rings.number_field.number_field_element.NumberFieldElement._rnfisnorm
Failed example:
    t = K(3)._rnfisnorm(L); t
Expected:
    (b^3 + a*b^2 + a^2*b - 1, 3*a^2 - 3*a + 6)
Got:
    (-b^3 + a*b^2 - a^2*b - 1, 3*a^2 - 3*a + 6)
**********************************************************************
2 items had failures:
   2 of  27 in sage.rings.number_field.number_field_element.NumberFieldElement._rnfisnorm
   1 of  28 in sage.rings.number_field.number_field_element.NumberFieldElement.is_norm
    [1168 tests, 3 failures, 14.02 s]
doctest:warning
  File "/var/lib/buildbot/worker/sage_git/build/local/var/lib/sage/venv-python3.10.8/lib/python3.10/threading.py", line 973, in _bootstrap
    self._bootstrap_inner()
  File "/var/lib/buildbot/worker/sage_git/build/local/var/lib/sage/venv-python3.10.8/lib/python3.10/threading.py", line 1002, in _bootstrap_inner
    self._set_tstate_lock()
  File "/var/lib/buildbot/worker/sage_git/build/local/var/lib/sage/venv-python3.10.8/lib/python3.10/threading.py", line 991, in _set_tstate_lock
    self._tstate_lock = _set_sentinel()
  File "/var/lib/buildbot/worker/sage_git/build/local/var/lib/sage/venv-python3.10.8/lib/python3.10/warnings.py", line 109, in _showwarnmsg
    sw(msg.message, msg.category, msg.filename, msg.lineno,
:
RuntimeWarning: cypari2 leaked 4032445012 bytes on the PARI stack
**********************************************************************
File "src/sage/rings/real_double_element_gsl.pyx", line 154, in sage.rings.real_double_element_gsl.RealDoubleElement_gsl._pow_int
Failed example:
    base._pow_int(2^57)
Expected:
    78962960182680.42
Got:
    78962960182680.27
**********************************************************************
File "src/sage/rings/real_double_element_gsl.pyx", line 156, in sage.rings.real_double_element_gsl.RealDoubleElement_gsl._pow_int
Failed example:
    base._pow_int(2^57 + 1)
Expected:
    78962960182680.42
Got:
    78962960182680.27
**********************************************************************
File "src/sage/rings/real_double_element_gsl.pyx", line 170, in sage.rings.real_double_element_gsl.RealDoubleElement_gsl._pow_int
Failed example:
    base._pow_int(2^57)
Expected:
    78962960182680.42
Got:
    78962960182680.27
**********************************************************************
File "src/sage/rings/real_double_element_gsl.pyx", line 172, in sage.rings.real_double_element_gsl.RealDoubleElement_gsl._pow_int
Failed example:
    base._pow_int(2^57 + 1)
Expected:
    -78962960182680.42
Got:
    -78962960182680.27
**********************************************************************
File "src/sage/rings/real_double_element_gsl.pyx", line 195, in sage.rings.real_double_element_gsl.RealDoubleElement_gsl._pow_long
Failed example:
    base ^ (2^57)
Expected:
    78962960182680.42
Got:
    78962960182680.27
**********************************************************************
File "src/sage/rings/real_double_element_gsl.pyx", line 197, in sage.rings.real_double_element_gsl.RealDoubleElement_gsl._pow_long
Failed example:
    base ^ RDF(2^57)
Expected:
    78962960182680.42
Got:
    78962960182680.27
**********************************************************************
File "src/sage/rings/real_double_element_gsl.pyx", line 384, in sage.rings.real_double_element_gsl.RealDoubleElement_gsl.exp
Failed example:
    a = r.exp(); a
Expected:
    106588847274864.47
Got:
    106588847274864.22
**********************************************************************
File "src/sage/rings/real_double_element_gsl.pyx", line 392, in sage.rings.real_double_element_gsl.RealDoubleElement_gsl.exp
Failed example:
    r.exp()
Expected:
    9.381844588498685e-15
Got:
    9.381844588498707e-15
**********************************************************************
File "src/sage/rings/real_double_element_gsl.pyx", line 418, in sage.rings.real_double_element_gsl.RealDoubleElement_gsl.exp2
Failed example:
    r.exp2()
Expected:
    4294967295.9999967
Got:
    4294967296.0
**********************************************************************
File "src/sage/rings/real_double_element_gsl.pyx", line 424, in sage.rings.real_double_element_gsl.RealDoubleElement_gsl.exp2
Failed example:
    r.exp2()
Expected:
    1.8911724825302065e-10
Got:
    1.8911724825302072e-10
**********************************************************************
File "src/sage/rings/real_double_element_gsl.pyx", line 445, in sage.rings.real_double_element_gsl.RealDoubleElement_gsl.exp10
Failed example:
    r.exp10()
Expected:
    1.0000000000000069e+32
Got:
    1.0000000000000062e+32
**********************************************************************
File "src/sage/rings/real_double_element_gsl.pyx", line 451, in sage.rings.real_double_element_gsl.RealDoubleElement_gsl.exp10
Failed example:
    r.exp10()
Expected:
    5.011872336272702e-33
Got:
    5.011872336272695e-33
**********************************************************************
File "src/sage/rings/real_double_element_gsl.pyx", line 651, in sage.rings.real_double_element_gsl.RealDoubleElement_gsl.acosh
Failed example:
    i = q.cosh(); i
Expected:
    2.5091784786580567
Got:
    2.509178478658056
**********************************************************************
File "src/sage/rings/real_double_element_gsl.pyx", line 665, in sage.rings.real_double_element_gsl.RealDoubleElement_gsl.arcsinh
Failed example:
    i = q.sinh(); i
Expected:
    2.3012989023072947
Got:
    2.3012989023072943
**********************************************************************
File "src/sage/rings/real_double_element_gsl.pyx", line 679, in sage.rings.real_double_element_gsl.RealDoubleElement_gsl.arctanh
Failed example:
    i = q.tanh(); i
Expected:
    0.9171523356672744
Got:
    0.9171523356672743
**********************************************************************
File "src/sage/rings/real_double_element_gsl.pyx", line 681, in sage.rings.real_double_element_gsl.RealDoubleElement_gsl.arctanh
Failed example:
    i.arctanh() - q  # rel tol 1
Expected:
    4.440892098500626e-16
Got:
    -4.440892098500626e-16
Tolerance exceeded:
    4.440892098500626e-16 vs -4.440892098500626e-16, tolerance 3e0 > 1e0
**********************************************************************
File "src/sage/rings/real_double_element_gsl.pyx", line 692, in sage.rings.real_double_element_gsl.RealDoubleElement_gsl.sech
Failed example:
    RDF(pi).sech()
Expected:
    0.08626673833405443
Got:
    0.08626673833405446
**********************************************************************
File "src/sage/rings/real_double_element_gsl.pyx", line 694, in sage.rings.real_double_element_gsl.RealDoubleElement_gsl.sech
Failed example:
    CDF(pi).sech()
Expected:
    0.08626673833405443
Got:
    0.08626673833405446
**********************************************************************
File "src/sage/rings/real_double_element_gsl.pyx", line 705, in sage.rings.real_double_element_gsl.RealDoubleElement_gsl.csch
Failed example:
    RDF(pi).csch()
Expected:
    0.08658953753004694
Got:
    0.08658953753004697
**********************************************************************
10 items had failures:
   4 of  23 in sage.rings.real_double_element_gsl.RealDoubleElement_gsl._pow_int
   2 of   8 in sage.rings.real_double_element_gsl.RealDoubleElement_gsl._pow_long
   1 of   4 in sage.rings.real_double_element_gsl.RealDoubleElement_gsl.acosh
   1 of   4 in sage.rings.real_double_element_gsl.RealDoubleElement_gsl.arcsinh
   2 of   4 in sage.rings.real_double_element_gsl.RealDoubleElement_gsl.arctanh
   1 of   3 in sage.rings.real_double_element_gsl.RealDoubleElement_gsl.csch
   2 of   9 in sage.rings.real_double_element_gsl.RealDoubleElement_gsl.exp
   2 of   7 in sage.rings.real_double_element_gsl.RealDoubleElement_gsl.exp10
   2 of   7 in sage.rings.real_double_element_gsl.RealDoubleElement_gsl.exp2
   2 of   3 in sage.rings.real_double_element_gsl.RealDoubleElement_gsl.sech
    [145 tests, 19 failures, 0.06 s]
**********************************************************************
File "src/sage/stats/hmm/hmm.pyx", line 596, in sage.stats.hmm.hmm.DiscreteHiddenMarkovModel._forward_scale
Failed example:
    m._forward_scale(stats.IntList([0,1]*10))
Expected:
    -14.378663512219454
Got:
    -14.378663512219456
**********************************************************************
File "src/sage/stats/hmm/hmm.pyx", line 601, in sage.stats.hmm.hmm.DiscreteHiddenMarkovModel._forward_scale
Failed example:
    m.log_likelihood(stats.IntList([0,1]*10))
Expected:
    -14.378663512219454
Got:
    -14.378663512219456
**********************************************************************
1 item had failures:
   2 of   8 in sage.stats.hmm.hmm.DiscreteHiddenMarkovModel._forward_scale
    [121 tests, 2 failures, 0.67 s]
**********************************************************************
File "src/sage/structure/element.pyx", line 2016, in sage.structure.element.Element.__pow__
Failed example:
    complex(1,2)**(1/2)
Expected:
    (1.272019649514069+0.786151377757423...j)
Got:
    (1.2720196495140692+0.7861513777574234j)
**********************************************************************
1 item had failures:
   1 of  24 in sage.structure.element.Element.__pow__
    [756 tests, 1 failure, 12.71 s]
**********************************************************************
File "src/sage/symbolic/expression.pyx", line 1659, in sage.symbolic.expression.Expression._convert
Failed example:
    f._convert({'parent':RDF})
Expected:
    -1.40006081533995
Got:
    -1.4000608153399503
**********************************************************************
File "src/sage/symbolic/expression.pyx", line 7581, in sage.symbolic.expression.Expression.polynomial
Failed example:
    f.polynomial(CDF)   # abs tol 5e-16
Expected:
    54.598150033144236*x^4 - 20.085536923187668*I*x^3 - 7.38905609893065*x^2 + 2.718281828459045*I*x + 1.0
Got:
    54.598150033144236*x^4 - 20.08553692318767*I*x^3 - 7.38905609893065*x^2 + 2.718281828459045*I*x + 1.0
Tolerance exceeded in 1 of 8:
    - 20.085536923187668 vs - 20.08553692318767, tolerance 3e-15 > 5e-16
**********************************************************************
2 items had failures:
   1 of  18 in sage.symbolic.expression.Expression._convert
   1 of  31 in sage.symbolic.expression.Expression.polynomial
    [3077 tests, 2 failures, 38.85 s]
**********************************************************************
File "src/sage_setup/autogen/interpreters/specs/cdf.py", line 57, in sage_setup.autogen.interpreters.specs.cdf.CDFInterpreter.__init__
Failed example:
    f(CDF(1+2j))  # rel tol 4e-16
Expected:
    -10391778.999999996 + 3349659.499999962*I
Got:
    -10391779.000000013 + 3349659.4999999646*I
Tolerance exceeded in 2 of 2:
    -10391778.999999996 vs -10391779.000000013, tolerance 2e-15 > 4e-16
    + 3349659.499999962 vs + 3349659.4999999646, tolerance 8e-16 > 4e-16
**********************************************************************
1 item had failures:
   1 of  20 in sage_setup.autogen.interpreters.specs.cdf.CDFInterpreter.__init__
    [19 tests, 1 failure, 0.08 s]
----------------------------------------------------------------------
sage -t --long --random-seed=0 src/sage/calculus/calculus.py  # 3 doctests failed
sage -t --long --random-seed=0 src/sage/calculus/wester.py  # 1 doctest failed
sage -t --long --random-seed=0 src/sage/categories/finite_coxeter_groups.py  # 1 doctest failed
sage -t --long --random-seed=0 src/sage/dynamics/complex_dynamics/mandel_julia_helper.pyx  # 3 doctests failed
sage -t --long --random-seed=0 src/sage/functions/log.py  # 2 doctests failed
sage -t --long --random-seed=0 src/sage/functions/trig.py  # 1 doctest failed
sage -t --long --random-seed=0 src/sage/geometry/hyperbolic_space/hyperbolic_geodesic.py  # 1 doctest failed
sage -t --long --random-seed=0 src/sage/interacts/test_jupyter.rst  # 1 doctest failed
sage -t --long --random-seed=0 src/sage/matrix/matrix_double_dense.pyx  # 1 doctest failed
sage -t --long --random-seed=0 src/sage/matrix/matrix_symbolic_dense.pyx  # 1 doctest failed
sage -t --long --random-seed=0 src/sage/modules/free_module_element.pyx  # 1 doctest failed
sage -t --long --random-seed=0 src/sage/modules/vector_real_double_dense.pyx  # 2 doctests failed
sage -t --long --random-seed=0 src/sage/rings/complex_double.pyx  # 4 doctests failed
sage -t --long --random-seed=0 src/sage/rings/complex_mpc.pyx  # 1 doctest failed
sage -t --long --random-seed=0 src/sage/rings/complex_mpfr.pyx  # 1 doctest failed
sage -t --long --random-seed=0 src/sage/rings/number_field/number_field_element.pyx  # 3 doctests failed
sage -t --long --random-seed=0 src/sage/rings/real_double_element_gsl.pyx  # 19 doctests failed
sage -t --long --random-seed=0 src/sage/stats/hmm/hmm.pyx  # 2 doctests failed
sage -t --long --random-seed=0 src/sage/structure/element.pyx  # 1 doctest failed
sage -t --long --random-seed=0 src/sage/symbolic/expression.pyx  # 2 doctests failed
sage -t --long --random-seed=0 src/sage_setup/autogen/interpreters/specs/cdf.py  # 1 doctest failed
----------------------------------------------------------------------
Total time for all tests: 7092.1 seconds
    cpu time: 12138.2 seconds
    cumulative wall time: 12442.3 seconds

Full log: http://build.sagemath.org/#/builders/47/builds/14/steps/14/logs/stdio

comment:103 Changed 7 weeks ago by vdelecroix

Many of these numerical noises do not involve PARI/GP at all!

comment:104 Changed 7 weeks ago by dimpase

Indeed, e.g.

File "src/sage/calculus/calculus.py", line 772, in sage.calculus.calculus.?
Failed example:
    float(f)
Expected:
    -480.0
Got:
    -2336.0

and ensuing error in this file have nothing to do with Pari. Are we still supporting 32-bit seriously? Indeed, these 32-bit errors should have been caught elsewhere.

I wonder whether Pari 2.15.1 passes its selftests on 32-bit, too.

comment:105 Changed 7 weeks ago by tornaria

Fix: https://github.com/void-linux/void-packages/blob/master/srcpkgs/pari/patches/float32.patch

All tests pass on void linux i686 (using that patch on pari).

comment:106 Changed 7 weeks ago by tornaria

BTW, I've just submitted a report upstream to the pari bug tracker, which I had neglected to do before.

comment:107 in reply to:  103 ; Changed 7 weeks ago by vbraun

Replying to Vincent Delecroix:

Many of these numerical noises do not involve PARI/GP at all!

tests run fine without this ticket tho...

comment:108 in reply to:  107 ; Changed 7 weeks ago by dimpase

Replying to Volker Braun:

Replying to Vincent Delecroix:

Many of these numerical noises do not involve PARI/GP at all!

tests run fine without this ticket tho...

The offending Pari commit, reverted by Gonzalo's patch, is not in 2.13.3, but is in 2.15.1. Maybe it flips FPU switches somewhere...

comment:109 in reply to:  108 Changed 7 weeks ago by tornaria

Replying to Dima Pasechnik:

Replying to Volker Braun:

Replying to Vincent Delecroix:

Many of these numerical noises do not involve PARI/GP at all!

tests run fine without this ticket tho...

The offending Pari commit, reverted by Gonzalo's patch, is not in 2.13.3, but is in 2.15.1. Maybe it flips FPU switches somewhere...

Precisely. The 387 fpu has a switch to choose between 64-bit (double) and 80-bit (long double) arithmetic. The problem is that transcendental functions depend on 80 bit arithmetic to give accurate 64 bit results 🤦‍♂️

Just linking to pari (without even initializing it) will affect a program, as demonstrated in the test program in my commit message (https://github.com/void-linux/void-packages/blob/master/srcpkgs/pari/patches/float32.patch).

Maybe it is possible to override the -mpc64 setting in pari library by explicitly adding -mpc80 to the linking step of sage. Or adding code in sage init to explicitly initialize the FPU to a safe mode.

Be warned that removing the -mpc64 flag in pari might result in some numerical differences on pari itself due to 80 bit precission. In void linux we compile pari with -ffloat-store which avoids this issue.

comment:111 Changed 7 weeks ago by dimpase

should we proceed with the Gonzalo's patch ?

the upstream is clearly wrong in applying this change unconditionally, IMHO

comment:112 Changed 6 weeks ago by dimpase

Upstream provided a fix on ​https://pari.math.u-bordeaux.fr/cgi-bin/bugreport.cgi?bug=2435, let's test it.

comment:113 Changed 6 weeks ago by git

Commit: 364f6d1ae19d7cd620a4151e1a51d2e4223c1441847cc1a8322ba4546a6e7ceeef6a8642c270bf79

Branch pushed to git repo; I updated commit sha1. New commits:

847cc1atry out 32-bit fix from upstream

comment:114 Changed 6 weeks ago by dimpase

Status: needs_workneeds_review

32-bit-capable, please try this out

comment:115 in reply to:  114 Changed 6 weeks ago by cremona

Replying to Dima Pasechnik:

32-bit-capable, please try this out

I found an old laptop, last seriously used in 2008, it has ubuntu 10.04 installed (!) and a working Sage 4.7. Must be 32-bit. I wonder how much work it would be to get it into a state in which I could try building a new Sage (for testing things like this)?

comment:116 Changed 6 weeks ago by dimpase

probably ubuntu 10 is way too old even for stand alone Pari - but you can try (building/testing Pari 2.15)

comment:117 in reply to:  116 Changed 6 weeks ago by cremona

Replying to Dima Pasechnik:

probably ubuntu 10 is way too old even for stand alone Pari - but you can try (building/testing Pari 2.15)

Sorry, it kept on crashing when I tried to install anything. I'm not sure it's worth it.

comment:118 Changed 5 weeks ago by git

Commit: 847cc1a8322ba4546a6e7ceeef6a8642c270bf79e3e74ef7d2b54a96118a53427b43ef6515b72859

Branch pushed to git repo; I updated commit sha1. This was a forced push. Last 10 new commits:

ce306b2Revert "Fix one more test in docs"
a795cf1fix call to pari genus2red
66d09f6fix doc associated to genus 2 reduction
c974999Re-fix test that was moved to a different file in 9.8.beta1
9d2dcd4fix doctest if fqf_orthogonal
0cb6ba9Require pari>=2.15, remove old bug test
72d8024correct minimal version of pari
21851dbFix 9.8.beta1 rebase
0bfcb1ebump version to 2.15.1
e3e74eftry out 32-bit fix from upstream

comment:119 Changed 5 weeks ago by dimpase

rebased over the latest beta

comment:120 Changed 5 weeks ago by mkoeppe

debian-buster-i386-minimal (https://github.com/mkoeppe/sage/actions/runs/3813720548/jobs/6501916887):

sage -t --random-seed=304199016987563679993262730039611175926 src/sage/parallel/decorate.py  # 1 doctest failed
sage -t --random-seed=304199016987563679993262730039611175926 src/sage/rings/number_field/number_field_element.pyx  # 3 doctests failed
sage -t --random-seed=304199016987563679993262730039611175926 src/sage/rings/number_field/number_field_ideal_rel.py  # 1 doctest failed
sage -t --random-seed=304199016987563679993262730039611175926 src/sage/rings/qqbar.py  # 7 doctests failed

comment:121 Changed 5 weeks ago by mkoeppe

Status: needs_reviewneeds_work

comment:122 Changed 5 weeks ago by dimpase

these seem to be different failures than these from the previous try. This one is a red herring, I think.

2023-01-02T17:09:28.9130459Z File "src/sage/parallel/decorate.py", line 560, in sage.parallel.decorate.fork
2023-01-02T17:09:28.9130748Z Failed example:
2023-01-02T17:09:28.9131128Z     print("this works"); g()                                      # optional - sage.misc.cython
2023-01-02T17:09:28.9131402Z Expected:
2023-01-02T17:09:28.9131605Z     this works...
2023-01-02T17:09:28.9131801Z     <BLANKLINE>
2023-01-02T17:09:28.9132181Z     ------------------------------------------------------------------------
2023-01-02T17:09:28.9132477Z     Unhandled SIG...
2023-01-02T17:09:28.9132841Z     ------------------------------------------------------------------------
2023-01-02T17:09:28.9133153Z     'NO DATA'
2023-01-02T17:09:28.9133348Z Got:
2023-01-02T17:09:28.9133525Z     this works
2023-01-02T17:09:28.9133893Z     ------------------------------------------------------------------------
2023-01-02T17:09:28.9134535Z     /sage/local/var/lib/sage/venv-python3.11.1/lib/python3.11/site-packages/cysignals/signals.cpython-311-i386-linux-gnu.so(+0x5bb2)[0xf6365bb2]
...

but the rest look as if something has changed with signs handling somewhere in Pari

2023-01-02T17:17:20.0394427Z sage -t --random-seed=304199016987563679993262730039611175926 src/sage/rings/number_field/number_field_element.pyx
2023-01-02T17:17:20.0394753Z **********************************************************************
2023-01-02T17:17:20.0395167Z File "src/sage/rings/number_field/number_field_element.pyx", line 1640, in sage.rings.number_field.number_field_element.NumberFieldElement.is_norm
2023-01-02T17:17:20.0395544Z Failed example:
2023-01-02T17:17:20.0395830Z     t = (-a).is_norm(L, element=True); t
2023-01-02T17:17:20.0396038Z Expected:
2023-01-02T17:17:20.0396266Z     (True, -b^3 - 1)
2023-01-02T17:17:20.0396463Z Got:
2023-01-02T17:17:20.0396660Z     (True, b^3 - 1)
2023-01-02T17:17:20.0396885Z **********************************************************************
2023-01-02T17:17:20.0397311Z File "src/sage/rings/number_field/number_field_element.pyx", line 1755, in sage.rings.number_field.number_field_element.NumberFieldElement._rnfisnorm
2023-01-02T17:17:20.0397686Z Failed example:
2023-01-02T17:17:20.0397930Z     t = (-a)._rnfisnorm(L); t
2023-01-02T17:17:20.0398136Z Expected:
2023-01-02T17:17:20.0398350Z     (-b^3 - 1, 1)
2023-01-02T17:17:20.0398518Z Got:
2023-01-02T17:17:20.0398724Z     (b^3 - 1, 1)
2023-01-02T17:17:20.0398951Z **********************************************************************
2023-01-02T17:17:20.0399351Z File "src/sage/rings/number_field/number_field_element.pyx", line 1759, in sage.rings.number_field.number_field_element.NumberFieldElement._rnfisnorm
2023-01-02T17:17:20.0399721Z Failed example:
2023-01-02T17:17:20.0399929Z     t = K(3)._rnfisnorm(L); t
2023-01-02T17:17:20.0400120Z Expected:
2023-01-02T17:17:20.0400394Z     (b^3 + a*b^2 + a^2*b - 1, 3*a^2 - 3*a + 6)
2023-01-02T17:17:20.0400605Z Got:
2023-01-02T17:17:20.0400854Z     (-b^3 + a*b^2 - a^2*b - 1, 3*a^2 - 3*a + 6)
2023-01-02T17:17:20.0401102Z **********************************************************************
2023-01-02T17:17:20.0401331Z 2 items had failures:
2023-01-02T17:17:20.0401638Z    2 of  27 in sage.rings.number_field.number_field_element.NumberFieldElement._rnfisnorm
2023-01-02T17:17:20.0402059Z    1 of  28 in sage.rings.number_field.number_field_element.NumberFieldElement.is_norm
2023-01-02T17:17:20.0402383Z     [1167 tests, 3 failures, 20.14 s]

again something with the norm of algebraic numbers:

2023-01-02T17:17:20.0407122Z File "src/sage/rings/number_field/number_field_ideal_rel.py", line 221, in sage.rings.number_field.number_field_ideal_rel.NumberFieldFractionalIdeal_rel._from_absolute_ideal
2023-01-02T17:17:20.0407519Z Failed example:
2023-01-02T17:17:20.0407730Z     J.absolute_ideal()
2023-01-02T17:17:20.0407934Z Expected:
2023-01-02T17:17:20.0408389Z     Fractional ideal (22584817, -1473/812911*a^5 + 8695/4877466*a^4 - 1308209/4877466*a^3 + 117415/443406*a^2 - 22963264/2438733*a - 13721081784272/2438733)
2023-01-02T17:17:20.0408653Z Got:
2023-01-02T17:17:20.0409104Z     Fractional ideal (22584817, -4417/2438733*a^5 - 2867/1625822*a^4 - 1307249/4877466*a^3 - 112151/443406*a^2 - 22904674/2438733*a - 13720435234111/2438733)
2023-01-02T17:17:20.0409412Z **********************************************************************
2023-01-02T17:17:20.0409620Z 1 item had failures:
2023-01-02T17:17:20.0409977Z    1 of   9 in sage.rings.number_field.number_field_ideal_rel.NumberFieldFractionalIdeal_rel._from_absolute_ideal
2023-01-02T17:17:20.0410331Z     [233 tests, 1 failure, 1.43 s]

no idea about these:

2023-01-02T17:21:09.2828507Z sage -t --random-seed=304199016987563679993262730039611175926 src/sage/rings/qqbar.py
2023-01-02T17:21:09.2828799Z **********************************************************************
2023-01-02T17:21:09.2829146Z File "src/sage/rings/qqbar.py", line 2659, in sage.rings.qqbar.number_field_elements_from_algebraics
2023-01-02T17:21:09.2829457Z Failed example:
2023-01-02T17:21:09.2829646Z     nf
2023-01-02T17:21:09.2829813Z Expected:
2023-01-02T17:21:09.2830162Z     Number Field in a with defining polynomial y^24 - 6*y^23 ...- 9*y^2 + 1
2023-01-02T17:21:09.2830444Z       with a = 0.2598679? + 0.0572892?*I
2023-01-02T17:21:09.2830630Z Got:
2023-01-02T17:21:09.2831197Z     Number Field in a with defining polynomial y^24 - 9*y^22 + 135*y^20 - 720*y^18 + 1821*y^16 - 3015*y^14 + 3974*y^12 - 3015*y^10 + 1821*y^8 - 720*y^6 + 135*y^4 - 9*y^2 + 1 with a = -0.2368370943? - 0.2078201084?*I
2023-01-02T17:21:09.2831560Z **********************************************************************
2023-01-02T17:21:09.2831903Z File "src/sage/rings/qqbar.py", line 7860, in sage.rings.qqbar.ANExtensionElement.neg
2023-01-02T17:21:09.2832200Z Failed example:
2023-01-02T17:21:09.2832395Z     b.neg(a)
2023-01-02T17:21:09.2832582Z Expected:
2023-01-02T17:21:09.2832974Z     -1/3*a^3 + 1/3*a^2 - a - 1 where a^4 - 2*a^3 + a^2 + 6*a + 3 = 0 and a in 1.724744871391589? + 1.573132184970987?*I
2023-01-02T17:21:09.2833232Z Got:
2023-01-02T17:21:09.2833631Z     1/3*a^3 - 2/3*a^2 + 4/3*a - 2 where a^4 - 2*a^3 + a^2 - 6*a + 9 = 0 and a in -0.7247448713915890? - 1.573132184970987?*I
2023-01-02T17:21:09.2833921Z **********************************************************************
2023-01-02T17:21:09.2834264Z File "src/sage/rings/qqbar.py", line 7862, in sage.rings.qqbar.ANExtensionElement.neg
2023-01-02T17:21:09.2834937Z Failed example:
2023-01-02T17:21:09.2835139Z     b.neg("ham spam and eggs")
2023-01-02T17:21:09.2835348Z Expected:
2023-01-02T17:21:09.2835750Z     -1/3*a^3 + 1/3*a^2 - a - 1 where a^4 - 2*a^3 + a^2 + 6*a + 3 = 0 and a in 1.724744871391589? + 1.573132184970987?*I
2023-01-02T17:21:09.2836007Z Got:
2023-01-02T17:21:09.2836389Z     1/3*a^3 - 2/3*a^2 + 4/3*a - 2 where a^4 - 2*a^3 + a^2 - 6*a + 9 = 0 and a in -0.7247448713915890? - 1.573132184970987?*I
2023-01-02T17:21:09.2836797Z **********************************************************************
2023-01-02T17:21:09.2837156Z File "src/sage/rings/qqbar.py", line 7878, in sage.rings.qqbar.ANExtensionElement.invert
2023-01-02T17:21:09.2837461Z Failed example:
2023-01-02T17:21:09.2837663Z     b.invert(a)
2023-01-02T17:21:09.2837853Z Expected:
2023-01-02T17:21:09.2838246Z     -7/3*a^3 + 19/3*a^2 - 7*a - 9 where a^4 - 2*a^3 + a^2 + 6*a + 3 = 0 and a in 1.724744871391589? + 1.573132184970987?*I
2023-01-02T17:21:09.2838506Z Got:
2023-01-02T17:21:09.2838904Z     7/3*a^3 - 2/3*a^2 + 4/3*a - 12 where a^4 - 2*a^3 + a^2 - 6*a + 9 = 0 and a in -0.7247448713915890? - 1.573132184970987?*I
2023-01-02T17:21:09.2839200Z **********************************************************************
2023-01-02T17:21:09.2839543Z File "src/sage/rings/qqbar.py", line 7880, in sage.rings.qqbar.ANExtensionElement.invert
2023-01-02T17:21:09.2839859Z Failed example:
2023-01-02T17:21:09.2840082Z     b.invert("ham spam and eggs")
2023-01-02T17:21:09.2840282Z Expected:
2023-01-02T17:21:09.2840681Z     -7/3*a^3 + 19/3*a^2 - 7*a - 9 where a^4 - 2*a^3 + a^2 + 6*a + 3 = 0 and a in 1.724744871391589? + 1.573132184970987?*I
2023-01-02T17:21:09.2840934Z Got:
2023-01-02T17:21:09.2841314Z     7/3*a^3 - 2/3*a^2 + 4/3*a - 12 where a^4 - 2*a^3 + a^2 - 6*a + 9 = 0 and a in -0.7247448713915890? - 1.573132184970987?*I
2023-01-02T17:21:09.2841607Z **********************************************************************
2023-01-02T17:21:09.2841966Z File "src/sage/rings/qqbar.py", line 7896, in sage.rings.qqbar.ANExtensionElement.conjugate
2023-01-02T17:21:09.2842292Z Failed example:
2023-01-02T17:21:09.2842477Z     b.conjugate(a)
2023-01-02T17:21:09.2842672Z Expected:
2023-01-02T17:21:09.2843064Z     1/3*a^3 - 1/3*a^2 + a + 1 where a^4 - 2*a^3 + a^2 + 6*a + 3 = 0 and a in 1.724744871391589? - 1.573132184970987?*I
2023-01-02T17:21:09.2843299Z Got:
2023-01-02T17:21:09.2843696Z     -1/3*a^3 + 2/3*a^2 - 4/3*a + 2 where a^4 - 2*a^3 + a^2 - 6*a + 9 = 0 and a in -0.7247448713915890? + 1.573132184970987?*I
2023-01-02T17:21:09.2843990Z **********************************************************************
2023-01-02T17:21:27.9889948Z File "src/sage/rings/qqbar.py", line 7898, in sage.rings.qqbar.ANExtensionElement.conjugate
2023-01-02T17:21:27.9890654Z Failed example:
2023-01-02T17:21:28.0009431Z     b.conjugate("ham spam and eggs")
2023-01-02T17:21:28.0009680Z Expected:
2023-01-02T17:21:28.0010307Z     1/3*a^3 - 1/3*a^2 + a + 1 where a^4 - 2*a^3 + a^2 + 6*a + 3 = 0 and a in 1.724744871391589? - 1.573132184970987?*I
2023-01-02T17:21:28.0010587Z Got:
2023-01-02T17:21:28.0010978Z     -1/3*a^3 + 2/3*a^2 - 4/3*a + 2 where a^4 - 2*a^3 + a^2 - 6*a + 9 = 0 and a in -0.7247448713915890? + 1.573132184970987?*I
2023-01-02T17:21:28.0011281Z **********************************************************************
2023-01-02T17:21:28.0011508Z 4 items had failures:
2023-01-02T17:21:28.0011797Z    2 of   7 in sage.rings.qqbar.ANExtensionElement.conjugate
2023-01-02T17:21:28.0012179Z    2 of   7 in sage.rings.qqbar.ANExtensionElement.invert
2023-01-02T17:21:28.0012532Z    2 of   7 in sage.rings.qqbar.ANExtensionElement.neg
2023-01-02T17:21:28.0012881Z    1 of  60 in sage.rings.qqbar.number_field_elements_from_algebraics
2023-01-02T17:21:28.0013161Z     [1629 tests, 7 failures, 31.12 s]

comment:123 Changed 5 weeks ago by cremona

I will check the number field norms diffs (which are probably fine, the solution to Norm(x)=y is not unique, and if the relaive degree is even then Norm(-1)=1 so Norm(-x)=Norm(x)).

I'll also ook at the QQbar ones.

comment:124 Changed 5 weeks ago by cremona

src/sage/rings/number_field/number_field_element.pyx: OK

src/sage/rings/number_field/number_field_ideal_rel.py: it is a bad test. The abolute ideal is an ideal in (the ring of integers of) the absolue field, whose generators are xepressed in terms of a generator of that field, whose name is displayed as 'a' as no names= paramater was given, but a has another meaning and this is confusing. Also the absolute field does not have a unique generator. I think it is simplest not to test how the abolute ideal looks at all.

QQbar next...

comment:125 Changed 5 weeks ago by cremona

src/sage/rings/qqbar.py:

l.2659: I would not display the nf at all, the generator is not unique and each generator has 24 complex embeddings. Or you could put

sage: nf.is_isomorphic(NumberField(x^24 + 27*x^22 + 291*x^20 + 1548*x^18 + 4893*x^16 + 9657*x^14 + 12110*x^12 + 9657*x^10 + 4893*x^8 + 1548*x^6 + 291*
....: x^4 + 27*x^2 + 1,'b'))
True

l.7860: a terrible test of a weird function. The method neg() takes a parameter n which is not used (but is not optional), in the test a is used for the parameter (confusing), and -- worse -- the a which appears in the putput has nothing to do with the identifier a, it is a name chosen internally for some generator.

I think these three methods (neg, invert, conjugate) need attention. The docstring for conjugate() wrongly says it returns the negation, a cut-and-paste error.

Years ago I spent a while improving the doctests in this >8000-line file but gave up after doing quite a lot!

I am willing to make a branch fixing all these except the first one (src/sage/parallel/decorate.py). Should I base that on u/dimpase/packages/pari2151 ?

comment:126 Changed 5 weeks ago by dimpase

Thanks for stepping in, John. Apparently Pari itself has not been changed in https://pari.math.u-bordeaux.fr/cgi-bin/bugreport.cgi?bug=2435 - besides dropping the questionable compiler switch.

Yes, please base your branch (much appreciated!) on the ticket branch.

comment:127 in reply to:  126 Changed 5 weeks ago by cremona

Replying to Dima Pasechnik:

Thanks for stepping in, John. Apparently Pari itself has not been changed in https://pari.math.u-bordeaux.fr/cgi-bin/bugreport.cgi?bug=2435 - besides dropping the questionable compiler switch.

Yes, please base your branch (much appreciated!) on the ticket branch.

OK, building now...

comment:128 Changed 5 weeks ago by cremona

@dimpase, to avoid these errors:

make --no-print-directory pari-SAGE_LOCAL-no-deps
[pari-2.15.2-pre1] Attempting to download package pari-2.15.2-pre1.tar.gz from mirrors
[pari-2.15.2-pre1] https://www.mirrorservice.org/sites/www.sagemath.org/spkg/upstream/pari/pari-2.15.2-pre1.tar.gz
[pari-2.15.2-pre1] [xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx]
[pari-2.15.2-pre1] ERROR [transfer|run:135]: [Errno 404] Not Found: '//www.mirrorservice.org/sites/www.sagemath.org/spkg/upstream/pari/pari-2.15.2-pre1.tar.gz'

what should I do? Put that tarball into my local upstream/ ?

Last edited 3 weeks ago by chapoton (previous) (diff)

comment:129 in reply to:  128 Changed 5 weeks ago by dimpase

Replying to John Cremona:

@dimpase, to avoid these errors:

make --no-print-directory pari-SAGE_LOCAL-no-deps
[pari-2.15.2-pre1] Attempting to download package pari-2.15.2-pre1.tar.gz from mirrors
[pari-2.15.2-pre1] https://www.mirrorservice.org/sites/www.sagemath.org/spkg/upstream/pari/pari-2.15.2-pre1.tar.gz
[pari-2.15.2-pre1] [xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx]
[pari-2.15.2-pre1] ERROR [transfer|run:135]: [Errno 404] Not Found: '//www.mirrorservice.org/sites/www.sagemath.org/spkg/upstream/pari/pari-2.15.2-pre1.tar.gz'

what should I do? Put that tarball into my local upstream/ ?

these errors are OK - but indeed, you can put the tarball into upstream/ to avoid chasing it down.

I also usually edit the mirror list to have just one entry - then these go quick

$ cat upstream/mirror_list
['https://www.mirrorservice.org/sites/www.sagemath.org/']
Last edited 3 weeks ago by chapoton (previous) (diff)

comment:130 Changed 5 weeks ago by cremona

Thanks, that is working. When I saw those errors I assumed that nothing would work, not realising that after these failures it somehow knew to get it from https://pari.math.u-bordeaux.fr/pub/pari/snapshots/pari-2.15.2-pre1.tar.gz

comment:131 Changed 5 weeks ago by dimpase

checksums.ini file has upstream-url field,used to fetch upstream tarball, if it can't be found in the mirrors. This is the default since a recent beta, to always try doing so.

comment:132 Changed 5 weeks ago by cremona

With Dima's branch I get no test failures in the 4 files listed above. Were those test failures on a 32-bit machine? Otherwise I'm not sure what to do now.

comment:133 Changed 5 weeks ago by dimpase

please change the ticket branch to your branch, and set it to needs review. It will get tested by bots then.

comment:134 Changed 5 weeks ago by dimpase

yes, the errors are on a 32-bit machine.

comment:135 Changed 5 weeks ago by dimpase

John, anyhow, if you post an improved as you outlined above branch, we can test it on GitHub actions.

comment:136 in reply to:  135 Changed 5 weeks ago by cremona

Replying to Dima Pasechnik:

John, anyhow, if you post an improved as you outlined above branch, we can test it on GitHub actions.

OK -- so I will revise those tests which fail on 32-bit to make them work better with regard to non-deterministic outputs.

comment:137 Changed 5 weeks ago by cremona

Branch: u/dimpase/packages/pari2151u/cremona/34537
Commit: e3e74ef7d2b54a96118a53427b43ef6515b72859936448968028539453d666e4811fa3e50bd29cce
Status: needs_workneeds_review

I changed all the problematic tests (except for the first one using @fork) in such a way that they test what they should without being affected by non-unique output. I have only tested this on a 64-bit machine.


New commits:

7fe2fc9#34537: make number_field_element tests more robust
852f355#34537: make number_field_ideal_rel tests more robust
9364489#34537: make qqbar tests more robust

comment:138 Changed 5 weeks ago by mkoeppe

On 32bit (using FROM_DOCKER_REPOSITORY=ghcr.io/mkoeppe/sage/ FROM_DOCKER_TAG=9.5-107571-ga6e51e5bfe tox -e docker-debian-buster-i386-minimal-incremental):

./sage -tp --long src/sage/rings
All tests passed!

comment:139 Changed 5 weeks ago by cremona

Can I as a reviewer give this a positive review? The changes I made we're almost all to do tests.

comment:140 Changed 5 weeks ago by cremona

doctests

comment:141 Changed 5 weeks ago by dimpase

Status: needs_reviewpositive_review

yes, positive

comment:142 Changed 4 weeks ago by dimpase

Status: positive_reviewneeds_work

a bit too early - we need to set the URL for the tarball top the released 2.15.2, not to this snapshot (they should be equal though)

comment:143 Changed 4 weeks ago by dimpase

Summary: Upgrade to pari 2.15.1Upgrade to pari 2.15.2

comment:144 Changed 4 weeks ago by dimpase

Branch: u/cremona/34537u/dimpase/packages/pari/2.15.2
Commit: 936448968028539453d666e4811fa3e50bd29cce9e858c38130e3a6dec8c3ebdee8af5a6e652e8aa
Status: needs_workpositive_review

purely mechanic change of the identical, but differently named, tarball


New commits:

9e858c3use the released 2.15.2 tarball

comment:145 Changed 4 weeks ago by mkoeppe

With commit 9364489 (and some other tickets merged), I see the following on fedora-37-minimal (https://github.com/mkoeppe/sage/actions/runs/3853109922/jobs/6586249291)

sage -t --random-seed=307282812518142614549559529759942029026 src/sage/schemes/elliptic_curves/hom_frobenius.py
**********************************************************************
File "src/sage/schemes/elliptic_curves/hom_frobenius.py", line 461, in sage.schemes.elliptic_curves.hom_frobenius.EllipticCurveHom_frobenius.dual
Failed example:
    p in (2,3) or f.dual().dual() == f
Exception raised:
    Traceback (most recent call last):
      File "/sage/src/sage/doctest/forker.py", line 695, in _run
        self.compile_and_execute(example, compiler, test.globs)
      File "/sage/src/sage/doctest/forker.py", line 1093, in compile_and_execute
        exec(compiled, globs)
      File "<doctest sage.schemes.elliptic_curves.hom_frobenius.EllipticCurveHom_frobenius.dual[17]>", line 1, in <module>
        p in (Integer(2),Integer(3)) or f.dual().dual() == f
                                        ^^^^^^^^^^^^^^^^^^^^
      File "sage/structure/element.pyx", line 1109, in sage.structure.element.Element.__richcmp__
        return (<Element>self)._richcmp_(other, op)
      File "sage/categories/morphism.pyx", line 341, in sage.categories.morphism.Morphism._richcmp_
        cpdef _richcmp_(self, other, int op):
      File "/sage/src/sage/schemes/elliptic_curves/hom.py", line 221, in _richcmp_
        ret = self._comparison_impl(self, other, op)
              ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
      File "/sage/src/sage/schemes/elliptic_curves/hom_composite.py", line 584, in _comparison_impl
        return compare_via_evaluation(left, right)
               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
      File "/sage/src/sage/schemes/elliptic_curves/hom.py", line 779, in compare_via_evaluation
        Ps = EE.gens()
             ^^^^^^^^^
      File "sage/misc/cachefunc.pyx", line 2297, in sage.misc.cachefunc.CachedMethodCallerNoArgs.__call__
        self.cache = f(self._instance)
      File "/sage/src/sage/schemes/elliptic_curves/ell_finite_field.py", line 819, in gens
        card, ords, pts = self.__pari__().ellgroup(flag=1)
                          ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
      File "cypari2/auto_gen.pxi", line 8027, in cypari2.gen.Gen_base.ellgroup
      File "cypari2/handle_error.pyx", line 213, in cypari2.handle_error._pari_err_handle
    cypari2.handle_error.PariError: impossible inverse in Fl_inv: Mod(31, 31)
**********************************************************************
1 item had failures:
   1 of  19 in sage.schemes.elliptic_curves.hom_frobenius.EllipticCurveHom_frobenius.dual
    [117 tests, 1 failure, 13.47 s]

To inspect: docker run -it ghcr.io/mkoeppe/sage/sage-docker-fedora-37-minimal-with-targets-optional:9.5-107758-g45159d349c

comment:146 Changed 4 weeks ago by cremona

This error is caused by some other newly merged patch #33915. I think the author of that (Lorenz Penny) needs to look at this.

It will be a very great pity if the pari upgrade missed this release!

comment:147 Changed 4 weeks ago by mkoeppe

Thanks for the pointer! I've opened #34900 for this failure.

comment:148 in reply to:  147 Changed 4 weeks ago by lorenz

The failure seems to be due to a PARI bug which is unrelated to both #33915 and this ticket. I added a minimal failing example to #34900.

comment:149 Changed 3 weeks ago by git

Commit: 9e858c38130e3a6dec8c3ebdee8af5a6e652e8aaee4094ff2719e5bec8792151f3847a7fcfe2430c
Status: positive_reviewneeds_review

Branch pushed to git repo; I updated commit sha1 and set ticket back to needs_review. New commits:

ee4094fadd patch for Pari bug #2441, cf trac 34900

comment:150 Changed 3 weeks ago by dimpase

Add a patch to fix #34900 - see also comment:145

comment:151 Changed 3 weeks ago by cremona

Status: needs_reviewpositive_review

As with #34900 we can trust the upstream patch,

comment:152 Changed 3 weeks ago by vbraun

I'm still getting this on 32-bit http://build.sagemath.org/#/builders/47/builds/27

**********************************************************************
File "src/sage/schemes/elliptic_curves/ell_number_field.py", line 2297, in sage.schemes.elliptic_curves.ell_number_field.EllipticCurve_number_field.gens
Failed example:
    E.rank(), E.gens(lim3=12)  # long time (about 4s)
Expected:
    (1,
     [(369/25*y^3 + 539/25*y^2 + 1178/25*y + 1718/25 : -29038/125*y^3 - 43003/125*y^2 - 92706/125*y - 137286/125 : 1)])
Got:
    (1, [])
**********************************************************************
File "src/sage/schemes/elliptic_curves/ell_number_field.py", line 2647, in sage.schemes.elliptic_curves.ell_number_field.EllipticCurve_number_field.isogeny_class
Failed example:
    C.matrix()  # long time
Expected:
    [1 2 2 4 4 2]
    [2 1 2 4 2 4]
    [2 2 1 2 4 4]
    [4 4 2 1 3 3]
    [4 2 4 3 1 3]
    [2 4 4 3 3 1]
Got:
    [1 2 2 2 4 4]
    [2 1 2 4 4 2]
    [2 2 1 4 2 4]
    [2 4 4 1 3 3]
    [4 4 2 3 1 3]
    [4 2 4 3 3 1]
**********************************************************************
File "src/sage/schemes/elliptic_curves/ell_number_field.py", line 2679, in sage.schemes.elliptic_curves.ell_number_field.EllipticCurve_number_field.isogeny_class
Failed example:
    G.adjacency_matrix()  # long time
Expected:
    [0 1 1 0 0 1]
    [1 0 1 0 1 0]
    [1 1 0 1 0 0]
    [0 0 1 0 1 1]
    [0 1 0 1 0 1]
    [1 0 0 1 1 0]
Got:
    [0 1 1 1 0 0]
    [1 0 1 0 0 1]
    [1 1 0 0 1 0]
    [1 0 0 0 1 1]
    [0 0 1 1 0 1]
    [0 1 0 1 1 0]
**********************************************************************
2 items had failures:
   1 of  17 in sage.schemes.elliptic_curves.ell_number_field.EllipticCurve_number_field.gens
   2 of  75 in sage.schemes.elliptic_curves.ell_number_field.EllipticCurve_number_field.isogeny_class
    [843 tests, 3 failures, 236.47 s]
**********************************************************************
File "src/sage/schemes/elliptic_curves/isogeny_small_degree.py", line 1208, in sage.schemes.elliptic_curves.isogeny_small_degree.isogenies_13_0
Failed example:
    [phi.codomain().ainvs() for phi in isogenies_13_0(E)]  # long time (4s)
Expected:
    [(0,
      0,
      20360599/165164973653422080*a^11 - 3643073/41291243413355520*a^10 + 1887439/1146978983704320*a^9 + 5557619461/573489491852160*a^8 - 82824971/11947697746920*a^7 + 1030632647/7965131831280*a^6 - 475752603733/29409717530880*a^5 + 87205112531/7352429382720*a^4 - 43618899433/204234149520*a^3 + 5858744881/12764634345*a^2 - 1858703809/2836585410*a + 2535050171/1418292705,
      -139861295/2650795873449984*a^11 - 3455957/5664093746688*a^10 - 345310571/50976843720192*a^9 - 500530795/118001953056*a^8 - 12860048113/265504394376*a^7 - 25007420461/44250732396*a^6 + 458134176455/1416023436672*a^5 + 16701880631/9077073312*a^4 + 155941666417/9077073312*a^3 + 3499310115/378211388*a^2 - 736774863/94552847*a - 21954102381/94552847,
      8342795944891/198197968384106496*a^11 + 8908625263589/20645621706677760*a^10 + 53130542636623/6881873902225920*a^9 + 376780111042213/114697898370432*a^8 + 614884052146333/15930263662560*a^7 + 3566768133324359/7965131831280*a^6 - 1885593809102545/35291661037056*a^5 - 2443732172026523/3676214691360*a^4 - 9525729503937541/1225404897120*a^3 + 51990274442321/40846829904*a^2 + 67834019370596/4254878115*a + 267603083706812/1418292705),
     (0,
      0,
      20360599/165164973653422080*a^11 - 3643073/41291243413355520*a^10 + 1887439/1146978983704320*a^9 + 5557619461/573489491852160*a^8 - 82824971/11947697746920*a^7 + 1030632647/7965131831280*a^6 - 475752603733/29409717530880*a^5 + 87205112531/7352429382720*a^4 - 43618899433/204234149520*a^3 + 5858744881/12764634345*a^2 - 1858703809/2836585410*a + 2535050171/1418292705,
      -6465569317/1325397936724992*a^11 - 112132307/1960647835392*a^10 - 17075412917/25488421860096*a^9 - 207832519229/531008788752*a^8 - 1218275067617/265504394376*a^7 - 9513766502551/177002929584*a^6 + 4297077855437/708011718336*a^5 + 354485975837/4538536656*a^4 + 4199379308059/4538536656*a^3 - 30841577919/189105694*a^2 - 181916484042/94552847*a - 2135779171614/94552847,
      -1316873026840277/34172063514501120*a^11 - 18637401045099413/41291243413355520*a^10 - 36382234917217247/6881873902225920*a^9 - 61142238484016213/19775499719040*a^8 - 576888119306045123/15930263662560*a^7 - 3378443313906256321/7965131831280*a^6 + 326466167429333279/6084769144320*a^5 + 4620083325391594991/7352429382720*a^4 + 9018783894167184149/1225404897120*a^3 - 9206015742300283/7042556880*a^2 - 65141531411426446/4254878115*a - 254321286054666133/1418292705)]
Got:
    [(0,
      0,
      20360599/165164973653422080*a^11 - 3643073/41291243413355520*a^10 - 101/8789110986240*a^9 + 5557619461/573489491852160*a^8 - 82824971/11947697746920*a^7 - 19487/21127670640*a^6 - 475752603733/29409717530880*a^5 + 87205112531/7352429382720*a^4 + 8349/521670880*a^3 + 5858744881/12764634345*a^2 - 1858703809/2836585410*a + 58759402/48906645,
      -139861295/2650795873449984*a^11 - 3455957/5664093746688*a^10 - 345310571/50976843720192*a^9 - 500530795/118001953056*a^8 - 12860048113/265504394376*a^7 - 25007420461/44250732396*a^6 + 458134176455/1416023436672*a^5 + 16701880631/9077073312*a^4 + 155941666417/9077073312*a^3 + 3499310115/378211388*a^2 - 736774863/94552847*a - 21954102381/94552847,
      579363345221/13763747804451840*a^11 + 371192377511/860234237778240*a^10 + 8855090365657/1146978983704320*a^9 + 5367261541663/1633873196160*a^8 + 614883554332193/15930263662560*a^7 + 30485197378483/68078049840*a^6 - 131000897588387/2450809794240*a^5 - 203628705777949/306351224280*a^4 - 1587619388190379/204234149520*a^3 + 14435069706551/11346341640*a^2 + 7537273048614/472764235*a + 89198980034806/472764235),
     (0,
      0,
      20360599/165164973653422080*a^11 - 3643073/41291243413355520*a^10 - 101/8789110986240*a^9 + 5557619461/573489491852160*a^8 - 82824971/11947697746920*a^7 - 19487/21127670640*a^6 - 475752603733/29409717530880*a^5 + 87205112531/7352429382720*a^4 + 8349/521670880*a^3 + 5858744881/12764634345*a^2 - 1858703809/2836585410*a + 58759402/48906645,
      -6465569317/1325397936724992*a^11 - 112132307/1960647835392*a^10 - 17075412917/25488421860096*a^9 - 207832519229/531008788752*a^8 - 1218275067617/265504394376*a^7 - 9513766502551/177002929584*a^6 + 4297077855437/708011718336*a^5 + 354485975837/4538536656*a^4 + 4199379308059/4538536656*a^3 - 30841577919/189105694*a^2 - 181916484042/94552847*a - 2135779171614/94552847,
      -132601797212627/3440936951112960*a^11 - 6212467020502021/13763747804451840*a^10 - 1515926454902497/286744745926080*a^9 - 15154913741799637/4901619588480*a^8 - 576888119803859263/15930263662560*a^7 - 86626751639648671/204234149520*a^6 + 16436657569218427/306351224280*a^5 + 1540027900265659087/2450809794240*a^4 + 375782662805915809/51058537380*a^3 - 14831920924677883/11346341640*a^2 - 7237947774817724/472764235*a - 84773764066089509/472764235)]
**********************************************************************
1 item had failures:
   1 of  21 in sage.schemes.elliptic_curves.isogeny_small_degree.isogenies_13_0
    [307 tests, 1 failure, 56.94 s]
----------------------------------------------------------------------
sage -t --long --random-seed=0 src/sage/schemes/elliptic_curves/ell_number_field.py  # 3 doctests failed
sage -t --long --random-seed=0 src/sage/schemes/elliptic_curves/isogeny_small_degree.py  # 1 doctest failed
----------------------------------------------------------------------

comment:153 Changed 3 weeks ago by dimpase

could it be the latest patch?

comment:154 in reply to:  153 Changed 3 weeks ago by cremona

Replying to Dima Pasechnik:

could it be the latest patch?

Possibly. In the first one it's a bit strange that with the same search bound that generator was not found, but any changes in number field implementation can change whether specific number field elements fall inside or outside the bound. The difference in the two matrices will happen of the isogenous curves are sorted differently and this will depend on the models obtained, again dependent on such details. Same with the last one -- I did actually check that the two sets of coefficients define isomorphic curves, i.e. we just have a slightly different model.

It is annoying having to keep these 32-bit differences. What would you like to do this time? For the last one we could just output the number of isogenies, not the coefficients of the codomains. For the first isogeny matrix, I do want to keep that output as it is a great example and the docstring right after it describes the structure of the matrix in detail (and this description is still valid) -- so perhaps, put #random against these two. All I can suggest for the first one is to increase lim3 from 12 to 13, which will not take much longer and might give the generator even on 32-bit.

comment:155 Changed 3 weeks ago by dimpase

OK, I'm now going to try a 32-bit docker image of Ubuntu, as in https://doc.sagemath.org/html/en/developer/portability_testing.html to run these tests. (docker pull i386/debian, etc)

Sorry for this never-ending mess.

comment:156 Changed 3 weeks ago by dimpase

All I can suggest for the first one is to increase lim3 from 12 to 13, which will not take much longer and might give the generator even on 32-bit.

OK, I was able to reproduce this in Docker. Indeed, increasing lim3 to 13 here gives

sage: E.rank(), E.gens(lim3=13)
(1,
 [(-369/25*y^3 + 539/25*y^2 - 1178/25*y + 1718/25 : -27193/125*y^3 + 39683/125*y^2 - 86816/125*y + 126696/125 : 1)])

instead of

 [(369/25*y^3 + 539/25*y^2 + 1178/25*y + 1718/25 : -29038/125*y^3 - 43003/125*y^2 - 92706/125*y - 137286/125 : 1)])

Is it OK? The 1st coordinate of the point is obtained by changing y to -y, but the 2nd seems to be totally different. If so, I'm going to do

  • src/sage/schemes/elliptic_curves/ell_number_field.py

    a b class EllipticCurve_number_field(EllipticCurve_field): 
    22942294            sage: E = EllipticCurve(K, [1, 0, 5*y^2 + 16, 0, 0])
    22952295            sage: E.gens(lim1=1, lim3=1)
    22962296            []
    2297             sage: E.rank(), E.gens(lim3=12)  # long time (about 4s)
    2298             (1,
    2299              [(369/25*y^3 + 539/25*y^2 + 1178/25*y + 1718/25 : -29038/125*y^3 - 43003/125*y^2 - 92706/125*y - 137286/125 : 1)])
     2297            sage: E.rank()
     2298            1
     2299            sage: E.gens(lim3=13)  # long time (about 4s)
     2300            [(... : 1)]
    23002301
    23012302        Here is a curve of rank 2::
    23022303

comment:157 Changed 3 weeks ago by cremona

Almost certainly fine. Negating the point would give just as valid a generator, and the negative has the same X coordinate.

Last edited 3 weeks ago by cremona (previous) (diff)

comment:158 Changed 3 weeks ago by git

Commit: ee4094ff2719e5bec8792151f3847a7fcfe2430c238f4de34714989b866757523f2a46088dbfb720
Status: positive_reviewneeds_review

Branch pushed to git repo; I updated commit sha1 and set ticket back to needs_review. This was a forced push. Last 10 new commits:

a318646correct minimal version of pari
b164a38Fix 9.8.beta1 rebase
7bef166bump version to 2.15.1
f61b922try out 32-bit fix from upstream
77b7786#34537: make number_field_element tests more robust
37dcd37#34537: make number_field_ideal_rel tests more robust
52e18fb#34537: make qqbar tests more robust
25e4e41use the released 2.15.2 tarball
af4f715add patch for Pari bug #2441, cf trac 34900
238f4defixed doctests for elliptic curves on 32-bit

comment:159 Changed 3 weeks ago by dimpase

rebased and fixed 32-bit tests, mostly as proposed by John - added an extra test checking that the graph arising there is indeed a triangular prism (Sage can do this in 1 line ;-))

comment:160 in reply to:  157 Changed 3 weeks ago by cremona

Replying to John Cremona:

Almost certainly fine. Negating the point would give just as valid a generator, and the negative has the same X coordinate.

I looked at this more carefully, and it is 100% correct, though whoever wrote this test should have known better than to call the field generator y. Both y and -y are field generators since the field's defining polynomial is x^4+x^2-7, and the coefficients of the curve are (1, 0, 5*y^2 + 16, 0, 0) (hence the confusion if you just display the curve as it displays its equation in variables x,y), so replacing y by -y in the coordinates of any point give another point, which explains Dima's observation about the x-coordinates. And my observation also explains the difference in y-coordinates:

sage: P
(369/25*y^3 + 539/25*y^2 + 1178/25*y + 1718/25 : -29038/125*y^3 - 43003/125*y^2 - 92706/125*y - 137286/125 : 1)
sage: -P
(369/25*y^3 + 539/25*y^2 + 1178/25*y + 1718/25 : 27193/125*y^3 + 39683/125*y^2 + 86816/125*y + 126696/125 : 1)

comment:161 Changed 3 weeks ago by git

Commit: 238f4de34714989b866757523f2a46088dbfb720c7654e85a763eb42e4c547c4a4627112b850f8c2

Branch pushed to git repo; I updated commit sha1. New commits:

c7654e8rename the gen, and do basic tests on the found generator

comment:162 Changed 3 weeks ago by dimpase

here I renamed y->t, and added basic sanity checks for the latter test. Positive review?

comment:163 in reply to:  162 Changed 3 weeks ago by cremona

Replying to Dima Pasechnik:

here I renamed y->t, and added basic sanity checks for the latter test. Positive review?

Yes from me, thanks.

comment:164 Changed 3 weeks ago by dimpase

Status: needs_reviewpositive_review

comment:165 Changed 2 weeks ago by dimpase

Status: positive_reviewneeds_work

unfortunately upstream found the fix for https://pari.math.u-bordeaux.fr/cgi-bin/bugreport.cgi?bug=2441 lacking, and proposed another patch.

comment:166 Changed 2 weeks ago by git

Commit: c7654e85a763eb42e4c547c4a4627112b850f8c2e8cfad05abf297bd9f762a6f7b688c6e900fc09b

Branch pushed to git repo; I updated commit sha1. New commits:

e8cfad0use different patch from upstream

comment:167 Changed 2 weeks ago by dimpase

Status: needs_workneeds_review

comment:168 Changed 2 weeks ago by cremona

I see that Bill said "The previous patch fixes this example but not other similar ones." after analysing the problem in detail, so certainly we should go with the new patch.

comment:169 Changed 11 days ago by dimpase

Status: needs_reviewpositive_review

let's move this. Works on 32 bit, etc.

comment:170 Changed 9 days ago by vbraun

Branch: u/dimpase/packages/pari/2.15.2e8cfad05abf297bd9f762a6f7b688c6e900fc09b
Resolution: fixed
Status: positive_reviewclosed

comment:171 Changed 9 days ago by mkoeppe

Commit: e8cfad05abf297bd9f762a6f7b688c6e900fc09b

Follow up: #34959 Fix doctest in sage/schemes/elliptic_curves/ell_number_field.py

Note: See TracTickets for help on using tickets.