Karim BELABAS on Thu, 14 Sep 2000 22:15:54 +0200 (MET DST) |
[Date Prev] [Date Next] [Thread Prev] [Thread Next] [Date Index] [Thread Index]
Re: Inefficient "solve" in Pari 2.0.18 (beta) ? |
[Will Galway:] > The online documentation for "solve" says that Brent's method is used, > but the behavior is more like simple bisection, even for what I would > consider to be very nice functions. Try, for example > > testfunc(x) = print(x); sin(x) > solve(x= -0.1, 0.2, testfunc(x)) > > or > > testfunc(x) = print(x); x^2-1 > solve(x= 0.8, 1.1, testfunc(x)) > > working with (default) 28-digit precision. There is a typo in the code (standing there since at least 1.39.15, and presumably from the earliest versions). In line 1161 of langage/sumiter.c (line numbers assume version 2.0.18) replace if (cmprr(a,b)==0) by if (cmprr(a,c)==0) The CVS repository has also been updated. Cheers, Karim. __ Karim Belabas email: Karim.Belabas@math.u-psud.fr Dep. de Mathematiques, Bat. 425 Universite Paris-Sud Tel: (00 33) 1 69 15 57 48 F-91405 Orsay (France) Fax: (00 33) 1 69 15 60 19 -- PARI/GP Home Page: http://www.parigp-home.de/