Opened 8 years ago
Closed 8 years ago
#12171 closed enhancement (fixed)
Update MPFI to 1.5.1
Reported by: | mhansen | Owned by: | tbd |
---|---|---|---|
Priority: | major | Milestone: | sage-5.0 |
Component: | packages: standard | Keywords: | sd35 sd36 |
Cc: | cwitty, robertwb, jdemeyer, jpflori | Merged in: | sage-5.0.beta6 |
Authors: | Mike Hansen, Paul Zimmermann, Jean-Pierre Flori | Reviewers: | François Bissey |
Report Upstream: | N/A | Work issues: | |
Branch: | Commit: | ||
Dependencies: | #12131, #12353 | Stopgaps: |
Description (last modified by )
This is needed for #11666.
Use http://perso.telecom-paristech.fr/~flori/sage/mpfi-1.5.1.spkg
Apply first trac_12171a.patch, then trac_12171b.patch
Attachments (2)
Change History (78)
comment:1 Changed 8 years ago by
- Summary changed from Update MPIR to 1.5.0 to Update MPFI to 1.5.0
comment:2 Changed 8 years ago by
- Status changed from new to needs_review
comment:3 Changed 8 years ago by
Have you checked the following doctests:
sage -t -long "devel/sage/sage/rings/qqbar.py" ********************************************************************** File "/usr/share/sage/devel/sage/sage/rings/qqbar.py", line 3808: sage: (x-2).real_exact(RR) Expected: 0.000000000000000 Got: -0.000000000000000 ********************************************************************** File "/usr/share/sage/devel/sage/sage/rings/qqbar.py", line 3810: sage: (x-2).real_exact(RealField(53, rnd='RNDD')) Expected: 0.000000000000000 Got: -0.000000000000000 ********************************************************************** File "/usr/share/sage/devel/sage/sage/rings/qqbar.py", line 3812: sage: (x-2).real_exact(RealField(53, rnd='RNDU')) Expected: 0.000000000000000 Got: -0.000000000000000 ********************************************************************** File "/usr/share/sage/devel/sage/sage/rings/qqbar.py", line 3814: sage: (x-2).real_exact(RealField(53, rnd='RNDZ')) Expected: 0.000000000000000 Got: -0.000000000000000 ********************************************************************** 1 items had failures: 4 of 20 in __main__.example_96 ***Test Failed*** 4 failures.
and
sage -t -long "devel/sage/sage/rings/real_mpfi.pyx" ********************************************************************** File "/usr/share/sage/devel/sage/sage/rings/real_mpfi.pyx", line 1078: sage: b = R(1)/R(0); b Expected: [+infinity .. +infinity] Got: [-infinity .. +infinity] ********************************************************************** File "/usr/share/sage/devel/sage/sage/rings/real_mpfi.pyx", line 1080: sage: loads(dumps(b)) == b Expected: True Got: False ********************************************************************** File "/usr/share/sage/devel/sage/sage/rings/real_mpfi.pyx", line 1082: sage: b = R(-1)/R(0); b Expected: [-infinity .. -infinity] Got: [-infinity .. +infinity] ********************************************************************** File "/usr/share/sage/devel/sage/sage/rings/real_mpfi.pyx", line 1084: sage: loads(dumps(b)) == b Expected: True Got: False ********************************************************************** File "/usr/share/sage/devel/sage/sage/rings/real_mpfi.pyx", line 2360: sage: R(1)/R(0) Expected: [+infinity .. +infinity] Got: [-infinity .. +infinity] ********************************************************************** File "/usr/share/sage/devel/sage/sage/rings/real_mpfi.pyx", line 3217: sage: RIF(-1, 1).min(0).endpoints() Expected: (-1.00000000000000, 0.000000000000000) Got: (-1.00000000000000, -0.000000000000000) ********************************************************************** File "/usr/share/sage/devel/sage/sage/rings/real_mpfi.pyx", line 3221: sage: RIF(-1, 1).min(0).endpoints() Expected: (-1.00000000000000, 0.000000000000000) Got: (-1.00000000000000, -0.000000000000000) ********************************************************************** 3 items had failures: 4 of 18 in __main__.example_29 1 of 8 in __main__.example_55 2 of 9 in __main__.example_80 ***Test Failed*** 7 failures.
I did those test about one year ago https://github.com/cschwan/sage-on-gentoo/issues/30 so some things have probably changed a little bit but I expect you'll have to patch sage.
comment:4 Changed 8 years ago by
by the way, MPFI 1.5.0 fixes a limitation to 1000 characters in mpfi_set_str
, which can be
demonstrated by the following test:
sage: R = RealIntervalField(53) sage: R("1" * 1000) 1.111111111111112?e999
which failed previously. Maybe add a test for that?
Paul
comment:5 Changed 8 years ago by
- Status changed from needs_review to needs_work
two doctests are failing:
sage -t devel/sage-11666/sage/rings/qqbar.py # 4 doctests failed sage -t devel/sage-11666/sage/rings/real_mpfi.pyx # 7 doctests failed
The issues are +0.0
versus -0.0
, and also 1/0 which now gives [-Inf, +Inf]
instead of [+Inf, +Inf]
.
Paul
comment:6 Changed 8 years ago by
there is one important change in MPFI 1.5.0 which might cause the failures: mpfi_set_ui
on
input 0 gives [+0.0,-0.0]
instead of [+0.0,+0.0]
previously. I will ask upstream why:
sage: R=RealIntervalField(53) sage: a=R(0) sage: a.lower(), a.upper() (0.000000000000000, -0.000000000000000)
More annoying is the following, which I believe is a bug in MPFI 1.5.0:
sage: a=R(infinity) sage: a.lower(), a.upper() (+infinity, +infinity) sage: b=1/a sage: b.lower(), b.upper() (0.000000000000000, -0.000000000000000)
(I would expect b=[+0.0,+0.0]
.)
Paul
comment:7 Changed 8 years ago by
- Keywords sd35 added
comment:8 Changed 8 years ago by
the detailed failures (on a 32-bit computer) are:
macaron% ./sage -t devel/sage-12171/sage/rings/real_mpfi.pyx sage -t "devel/sage-12171/sage/rings/real_mpfi.pyx" ********************************************************************** File "/localdisk/tmp/sage-4.7.2/devel/sage-12171/sage/rings/real_mpfi.pyx", line 4142: sage: 0 in (RealField(2000)(-19/3).gamma() - RealIntervalField(1000)(-19/3).gamma()) Expected: True Got: False ********************************************************************** File "/localdisk/tmp/sage-4.7.2/devel/sage-12171/sage/rings/real_mpfi.pyx", line 1082: sage: b = R(1)/R(0); b Expected: [+infinity .. +infinity] Got: [-infinity .. +infinity] ********************************************************************** File "/localdisk/tmp/sage-4.7.2/devel/sage-12171/sage/rings/real_mpfi.pyx", line 1084: sage: loads(dumps(b)) == b Expected: True Got: False ********************************************************************** File "/localdisk/tmp/sage-4.7.2/devel/sage-12171/sage/rings/real_mpfi.pyx", line 1086: sage: b = R(-1)/R(0); b Expected: [-infinity .. -infinity] Got: [-infinity .. +infinity] ********************************************************************** File "/localdisk/tmp/sage-4.7.2/devel/sage-12171/sage/rings/real_mpfi.pyx", line 1088: sage: loads(dumps(b)) == b Expected: True Got: False ********************************************************************** File "/localdisk/tmp/sage-4.7.2/devel/sage-12171/sage/rings/real_mpfi.pyx", line 2364: sage: R(1)/R(0) Expected: [+infinity .. +infinity] Got: [-infinity .. +infinity] ********************************************************************** File "/localdisk/tmp/sage-4.7.2/devel/sage-12171/sage/rings/real_mpfi.pyx", line 3221: sage: RIF(-1, 1).min(0).endpoints() Expected: (-1.00000000000000, 0.000000000000000) Got: (-1.00000000000000, -0.000000000000000) ********************************************************************** File "/localdisk/tmp/sage-4.7.2/devel/sage-12171/sage/rings/real_mpfi.pyx", line 3225: sage: RIF(-1, 1).min(0).endpoints() Expected: (-1.00000000000000, 0.000000000000000) Got: (-1.00000000000000, -0.000000000000000) ********************************************************************** 4 items had failures: 1 of 19 in __main__.example_117 4 of 19 in __main__.example_29 1 of 9 in __main__.example_55 2 of 10 in __main__.example_80 ***Test Failed*** 8 failures. For whitespace errors, see the file /users/caramel/zimmerma/.sage//tmp/real_mpfi_8949.py [8.1 s]
and:
macaron% ./sage -t devel/sage-12171/sage/rings/qqbar.py sage -t "devel/sage-12171/sage/rings/qqbar.py" ********************************************************************** File "/localdisk/tmp/sage-4.7.2/devel/sage-12171/sage/rings/qqbar.py", line 4003: sage: (x-2).real_exact(RR) Expected: 0.000000000000000 Got: -0.000000000000000 ********************************************************************** File "/localdisk/tmp/sage-4.7.2/devel/sage-12171/sage/rings/qqbar.py", line 4005: sage: (x-2).real_exact(RealField(53, rnd='RNDD')) Expected: 0.000000000000000 Got: -0.000000000000000 ********************************************************************** File "/localdisk/tmp/sage-4.7.2/devel/sage-12171/sage/rings/qqbar.py", line 4007: sage: (x-2).real_exact(RealField(53, rnd='RNDU')) Expected: 0.000000000000000 Got: -0.000000000000000 ********************************************************************** File "/localdisk/tmp/sage-4.7.2/devel/sage-12171/sage/rings/qqbar.py", line 4009: sage: (x-2).real_exact(RealField(53, rnd='RNDZ')) Expected: 0.000000000000000 Got: -0.000000000000000 ********************************************************************** 1 items had failures: 4 of 21 in __main__.example_101 ***Test Failed*** 4 failures.
Paul
comment:9 Changed 8 years ago by
the first issue with gamma seems to be due to that bug in Sage:
sage: RealIntervalField(54)(-19/3) > 1.462 True
(works for precision 53 or less).
Paul
comment:10 Changed 8 years ago by
I got a message from the developers of the Sollya package who say that they had similar problems when upgrading to MPFI 1.5.0. Their solution was to write a wrapper around MPFI to give sense to intervals like [+Inf,+Inf].
Paul
comment:11 Changed 8 years ago by
- Cc cwitty robertwb added
the problem from comment 9 seems to only apply on 32-bit machines. I'll first try to solve problems on 64-bit. There is one strange thing with the patch applied:
sage: x = AA(2).sqrt()^2 sage: (x-2).real_exact(RR) 0.000000000000000 sage: x.real_exact(RR) 2.00000000000000 sage: (x-2).real_exact(RR) -0.000000000000000
The MPFI developers claim that in MPFI 1.5 the sign of 0 is irrelevant, but this is still a non-deterministic issue.
Paul
Changed 8 years ago by
comment:12 follow-up: ↓ 17 Changed 8 years ago by
- Status changed from needs_work to needs_info
the attached trac_12171a.patch
fixes all issues but two on 64-bit. The remaining issues
are related to loads(dumps(b)) == b
:
File "/usr/local/sage-4.7.2/sage/devel/sage-12171/sage/rings/real_mpfi.pyx", line 1084: sage: loads(dumps(b)) == b Expected: True Got: False ********************************************************************** File "/usr/local/sage-4.7.2/sage/devel/sage-12171/sage/rings/real_mpfi.pyx", line 1088: sage: loads(dumps(b)) == b Expected: True Got: False
I see in real_mpfi.pyx
that other similar tests are failing and were rewritten in a
different way:
sage: R = RealIntervalField(4000) sage: s = 1/R(3) sage: t = loads(dumps(s)) sage: (t.upper(), t.lower()) == (s.upper(), s.lower()) True
Indeed t==s
fails:
sage: t == s False
Should I also rewrite the 2 failing tests like this? What is the reason for the failures?
Paul
comment:13 Changed 8 years ago by
Should I also rewrite the 2 failing tests like this? What is the reason for the failures?
Robert, Mike, are you there?
Paul
comment:14 Changed 8 years ago by
- Cc jdemeyer added
Jeroen, since I got no answer to my question I ask you: do you have an idea how to proceed?
Paul
comment:15 Changed 8 years ago by
Hi Paul, sorry for the delay; I've been busy with traveling back to the states / the holidays. I'll look into why these are failing today. I started while I was in Warwick, but didn't make much progress.
comment:16 Changed 8 years ago by
- Cc jpflori added
comment:17 in reply to: ↑ 12 Changed 8 years ago by
Replying to zimmerma:
I see in
real_mpfi.pyx
that other similar tests are failing and were rewritten in a different way:sage: R = RealIntervalField(4000) sage: s = 1/R(3) sage: t = loads(dumps(s)) sage: (t.upper(), t.lower()) == (s.upper(), s.lower()) TrueIndeed
t==s
fails:sage: t == s FalseShould I also rewrite the 2 failing tests like this? What is the reason for the failures?
This is quite strange I cannot think of a reason this would fail unless the "==" operator is doing something slightly wrong or something unexpected.
comment:18 Changed 8 years ago by
ok I understand why the following "fails":
sage: R = RealIntervalField(100) sage: s = 1/R(3) sage: t = loads(dumps(s)) sage: t == s False
In the real_mpfi.pyx
file, it is said that s cmp t returns True if a cmp b is true for any
element a in s and any element b in t. Obviously when cmp is == and t is the same interval as s
this can hold only when both are the same point interval. Thus to check if s and t are the same
interval, we should write:
sage: (t.upper(), t.lower()) == (s.upper(), s.lower()) True
Paul
comment:19 Changed 8 years ago by
- Description modified (diff)
- Status changed from needs_info to needs_review
the second patch attached fixes the remaining failing tests. Ready for review.
Paul
comment:20 Changed 8 years ago by
There is no doubt that this second patch will do the trick and does the right thing. I am just wondering why "t == s" doesn't work as expected in the first place.
In any case I will do some basic reviewing shortly. The patch themselves look good to me. I need to check the spkg in details.
comment:21 Changed 8 years ago by
Francois, I explain in comment 18 that the semantics of t == s
is special for
intervals. If t=[a,b]
and s=[c,d]
, it requires that x==y
for any a <= x <= b
and c <= y <= d
, which obviously requires a=b=c=d
.
The modified tests did work before because they had a=b=c=d
, which is no longer the case due
to change of semantics of MPFI.
Paul
comment:22 Changed 8 years ago by
Just a quick update: it doesn't appear that mpfi runs a test suite when SAGE_CHECK is set can you fix that?
comment:23 Changed 8 years ago by
I further inspected the spkg. There is one issue
hg status ! patches/configure.ac ! patches/configure.ac.patch
You have to tell hg to remove them, just removing them with "rm" is not enough.
hg addremove
will do the trick then you can commit and make the spkg. As mentioned above I would also like you to add a section to spkg-install that runs "make check" if SAGE_CHECK is set to yes. Once all that is done I'll have another look but it should be a positive review then.
comment:24 Changed 8 years ago by
- Reviewers set to François Bissey
- Status changed from needs_review to needs_work
- Work issues set to clean hg repo; add SAGE_CHECK
comment:25 Changed 8 years ago by
Mike, please can you make the changes in the spkg? I'd like to make progress on this patch during SD 35.5, so that we can proceed on #11666.
Paul
comment:26 Changed 8 years ago by
- Status changed from needs_work to needs_review
As I happened to be cc'ed on this ticket, I've uplaoded a package with the requested easy changes at http://perso.telecom-paristech.fr/~flori/sage/mpfi-1.5.0.spkg
At least it install on a (vanilla? not sure... but nothing to exotic) sage 4.7.2 and runs the test suite (and succeed) when asked so on my machine.
comment:27 Changed 8 years ago by
- Work issues clean hg repo; add SAGE_CHECK deleted
I've also put another version of the package at the same address + ".new" where the last test in spkg-install is slightly simplified...
comment:28 Changed 8 years ago by
- Status changed from needs_review to positive_review
Looking at it again it may have been a little bit more verbose about the removal of the patches in SPKG.txt but it is otherwise fine now. It actually builds and tests fine on something exotic (SLES 11SP1 on power7, although there may be a slight clue about some problems on power7 in those tests).
I giving this a positive review.
comment:29 Changed 8 years ago by
- Description modified (diff)
I've put the last package at the "normal" address (i.e. without .new at the end) and linked it in the ticket description.
comment:30 Changed 8 years ago by
- Milestone changed from sage-4.8 to sage-5.0
comment:31 Changed 8 years ago by
- Dependencies set to #12131
- Status changed from positive_review to needs_work
- Work issues set to rebase
This should be rebased to #12131.
comment:32 Changed 8 years ago by
I hadn't noticed that mpfi was one of the concerned package but I guess it make sense. This should be easy and quick to fix.
comment:33 Changed 8 years ago by
- Status changed from needs_work to needs_review
- Work issues rebase deleted
The concerned line of spkg-install has been updated according to #12131.
You can find the updated package at the same address:
http://perso.telecom-paristech.fr/~flori/sage/mpfi-1.5.0.spkg
comment:34 Changed 8 years ago by
- Status changed from needs_review to needs_work
It is not how rebasing a spkg works Jean-Pierre (I had to do it several time for python-2.7). You have to start from the latest spkg available in #12131. The idea is that by doing what you just did you lost all the history from the spkg in #12131 that includes hg logs and the log entries from SPKG.txt.
So I am afraid you will have to take the spkg from #12131 and then add all the changes needed for 1.5.0.
comment:35 Changed 8 years ago by
My bad, I did not really thought before adding the one line fix from #12131.
I'll do it the right way around later.
comment:36 Changed 8 years ago by
note that MPFI 1.5.1 will soon be out: http://lists.gforge.inria.fr/pipermail/mpfi-users/2012-January/000031.html
Paul
comment:37 Changed 8 years ago by
I'm currently properly rebuilding the spkg (for 1.5.0).
I see that in Mike package, he got rid of the previous patch for cygwin.
I guess it has been merged upstream. Anyway, I'll document it in SPKG.txt when I find a ref, remove src/configure.ac from tracked files and delete patches directory, unless someone has an objection.
If v1.5.1 happens to get released, I'll just use it instead of 1.5.
comment:38 follow-up: ↓ 39 Changed 8 years ago by
I've contacted Philippe Théveny who is in charge of MPFI and he was not even aware of the patch we used in 1.3.4.something to compile under cygwin, so there is a priori no reason for the patch not to be needed anymore (I verified that the configure.ac file in Mike's spkg is the original one from MPFI 1.5).
The release is planned for the middle of next week, but if the patch is still needed Philippe is ready to get it merged upstream for that release. The original ticket for that issue is #3235.
Could someone who has access to cygwin try the last package I posted (or Mike's one) and report on success or failure ASAP?
comment:39 in reply to: ↑ 38 Changed 8 years ago by
Replying to jpflori:
I've contacted Philippe Théveny who is in charge of MPFI and he was not even aware of the patch we used in 1.3.4.something to compile under cygwin, so there is a priori no reason for the patch not to be needed anymore (I verified that the configure.ac file in Mike's spkg is the original one from MPFI 1.5).
The release is planned for the middle of next week, but if the patch is still needed Philippe is ready to get it merged upstream for that release. The original ticket for that issue is #3235.
Could someone who has access to cygwin try the last package I posted (or Mike's one) and report on success or failure ASAP?
The spkg builds just fine on Sage 4.7.2 on Cygwin.
Dima
comment:40 Changed 8 years ago by
a release candidate for MPFI 1.5.1 is available:
Date: Fri, 13 Jan 2012 20:08:36 +0100 From: philipe theveny <philippe.theveny@ens-lyon.fr> To: mpfi-users@lists.gforge.inria.fr Subject: [Mpfi-users] announce: mpfi-1.5.1 release candidate Content-Type: text/plain; charset="iso-8859-1"; Format="flowed" The release of MPFI 1.5.1 is is imminent. Please help to make this release as good as possible by downloading and testing this release candidate: https://gforge.inria.fr/frs/download.php/30117/mpfi-1.5.1-rc1.tar.bz2 https://gforge.inria.fr/frs/download.php/30116/mpfi-1.5.1-rc1.tar.gz https://gforge.inria.fr/frs/download.php/30115/mpfi-1.5.1-rc1.zip The MD5's: ccff519222077407c3ca188a3e643c07 mpfi-1.5.1-rc1.tar.bz2 cd868c21d87afa05085d36d97dfde761 mpfi-1.5.1-rc1.tar.gz 5e8a29bfcd8cd8b3eb6d90ca86822763 mpfi-1.5.1-rc1.zip The SHA1's: 5cacf98c882f217d8db937e12a4bc7104a5c322d mpfi-1.5.1-rc1.tar.bz2 4f58755fbcc346ae23b04e9617e84c776e7b119f mpfi-1.5.1-rc1.tar.gz 3e1d180c3640d9eae0a456efc4995cb1d6b99e03 mpfi-1.5.1-rc1.zip Changes between MPFI version 1.5 and 1.5.1: * fix bug in mpfi_sub_fr (reported by Takayuki YAMAGUCHI) * now require at least GMP version 4.1.0 and MPFR version 2.4.2 * detect availability of mpfr_z_sub, mpfr_z_div, and mpfr_q_sub and use a custom implementation for the ones not provided by MPFR (mpfr_z_sub appeared in MPFR 3.1.0, the other ones are used in tests only) * code cleanup (unused variables) * tadd_q does no more check overflow by default (required too much memory) * sign of zeros choice documented Please send success and failure reports with "./config.guess" output to <mpfi-users@lists.gforge.inria.fr>. If no problems are found, MPFI 1.5.1 should be released around January 18, 2012. Regards, Philippe Theveny _______________________________________________ Mpfi-users mailing list Mpfi-users@lists.gforge.inria.fr http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/mpfi-users
comment:41 Changed 8 years ago by
Sorry I have fallen of the face of the internet in the past few days (not quite literally but almost). If there is a bit of time the test suite pass on power7 in a sage setting but with the following messages:
PASS: tinit PASS: tinit_set Warning: reverted endpoints line 21 Warning: reverted endpoints line 22 Warning: reverted endpoints line 23 Warning: reverted endpoints line 26 Warning: reverted endpoints line 30 Warning: reverted endpoints line 37 Warning: reverted endpoints line 38 PASS: tintersect
and
PASS: tsech PASS: tset Warning: reverted endpoints line 11 Warning: reverted endpoints line 12 Warning: reverted endpoints line 13 Warning: reverted endpoints line 14 Warning: reverted endpoints line 15 PASS: tset_d
Not sure if it can have an impact on some sage use or not.
comment:42 Changed 8 years ago by
Francois,
Not sure if it can have an impact on some sage use or not.
I reported the same warnings to the MPFI developers when 1.5.0 came out (http://lists.gforge.inria.fr/pipermail/mpfi-users/2011-May/000023.html) but got no feedback. I will ask them again.
Paul
comment:43 Changed 8 years ago by
FYI I get the same warnings, on the same kind of architecture.
And as far as the spkg is concerned, I'd prefer to wait until thursday when there is some sage meeting in Paris to package directly MPFI 1.5.1 on top of#12131. Unless someone has a very good reason for me to do it earlier with 1.5.1.rc1.
comment:44 Changed 8 years ago by
- Description modified (diff)
- Status changed from needs_work to needs_review
- Summary changed from Update MPFI to 1.5.0 to Update MPFI to 1.5.1
Here comes finally a 1.5.1 spkg rebased on #12131
You can find it at http://perso.telecom-paristech.fr/~flori/sage/mpfi-1.5.1.spkg
I slightly updated the description and license info as well.
comment:45 Changed 8 years ago by
Shouldn't spkg-check actually be a proper shell script? By that I mean start with something like
#!/bin/sh
or possibly
#!/usr/bin/env bash
comment:46 follow-up: ↓ 47 Changed 8 years ago by
fbissey: yes, it should be. It should also be executable.
comment:47 in reply to: ↑ 46 Changed 8 years ago by
- Status changed from needs_review to needs_work
Replying to jdemeyer:
fbissey: yes, it should be. It should also be executable.
It is executable just not a proper shell script, putting it back to needs work. Everything else looks ok.
comment:48 Changed 8 years ago by
- Status changed from needs_work to needs_review
Sorry about that, I definitely tried to repackage that one and mpfr one too quickly from scratch on my personal computer and mixed everything.
It should be ok now (same address as before).
comment:49 Changed 8 years ago by
- Status changed from needs_review to positive_review
OK, I am putting it back to positive review, looks all right, survives basic testing.
comment:50 follow-ups: ↓ 51 ↓ 55 Changed 8 years ago by
- Description modified (diff)
- Status changed from positive_review to needs_work
I actually get the doctest failure
sage -t -force_lib devel/sage/sage/rings/real_mpfi.pyx ********************************************************************** File "/mnt/usb1/scratch/jdemeyer/merger/sage-5.0.beta2/devel/sage-main/sage/rings/real_mpfi.pyx", line 4143: sage: 0 in (RealField(2000)(-19/3).gamma() - RealIntervalField(1000)(-19/3).gamma()) Expected: True Got: False **********************************************************************
comment:51 in reply to: ↑ 50 Changed 8 years ago by
Replying to jdemeyer:
I actually get the doctest failure
sage -t -force_lib devel/sage/sage/rings/real_mpfi.pyx ********************************************************************** File "/mnt/usb1/scratch/jdemeyer/merger/sage-5.0.beta2/devel/sage-main/sage/rings/real_mpfi.pyx", line 4143: sage: 0 in (RealField(2000)(-19/3).gamma() - RealIntervalField(1000)(-19/3).gamma()) Expected: True Got: False **********************************************************************
Is it a 32 bit or 64 bit system? Or it doesn't matter? Was it 5.0_beta1?
comment:52 Changed 8 years ago by
comment:53 Changed 8 years ago by
I haven't noticed any of that in the prealpha, interestingly enough the time out on power7 apparently happened on a call to .gamma(). I will try 5.0.beta1.
comment:54 Changed 8 years ago by
On my 64 bit linux box after accounting for #12349 (which came out of nowhere suddenly) and applying this ticket
fbissey@QCD-nzi3 /home/work/fbissey/sandbox/sage-5.0.beta1 $ ./sage -t -long -force_lib devel/sage/sage/rings/real_mpfi.pyx sage -t -long -force_lib "devel/sage/sage/rings/real_mpfi.pyx" [1.3 s] ---------------------------------------------------------------------- All tests passed! Total time for all tests: 1.3 seconds
comment:55 in reply to: ↑ 50 Changed 8 years ago by
Replying to jdemeyer:
I actually get the doctest failure [...]
Jeroen, what do you get for the following?
sage: (RealField(2000)(-19/3).gamma() - RealIntervalField(1000)(-19/3).gamma())
My guess is that this problem is due to the one mentioned in comment 9, which is a bug already present in Sage, and thus separate from this ticket (however I don't know why the doctest worked before...)
Paul
comment:56 Changed 8 years ago by
the above problem can be simplified to:
sage: RealIntervalField(54)(-1) > RR(1) True
which already happens in Sage 4.7.2, and seems to be due to the coercion model.
I'll open a separate ticket for that (for precision between 2 and 53 we get the correct
answer False
).
Paul
comment:57 Changed 8 years ago by
comment:58 follow-up: ↓ 59 Changed 8 years ago by
I don't understand what's happening here.
The test only seems to fail when running make ptest
, not when running only the one test
jdemeyer@sage:/scratch/jdemeyer/merger/sage-5.0.beta2$ ./sage -t -force_lib devel/sage/sage/rings/real_mpfi.pyx 2>&1 |cat sage -t -force_lib "devel/sage/sage/rings/real_mpfi.pyx" [2.3 s] ---------------------------------------------------------------------- All tests passed! Total time for all tests: 2.3 seconds
comment:59 in reply to: ↑ 58 Changed 8 years ago by
comment:60 Changed 8 years ago by
I get
sage: RealIntervalField(53)(-1) > RR(1) False sage: RealIntervalField(54)(-1) > RR(1) False sage: (RealField(2000)(-19/3).gamma() - RealIntervalField(1000)(-19/3).gamma()) 0.?e-302 sage: 0 in (RealField(2000)(-19/3).gamma() - RealIntervalField(1000)(-19/3).gamma()) True
comment:61 Changed 8 years ago by
strange, with 4.8 just compiled on a Core2 under Ubuntu 10.10 I get:
tarte% ./sage ---------------------------------------------------------------------- | Sage Version 4.8, Release Date: 2012-01-20 | | Type notebook() for the GUI, and license() for information. | ---------------------------------------------------------------------- sage: RealIntervalField(53)(-1) > RR(1) False sage: RealIntervalField(54)(-1) > RR(1) True
Paul
comment:62 Changed 8 years ago by
I get (64 bit linux)
---------------------------------------------------------------------- | Sage Version 5.0.beta1, Release Date: 2012-01-22 | | Type notebook() for the GUI, and license() for information. | ---------------------------------------------------------------------- ********************************************************************** * * * Warning: this is a prerelease version, and it may be unstable. * * * ********************************************************************** sage: RealIntervalField(53)(-1) > RR(1) False sage: RealIntervalField(54)(-1) > RR(1) False sage: (RealField(2000)(-19/3).gamma() - RealIntervalField(1000)(-19/3).gamma()) 0.?e-302 sage: 0 in (RealField(2000)(-19/3).gamma() - RealIntervalField(1000)(-19/3).gamma()) True
On OS X 10.5.8 (32bit):
BlueFerniMac1:sage-5.0.beta1 frb15$ ./sage -t -long -force_lib devel/sage/sage/rings/real_mpfi.pyx sage -t -long -force_lib "devel/sage/sage/rings/real_mpfi.pyx" ********************************************************************** File "/Users/frb15/Desktop/sage-5.0.beta1/devel/sage/sage/rings/real_mpfi.pyx", line 4143: sage: 0 in (RealField(2000)(-19/3).gamma() - RealIntervalField(1000)(-19/3).gamma()) Expected: True Got: False ********************************************************************** 1 items had failures: 1 of 19 in __main__.example_117 ***Test Failed*** 1 failures. For whitespace errors, see the file /Users/frb15/.sage//tmp/real_mpfi_78068.py [2.9 s]
and
BlueFerniMac1:sage-5.0.beta1 frb15$ ./sage ---------------------------------------------------------------------- | Sage Version 5.0.beta1, Release Date: 2012-01-22 | | Type notebook() for the GUI, and license() for information. | ---------------------------------------------------------------------- ********************************************************************** * * * Warning: this is a prerelease version, and it may be unstable. * * * ********************************************************************** sage: RealIntervalField(53)(-1) > RR(1) False sage: RealIntervalField(54)(-1) > RR(1) True sage: (RealField(2000)(-19/3).gamma() - RealIntervalField(1000)(-19/3).gamma()) 1.1?e-303 sage: 0 in (RealField(2000)(-19/3).gamma() - RealIntervalField(1000)(-19/3).gamma()) False
so there are differences of behavior between 32 and 64 bit naively.
comment:63 Changed 8 years ago by
Francois,
I just built Sage 5.0.beta1 on another 64 bit linux (Core2 under Ubuntu 10.10) and got:
tarte% ./sage ---------------------------------------------------------------------- | Sage Version 5.0.beta1, Release Date: 2012-01-22 | | Type notebook() for the GUI, and license() for information. | ---------------------------------------------------------------------- ********************************************************************** * * * Warning: this is a prerelease version, and it may be unstable. * * * ********************************************************************** sage: RealIntervalField(53)(-1) > RR(1) False sage: RealIntervalField(54)(-1) > RR(1) True
Paul
comment:64 Changed 8 years ago by
comment:65 follow-up: ↓ 67 Changed 8 years ago by
Francois,
no, I didn't use #11666. Can anybody reproduce the problem I have (cf #12353)? Anyway I believe this is independent from this ticket, since it already happened before (e.g., in Sage 4.7.2). Thus it should not prevent a positive review, if this is the only remaining issue, and we should solve #12353 independently.
Paul
comment:66 Changed 8 years ago by
Everything I said was without #11666.
comment:67 in reply to: ↑ 65 Changed 8 years ago by
Replying to zimmerma:
Francois,
no, I didn't use #11666. Can anybody reproduce the problem I have (cf #12353)? Anyway I believe this is independent from this ticket, since it already happened before (e.g., in Sage 4.7.2). Thus it should not prevent a positive review, if this is the only remaining issue, and we should solve #12353 independently.
I can reproduce it on OS X 10.5.8 (32bit) and linux on ppc64, but not on linux x86_64. You are probably right that's an orthogonal problem if it can happen as well in the current version of sage.
comment:68 Changed 8 years ago by
- Status changed from needs_work to needs_review
comment:69 follow-up: ↓ 70 Changed 8 years ago by
- Dependencies changed from #12131 to #12131, #12353
- Status changed from needs_review to positive_review
If nothing on this ticket changed, I guess we're back to positive review with a dependency on #12353.
comment:70 in reply to: ↑ 69 Changed 8 years ago by
comment:71 follow-up: ↓ 72 Changed 8 years ago by
Jeroen, now that #12353 has been fixed, you can merge this one too.
Paul
comment:72 in reply to: ↑ 71 Changed 8 years ago by
comment:73 Changed 8 years ago by
- Status changed from positive_review to needs_work
In spkg-install
, you should unset RM
as old Sage versions set RM=rm
which breaks libtool
. For example, when upgrading from sage-4.5.3:
/bin/bash ../libtool --tag=CC --mode=link gcc -O2 -g -fPIC -L/mnt/usb1/scratch/buildbot/sage/sage-1/sage_upgrade/build/sage-4.5.3-5.0.beta5/local/lib -L/mnt/usb1/scratch/buildbot/sage/sage-1/sage_upgrade/build/sage-4.5.3-5.0.beta5/local/lib -o libmpfi.la -rpath /mnt/usb1/scratch/buildbot/sage/sage-1/sage_upgrade/build/sage-4.5.3-5.0.beta5/local/lib abs.lo acos.lo acosh.lo add.lo add_d.lo add_fr.lo add_q.lo add_si.lo add_ui.lo add_z.lo alea.lo asin.lo asinh.lo atan2.lo atan.lo atanh.lo bisect.lo blow.lo cbrt.lo clear.lo cmp.lo cmp_sym_pi.lo constants.lo cos.lo cosh.lo csc.lo csch.lo cot.lo coth.lo d_div.lo d_sub.lo diam.lo div.lo div_2exp.lo div_2si.lo div_2ui.lo div_d.lo div_fr.lo div_q.lo div_si.lo div_ui.lo div_z.lo error.lo exp.lo exp2.lo expm1.lo fr_div.lo fr_sub.lo get_endpoints.lo get_fr.lo get_d.lo get_prec.lo get_version.lo has_zero.lo hypot.lo increase.lo init.lo intersect.lo interv_d.lo interv_fr.lo interv_q.lo interv_si.lo interv_ui.lo interv_z.lo inp_str.lo inv.lo is_empty.lo is_inside.lo log.lo log10.lo log1p.lo log2.lo mag.lo mid.lo mig.lo mul.lo mul_2exp.lo mul_2si.lo mul_2ui.lo mul_d.lo mul_fr.lo mul_q.lo mul_si.lo mul_ui.lo mul_z.lo neg.lo out_str.lo predicates.lo print_binary.lo put.lo put_d.lo put_fr.lo put_q.lo put_si.lo put_ui.lo put_z.lo q_div.lo q_sub.lo quadrant.lo revert_if_needed.lo round_prec.lo sec.lo sech.lo set.lo set_d.lo set_fr.lo set_prec.lo set_q.lo set_si.lo set_str.lo set_ui.lo set_z.lo si_div.lo si_sub.lo sign.lo sin.lo sinh.lo sqr.lo sqrt.lo sub.lo sub_d.lo sub_fr.lo sub_q.lo sub_si.lo sub_ui.lo sub_z.lo swap.lo tan.lo tanh.lo ui_div.lo ui_sub.lo union.lo urandom.lo z_div.lo z_sub.lo -lmpfr -lgmp libtool: link: gcc -shared -fPIC -DPIC .libs/abs.o .libs/acos.o .libs/acosh.o .libs/add.o .libs/add_d.o .libs/add_fr.o .libs/add_q.o .libs/add_si.o .libs/add_ui.o .libs/add_z.o .libs/alea.o .libs/asin.o .libs/asinh.o .libs/atan2.o .libs/atan.o .libs/atanh.o .libs/bisect.o .libs/blow.o .libs/cbrt.o .libs/clear.o .libs/cmp.o .libs/cmp_sym_pi.o .libs/constants.o .libs/cos.o .libs/cosh.o .libs/csc.o .libs/csch.o .libs/cot.o .libs/coth.o .libs/d_div.o .libs/d_sub.o .libs/diam.o .libs/div.o .libs/div_2exp.o .libs/div_2si.o .libs/div_2ui.o .libs/div_d.o .libs/div_fr.o .libs/div_q.o .libs/div_si.o .libs/div_ui.o .libs/div_z.o .libs/error.o .libs/exp.o .libs/exp2.o .libs/expm1.o .libs/fr_div.o .libs/fr_sub.o .libs/get_endpoints.o .libs/get_fr.o .libs/get_d.o .libs/get_prec.o .libs/get_version.o .libs/has_zero.o .libs/hypot.o .libs/increase.o .libs/init.o .libs/intersect.o .libs/interv_d.o .libs/interv_fr.o .libs/interv_q.o .libs/interv_si.o .libs/interv_ui.o .libs/interv_z.o .libs/inp_str.o .libs/inv.o .libs/is_empty.o .libs/is_inside.o .libs/log.o .libs/log10.o .libs/log1p.o .libs/log2.o .libs/mag.o .libs/mid.o .libs/mig.o .libs/mul.o .libs/mul_2exp.o .libs/mul_2si.o .libs/mul_2ui.o .libs/mul_d.o .libs/mul_fr.o .libs/mul_q.o .libs/mul_si.o .libs/mul_ui.o .libs/mul_z.o .libs/neg.o .libs/out_str.o .libs/predicates.o .libs/print_binary.o .libs/put.o .libs/put_d.o .libs/put_fr.o .libs/put_q.o .libs/put_si.o .libs/put_ui.o .libs/put_z.o .libs/q_div.o .libs/q_sub.o .libs/quadrant.o .libs/revert_if_needed.o .libs/round_prec.o .libs/sec.o .libs/sech.o .libs/set.o .libs/set_d.o .libs/set_fr.o .libs/set_prec.o .libs/set_q.o .libs/set_si.o .libs/set_str.o .libs/set_ui.o .libs/set_z.o .libs/si_div.o .libs/si_sub.o .libs/sign.o .libs/sin.o .libs/sinh.o .libs/sqr.o .libs/sqrt.o .libs/sub.o .libs/sub_d.o .libs/sub_fr.o .libs/sub_q.o .libs/sub_si.o .libs/sub_ui.o .libs/sub_z.o .libs/swap.o .libs/tan.o .libs/tanh.o .libs/ui_div.o .libs/ui_sub.o .libs/union.o .libs/urandom.o .libs/z_div.o .libs/z_sub.o -Wl,-rpath -Wl,/mnt/usb1/scratch/buildbot/sage/sage-1/sage_upgrade/build/sage-4.5.3-5.0.beta5/local/lib -Wl,-rpath -Wl,/mnt/usb1/scratch/buildbot/sage/sage-1/sage_upgrade/build/sage-4.5.3-5.0.beta5/local/lib -L/mnt/usb1/scratch/buildbot/sage/sage-1/sage_upgrade/build/sage-4.5.3-5.0.beta5/local/lib /mnt/usb1/scratch/buildbot/sage/sage-1/sage_upgrade/build/sage-4.5.3-5.0.beta5/local/lib/libmpfr.so /mnt/usb1/scratch/buildbot/sage/sage-1/sage_upgrade/build/sage-4.5.3-5.0.beta5/local/lib/libgmp.so -O2 -Wl,-soname -Wl,libmpfi.so.0 -o .libs/libmpfi.so.0.0.0 libtool: link: (cd ".libs" && rm "libmpfi.so.0" && ln -s "libmpfi.so.0.0.0" "libmpfi.so.0") rm: cannot remove `libmpfi.so.0': No such file or directory make[2]: *** [libmpfi.la] Error 1
comment:74 Changed 8 years ago by
- Status changed from needs_work to needs_review
An updated package is available at the same address.
I also added a mecurial tag for mpfi-1.5.1.
comment:75 Changed 8 years ago by
- Keywords sd36 added
- Status changed from needs_review to positive_review
Looks good!
comment:76 Changed 8 years ago by
- Merged in set to sage-5.0.beta6
- Resolution set to fixed
- Status changed from positive_review to closed
There is spkg at http://sage.math.washington.edu/home/mhansen/mpfi-1.5.0.spkg