On Thu, Apr 8, 2010 at 10:01 PM, Bill Hart <goodwillh...@googlemail.com> wrote:
> Here's what I think, though it's only an opinion:
>
> 0) It's surprising that this broke, as the new XGCD code went into
> MPIR 1.2.0, which Sage already uses, but then it is not surprising as
> any changes made to the XGCD code can currently change the
> normalisation as no normalisation is enforced.
> 1) It's unlikely we can fix this properly very quickly. I think we
> have to hold this over until the next release of MPIR.

When might that next release happen?  Sage-5.0 is probably the next
release of Sage, and that's at least a month away.

William

> 2) We could write a normalisation wrapper around mpn_gcdext, but it
> would slow performance, so we obviously won't do that in a release.
>
> What could be done is to patch mpn_gcdext (see line 1105 of
> mpn/generic/gcdext.c).
>
> Rename this function to _mpn_gcdext and write a new mpn_gcdext (in the
> same file) which calls the old one and applies the required
> normalisation (see the GMP 5 documentation for details of the
> normalisation which Pari likes).
>
> The MPIR test suite will not care that you did this, as it doesn't
> test normalisation.
>
> If doctests still fail in Sage, fixing them will make Sage compatible
> both with future versions of MPIR, where we will fix this issue
> properly, and with GMP 5 and above. This means that when GMP 5 becomes
> stable and when the next version of MPIR comes out, Sage ought to, in
> theory, be able to swap between the two without changing xgcd
> normalisation.
>
> We purposely didn't deal with this issue because we thought Sage was
> already set up to handle the "normalisation" that MPIR had and that if
> we changed it, it would break. But it looks like I was wrong.
>
> Bill.
>
> On 9 April 2010 05:40, Bill Hart <goodwillh...@googlemail.com> wrote:
>> That's great that it builds now. Well done, and thanks for the effort!!
>>
>> Our XGCD has changed, but I don't think we define a normalisation as
>> such. From the manual:
>>
>> "Set g to the greatest common divisor of a and b, and in addition set
>> s and t to coefficients
>> satisfying as + bt = g. g is always positive, even if one or both of a
>> and b are negative."
>>
>> GMP recently changed back to their old normalisation.
>>
>> It looks, from the test results below that we screw up Pari anyway, so
>> we have to change something, it seems. Given that GMP changed back to
>> the old normalisation to support Pari, we should probably do the same.
>> I'm afraid this is not an issue we can resolve easily. The XGCD code
>> is very complex and it will take quite some time to rewrite it to
>> handle normalisation (which it currently just doesn't do at all).
>>
>> Bill.
>>
>> On 9 April 2010 05:10, William Stein <wst...@gmail.com> wrote:
>>> Hi,
>>>
>>> OK, after all this, the build finally completed.  The only changes I made 
>>> were:
>>>
>>> * Updated mpir to rc3
>>> * patched ecm as explained here:
>>>    
>>> http://lists.gforge.inria.fr/pipermail/ecm-discuss/2009-August/004070.html
>>>   (Though this had to be slightly modified -- just search for the
>>> same command, which moved.)
>>>
>>>
>>> I then ran the long Sage test suite, and some tests fail.
>>>
>>>  http://sage.math.washington.edu/home/wstein/build/mpir2/sage-4.3.5/testlong.log
>>>
>>> ----------------------------------------------------------------------
>>> The following tests failed:
>>>
>>>
>>>        sage -t  -long "devel/sage/doc/en/tutorial/tour_numtheory.rst"
>>>        sage -t  -long "devel/sage/doc/fr/tutorial/tour_numtheory.rst"
>>>        sage -t  -long "devel/sage/sage/modular/cusps.py"
>>>        sage -t  -long "devel/sage/sage/modular/modsym/boundary.py"
>>>        sage -t  -long "devel/sage/sage/modular/modsym/ambient.py"
>>>        sage -t  -long "devel/sage/sage/libs/pari/gen.pyx"
>>>        sage -t  -long "devel/sage/sage/rings/arith.py"
>>>        sage -t  -long "devel/sage/sage/rings/integer.pyx"
>>>        sage -t  -long
>>> "devel/sage/sage/rings/polynomial/multi_polynomial_ideal.py"
>>>        sage -t  -long "devel/sage/sage/tests/book_stein_ent.py"
>>>        sage -t  -long "devel/sage/sage/schemes/elliptic_curves/heegner.py"
>>> Total time for all tests: 7170.6 seconds
>>>
>>> --
>>>
>>> I looked and it appears that maybe all of these are the result of the
>>> XGCD behavior in MPIR changing again.  Has it changed to be like GMP
>>> now?  That would be convenient.
>>>
>>> This is all now
>>>
>>>  http://trac.sagemath.org/sage_trac/ticket/8664
>>>
>>> william
>>>
>>> --
>>> You received this message because you are subscribed to the Google Groups 
>>> "mpir-devel" group.
>>> To post to this group, send email to mpir-de...@googlegroups.com.
>>> To unsubscribe from this group, send email to 
>>> mpir-devel+unsubscr...@googlegroups.com.
>>> For more options, visit this group at 
>>> http://groups.google.com/group/mpir-devel?hl=en.
>>>
>>>
>>
>
> --
> You received this message because you are subscribed to the Google Groups 
> "mpir-devel" group.
> To post to this group, send email to mpir-de...@googlegroups.com.
> To unsubscribe from this group, send email to 
> mpir-devel+unsubscr...@googlegroups.com.
> For more options, visit this group at 
> http://groups.google.com/group/mpir-devel?hl=en.
>
>



-- 
William Stein
Associate Professor of Mathematics
University of Washington
http://wstein.org

-- 
You received this message because you are subscribed to the Google Groups 
"mpir-devel" group.
To post to this group, send email to mpir-de...@googlegroups.com.
To unsubscribe from this group, send email to 
mpir-devel+unsubscr...@googlegroups.com.
For more options, visit this group at 
http://groups.google.com/group/mpir-devel?hl=en.

Reply via email to