Karim BELABAS on Wed, 9 Oct 2002 20:28:45 +0200 (MEST) |
[Date Prev] [Date Next] [Thread Prev] [Thread Next] [Date Index] [Thread Index]
Re: gp: algdep(sqrt(47/41),2) *** precision too low in mpent |
On Tue, 8 Oct 2002, Michael Somos wrote: > ? algdep(sqrt(47/41),2) > %1 = 41*x^2 - 47 > ? default(realprecision,29) > realprecision = 38 significant digits (29 digits displayed) > ? algdep(sqrt(47/41),2) > *** precision too low in mpent (precision loss in trucation). > > This behavior is very puzzling and it would be nice to know how to > get around it if it can't be fixed. Increase the precision further. I could have a "clean" error, that would look like "precision too low in PSLQ, please compute input to higher accuracy". But would that help much ? There is some amount of guessing in PSLQ: when is an integer relation suitably close to 0 ? The higher the precision of the inputs, the more difficult we are about the closeness to 0 [ the current heuristic is: x = 0 if |x| < 2^{ bit_accuracy(input) - 2*n }, if the lattice has dimension n ]. So we may succeed at \p28 and fail at \p38. In fact, at \p38, (20:26) gp > algdep(sqrt(47/41), 3) %1 = 41*x^2 - 47 succeeds because n is higher than it should be, so we reduce a lattice of larger dimension, and are more tolerant with our zeroes... The "amount of success" in the algorithm is not a strictly increasing function of the accuracy of the inputs. Local irregularities are expected. Karim. P.S: "PSLQ Level 2" (using machine floating point computations), although in principle much faster, is currently disabled due to a number of problems like this one (much more accute: there are genuine bugs in the current implementation). -- Karim Belabas Tel: (+33) (0)1 69 15 57 48 Dép. de Mathematiques, Bat. 425 Fax: (+33) (0)1 69 15 60 19 Université Paris-Sud Email: Karim.Belabas@math.u-psud.fr F-91405 Orsay (France) http://www.math.u-psud.fr/~belabas/ -- PARI/GP Home Page: http://www.parigp-home.de/