| Karim Belabas on Thu, 16 Feb 2012 02:06:45 +0100 |
[Date Prev] [Date Next] [Thread Prev] [Thread Next] [Date Index] [Thread Index]
| Re: Complex AGM |
Package: pari
Version: since f59d9e0c [2005]
* Bill Allombert [2012-02-16 01:11]:
> On Wed, Feb 15, 2012 at 03:24:21PM +0000, John Cremona wrote:
> > For a definition of what "optimal" means and why it matters for
> > elliptic curve period computations, see http://arxiv.org/abs/1011.0914
> >
> > I am pretty sure that taking the principal square root will never give
> > a sequence converging to zero. Using the optimal branch always gives
> > the largest limit (and hence the smallest periods), though there is al
> > ittle more to the question than that.
>
> In theory, I agree that should converge, but in practice (git-9749657)
>
> parisize = 8000000, primelimit = 500509
> ? agm(.1+I/1000,1)
> *** at top-level: agm(.1+I/1000,1)
> *** ^----------------
> *** agm: the PARI stack overflows !
That's quite unrelated, the bug is in precision(), precrealexact() to be
precise.
(01:45) gp > agm(.1+I/1000.,1)
^------ important !
time = 0 ms.
%1 = 0.42504345251657375080360809311316525277 + 0.0011373632973048871855491442682160760332*I
Looking at that function precrealexact() [ which I wrote about 7 years ago ],
I have no idea why it should ever have been useful or necessary. As I see it
now,
precision(t_COMPLEX with a *small, exact* component [= t_FRAC])
is just broken (larger than it should be).
The bug never surfaced because agm1() seems to be the only function using
'precision' with t_COMPLEX inputs to ensure termination. (In that case an
unachievable accuracy is required.)
And AGM is basically untested:
(2:02) colibri-kb% grep agm src/test/in/*
src/test/in/compat:agm(1,2)
src/test/in/compat:agm(1+o(7^5),8+o(7^5))
src/test/in/compat:logagm(2)
src/test/in/trans:agm(1,2)
src/test/in/trans:agm(1+O(7^5),8+O(7^5))
I'll have another look tomorrow [and add tests] :-)
Cheers,
K.B.
P.S: For the record: the threshold used to switch between log / logagm
for t_COMPLEX inputs is unrelated to the input accuracy... :-(
Bug number 2.
--
Karim Belabas, IMB (UMR 5251) Tel: (+33) (0)5 40 00 26 17
Universite Bordeaux 1 Fax: (+33) (0)5 40 00 69 50
351, cours de la Liberation http://www.math.u-bordeaux1.fr/~belabas/
F-33405 Talence (France) http://pari.math.u-bordeaux1.fr/ [PARI/GP]
`