| Bill Allombert on Wed, 07 Oct 2026 10:49:50 +0200 |
[Date Prev] [Date Next] [Thread Prev] [Thread Next] [Date Index] [Thread Index]
| Re: ellintpoints(E) workaround |
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()])"));
> }
How does it work ? How far can it go ?
For conductor at most 500000, one can use John Cremona database:
https://github.com/JohnCremona/ecdata/tree/master/intpts
If one do not need a proven result one can do ellratpoints(E,[10^9,1])
? E=ellinit([-14776, -670031]);
? ellratpoints(E,[10^9,1])
%8 = [[-80,7],[-80,-7],[-73,140],[-73,-140],[-66,133],[-66,-133],[-60,23],[-60,-23],[140,73],[140,-73],[214,2443],[214,-2443],[227,2770],[227,-2770],[246,3253],[246,-3253],[514,11293],[514,-11293],[594,14147],[594,-14147],[802,22435],[802,-22435],[1660,67447],[1660,-67447],[31224,5517337],[31224,-5517337],[100016,31630343],[100016,-31630343],[160360,64216103],[160360,-64216103]]
Cheers,
Bill