hermann on Wed, 07 Oct 2026 00:52:24 +0200


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

ellintpoints(E) workaround


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()])"));
}


I was able to determine all but integral points in PARI/GP.
Did I miss how to do that in PARI/GP?
If not, might ellintpoints be implemented in the future?
(I know that the Baker bounds on height might get astronomically high)

Demo determines coefficients of the generators for each integral point:

(sage) hermann@9950x:~/sage$ xy="[73,140]" gp -q < integral_points_coefficients.gp
[0, 0, 0, -14776, -670031]  1
[-80, -7](1) -> [-1, 0, 0, 0]~
[-73, -140](1) -> [0, -1, 0, 0]~
[-66, -133](1) -> [0, 0, -1, 0]~
[-60, -23](1) -> [0, 0, 0, -1]~
[140, -73](1) -> [0, -1, -1, 0]~
[214, -2443](1) -> [0, -1, 0, -1]~
[227, -2770](1) -> [1, 0, 1, 0]~
[246, -3253](1) -> [-1, 0, 1, 0]~
[514, -11293](1) -> [1, 1, 0, 0]~
[594, -14147](1) -> [-1, 1, 0, 0]~
[802, -22435](1) -> [0, 0, -1, 1]~
[1660, -67447](1) -> [0, -1, 1, 0]~
[31224, -5517337](1) -> [1, -1, -1, -1]~
[100016, -31630343](1) -> [2, 0, 0, 0]~
[160360, -64216103](1) -> [-1, -1, -1, -1]~
(sage) hermann@9950x:~/sage$


Regards,

Hermann.