Karim Belabas on Sat, 31 Jan 2004 18:34:36 +0100 |
[Date Prev] [Date Next] [Thread Prev] [Thread Next] [Date Index] [Thread Index]
Re: bernfrac() faster than bernreal() |
* Bill Allombert [2004-01-30 23:38]: > On Fri, Jan 30, 2004 at 09:16:03PM +0100, Karim Belabas wrote: > > bernreal is an initialization function, not a 1-shot routine: > > > > ? \p2000 > > realprecision = 2003 significant digits (2000 digits displayed) > > ? bernreal(2000); > > time = 10,070 ms. > > ? bernreal(2000); > > time = 0 ms. > > ? bernreal(1000); > > time = 0 ms. > > Then I would suggest to update both the help and the documentation to > reflect this: Since I do not intend to let it stay that way, I'd rather not document it. As you noticed, bernreal is very inefficient in its current incarnation. Especially if you need a single value for a huge index. Depending on the algorithm used, there may or may not be useful intermediate results to be cached. Compare (18:13) gp > \p10000 (18:13) gp > zeta(10^4); time = 60 ms. (18:13) gp > bernreal(10^4); *** user interrupt after 5mn, 34,860 ms. We should have a berninit() function ( or a flag to bernreal to force initialization ), and not depend on the routine actually doing further initializations. Cheers, Karim. -- Karim Belabas Tel: (+33) (0)1 69 15 57 48 Dep. de Mathematiques, Bat. 425 Fax: (+33) (0)1 69 15 60 19 Universite Paris-Sud http://www.math.u-psud.fr/~belabas/ F-91405 Orsay (France) http://pari.math.u-bordeaux.fr/ [PARI/GP]