Karim Belabas on Sat, 20 Dec 2008 10:20:25 +0100 |
[Date Prev] [Date Next] [Thread Prev] [Thread Next] [Date Index] [Thread Index]
Re: Functions elllderiv and ellanalyticrank |
* Bill Allombert [2008-12-19 23:20]: > On Fri, Dec 19, 2008 at 07:20:53PM +0100, Karim Belabas wrote: > > > 2) I think elllderiv should be renamed ellL1 for consistency with bnrL1 > > > (and maybe add a flag so that both functions have the same semantic). Had forgotten to commit this one, sorry. No flag added: contrary to bnrL1, we compute the value at the center of the critical strip, so no symmetry in the special value here. > > > 7) Please document what is VSX in #define VSX 5. > > > (Or better remove VSX. One day someone will create a CPU called VSX and > > > gcc with define VSX. It already appened with k6 and sgi.) Done. My understanding is that VSX (now thresh_SMALL) is a completely random value which -- I hope! -- performs well in practice, used to switch between expansions near 0 and infinity for our incomplete integral transforms. > Also the DEBUG message should be improved to be more useful. Done to some extent, I think. More specific suggestions (svn11475 and above) ? > > There are only two items left from my initial TODO list about this > > patch: > > > > A) It still uses far too much memory, so that the "small" curves with > > rank 7 (say) can't be handled with a PARI stack of 1GByte. > > > > B) Once A) is no longer a problem (say, in about 40 minutes), check Tom > > Womack's table at > > > > http://www.warwick.ac.uk/staff/J.E.Cremona/womack.html > > > > Many interesting curves with "largish but tolerable" conductor... > > I just checked the first curves for each rank <=7, and it worked fine. > For the rank 7, and curve [0,1,0,-5945,583879], we get: > > %3 = [7, 10410274.011880989226208667596394924308] > *** last result computed in 32mn, 22,973 ms. Yes, point A) has recently been fixed. GP/PARI CALCULATOR Version 2.4.3 (development svn-11470) amd64 running linux (x86-64 kernel) 64-bit version -- debugging [...] ? e = ellinit([0,1,0,-5945,583879], 1); ellanalyticrank(e) *** at top-level: ellanalyticrank(e) *** ^------------------ *** ellanalyticrank: the PARI stack overflows ! current stack size: 1280000000 (1220.703 Mbytes) [hint] you can increase GP stack with allocatemem() GP/PARI CALCULATOR Version 2.4.3 (development svn-11471) amd64 running linux (x86-64 kernel) 64-bit version [...] ? e = ellinit([0,1,0,-5945,583879], 1); ellanalyticrank(e) time = 30mn, 21,814 ms. %1 = [7, 10410274.011880989226208667596394924308] The corresponding changelog: r11471 | kb | 2008-12-19 23:35:00 +0100 (Fri, 19 Dec 2008) M /trunk/src/modules/elliptic.c 1) add proper garbage collecting /* conductor 2106671822272, rank 7 */ ellanalyticrank( ellinit([0,1,0,-5945,583879]) ); now finishes in ~30 minutes with default stack [ used to overflow a 1GB stack ] 2) finish type cleanup (enforce strict input/output types) 3) el->an now a t_VECSMALL 4) miscellaneous small cleanups I believe 11471 and above are ready for heavy-duty testing :-). 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] `