Skip to content

bug in is_square over number fields #16894

@JohnCremona

Description

@JohnCremona

A bug in pari 2.7.1 causes this:

sage: K.<a> = QuadraticField(22)
sage: u = 42*a - 197 # fundamental unit
sage: D = u^14
sage: D.is_square()
MemoryError: Unable to allocate 327680000000 bytes for the PARI stack
(instead, allocated 262144000000 bytes)

This was reported upstream: http://pari.math.u-bordeaux.fr/archives/pari-users-1406/msg00006.html

Upstream fixed this in their git master:

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 !

Upstream: Fixed upstream, but not in a stable release.

CC: @jdemeyer

Component: packages: standard

Author: Jeroen Demeyer

Branch: dbe9fb5

Reviewer: John Cremona

Issue created by migration from https://trac.sagemath.org/ticket/16894

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions