Karim Belabas on Sat, 09 Nov 2013 23:37:12 +0100 |
[Date Prev] [Date Next] [Thread Prev] [Thread Next] [Date Index] [Thread Index]
Re: Large errors for eint() |
* Jeroen Demeyer [2013-11-09 16:19]: > It seems that the eint() function can have quite large errors in its > approximation. > > Just one example with a relative error of over 28 bits: > gp> \p 481 > realprecision = 481 significant digits > gp> x = eint1(15); > gp> \p 500 > realprecision = 500 significant digits > gp> y = eint1(15); > gp> (x-y)/x * 2^1600 > %19 = 418655076.1440077999 > > With the vector version of eint1, errors can be even larger. > > Do you consider this a bug? Yes. Thanks for your report ! 1) For eint1, it was an oversight (1-word cancellation just before returning the result, plus a few other places where we computed with one word less than intended). This one is now fixed in commit f0ed0cd2 2) For veceint1, a documentation problem: the function is implemented to ensure a bound on the *absolute* error. This is inconsistent with (most) other transcendental functions, but corresponds to the main application for us: computing L-functions via approximate functional equation. I have just fixed the documentation. 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-bordeaux1.fr/~kbelabas/ F-33405 Talence (France) http://pari.math.u-bordeaux1.fr/ [PARI/GP] `