Karim Belabas on Sun, 21 Dec 2008 13:34:22 +0100


[Date Prev] [Date Next] [Thread Prev] [Thread Next] [Date Index] [Thread Index]

Re: Functions elllderiv and ellanalyticrank


* Bill Allombert [2008-12-20 20:31]:
> On Sat, Dec 20, 2008 at 07:21:22PM +0100, Karim Belabas wrote:
> > > With \p38, ellanalytic rank fails on a large number (about 1/3 so far)
> > > of rank 5 curve in Womack database (it reports rank 1 instead of 5).  
> > > 
> > > An example: [0, 0, 0, -5187, 176830]
> > > ? \p38
> > >    realprecision = 38 significant digits
> > > ? ellanalyticrank(ellinit([0, 0, 0, -5187, 176830]))
> > > %102 = [1, 1278372.8304848296806080373284485378614]
> > [...]
> > > Clearly the value L'(1) is worng (independently of the rank of the curve).
> > 
> > Fixed since svn-11480 (the an cache should have been initialized to 0).
> 
> Now, ellanalytic report rank 5 for all the rank 5 curves in Womack
> database. Good!
> 
> One comment on ellanalyticrank():
> the instances of ellL1_i could reuse the vecsmall el->ap, growing it if
> necessary.

1) actually, it should never need to grow, we need fewer coefficients as
r increases.

2) with current thresholds and tunings, this would not have a noticeable
effect : the cache bounds are hardcoded as sqrt(coeff bound),
not in terms of available memory. And unfortunately, there are (many)
more primes between sqrt(X) and X, than between 0 and sqrt(X)...

For our favourite rank 5 example,

  e = ellinit([0,1,0,-5945,583879], 1); ellanalyticrank(e)

re-using old *cached* values of ap lowers the total number of calls
to ellap from 2941594 to 2922356...

I implemented it nevertheless because it doesn't complicate too much the code.



BGadd could be rewritten to cache all a_n for n < BOUND
(not only prime values), with BOUND as large as possible given available
stack space. But profiling the example shows that less than 1% of the
total time is currently spent computing a_p's [ and marginally more
computing a_n's ]. More than 95% of the time is spent computing the incomplete
Mellin transforms...

Cheers,

    K.B.
--
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-bordeaux.fr/~belabas/
F-33405 Talence (France)       http://pari.math.u-bordeaux.fr/  [PARI/GP]
`