Karim Belabas on Tue, 17 Jun 2014 13:33:46 +0200


[Date Prev] [Date Next] [Thread Prev] [Thread Next] [Date Index] [Thread Index]

Re: precision problem in nffactor


* John Cremona [2014-06-17 10:27]:
> In 2.7.1 I see this:
> 
> ? nffactor(nfinit(y^2 - 22), Mod(1, y^2 - 22)*x^2 +
> Mod(926246528884912528275985458927067632*y -
> 4344481316563541186659879867597013188, y^2 - 22))
>   ***   at top-level: nffactor(nfinit(y^2-
>   ***                 ^--------------------
>   *** nffactor: the PARI stack overflows !
>   current stack size: 8000000 (7.629 Mbytes)
>   [hint] you can increase GP stack with allocatemem()
> 
> but increasing the precision makes the problem go away:
[...]
> so it does not seem like a memory issue at all.  Surely with exact
> input and output the user should not have to think about internal
> working precision?

Not a memory issue indeed. The low-level function from the polroots
module that (sharply) estimates the largest modulus of a polynomial
T can't handle the case T(0) = 0 (nor the case where T is constant,
but that's not the issue here...).

It never occurs in the original context of polroots(), but it can occur
in the context of nfroots / nffactor that call it with T := the image
through the successive complex embeddings of our algebraic polynomial.

Fixed in master (2.8.*). Thanks for your report !

Cheers,

    K.B.

P.S.
> This arose while computing the torsion subgroup of an elliptic curve
> over Q(sqrt(22)) [...]

I'll soon commit the code corresponding to this :-) (written by F. Brunault
and B. Banwait during the Atelier, last January)

--
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]
`