John Cremona on Fri, 09 Oct 2026 12:14:32 +0200


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

Re: ellintpoints(E) workaround





Note my new personal email address

Sent with Proton Mail secure email.

On Friday, October 9th, 2026 at 9:48 AM, Bill Allombert <Bill.Allombert@math.u-bordeaux.fr> wrote:

> On Wed, Oct 07, 2026 at 12:52:18AM +0200, hermann@stamm-wilbrandt.de wrote:
> > An elliptic curve can have only a finite number of points with integer
> > coordinates by Siegel's theorem.
> >
> > PARI/GP seems not to have a function to determine the integral points of
> > elliptic curve E.
> >
> > My workaround ellintpoints(E) (named after existing ellratpoints(E)) calls
> > out to sagemath E.integral_points():
> >
> > sage(cmd) = eval(externstr(Str("sage -q -c \"", cmd, "\""))[1]);
> >
> > ellintpoints(E) = {
> >   sage(Str("print([[int(P[0]), int(P[1])] for P in EllipticCurve(",
> >        E[1..5],").integral_points()])"));
> > }
> 
> What gives your function for
> E = [1, -1, 1, -11, 16]
> and
> E = [0, 1, 0, 44, -847]
> 

NB These are the first two curves where Sage's current code misses one or more points: x=20829482 for the first which is 7 times the generator;  x=176 and 179 for the second, from  5 and 6 times the generator, though it does find 11 times the generator.  I said that that code has bugs!   It is a very frustrating algorithm since for rank 1 curves like this it is very fast to check which of the first (say) 100 multiples of the generator are integral.

John



> Cheers,
> Bill.
> 
>