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/