Skip to main content

There are precisely two available "serious" implementations of the standard algorithm for computing integral points on an elliptic curve: a non-free one in Magma (http://magma.maths.usyd.edu.au/magma/) and a free one in Sage (http://sagemath.org). The one in Sage was done by Cremona and two German masters students a few years ago, and when refereeing the Sage code, I compared the answers with Magma, and uncovered and reported numerous bugs in Magma, which were subsequently fixed. Here's how to use Sage to find all integral (or S-integral!) points on a curve over Q:

sage: E = EllipticCurve([1,2,3,4,5])
sage: E.integral_points()
[(1 : 2 : 1)]
sage: E.S_integral_points([2])
[(-103/64 : -233/512 : 1), (1 : 2 : 1)]

and here is how to use Magma:

> E := EllipticCurve([1,2,3,4,5]);
> IntegralPoints(E);
[ (1 : 2 : 1) ]
> SIntegralPoints(E, [2]);                                                     
[ (1 : 2 : 1), (-103/64 : -233/512 : 1) ]

Note that in both cases by default the points are only returned up to sign. In Sage you get both signs like this:

sage: E.integral_points(both_signs=True)
[(1 : -6 : 1), (1 : 2 : 1)]

Finally, you can use Magma for free online here: http://magma.maths.usyd.edu.au/calc/ and you can use Sage free here: http://demo.sagenb.org/https://sagecell.sagemath.org/. With Sage, you can also just download it for free and install it on your computer. With Magma, you have to pay between $100 and a few thousand dollars, depending on who you are, and deal with copy protection.

NOTE: Technically a system called SIMATH (http://tnt.math.se.tmu.ac.jp/simath/) had an implementation of computing integral points. But it was killed by our friends at Siemens Corp.

There are precisely two available "serious" implementations of the standard algorithm for computing integral points on an elliptic curve: a non-free one in Magma (http://magma.maths.usyd.edu.au/magma/) and a free one in Sage (http://sagemath.org). The one in Sage was done by Cremona and two German masters students a few years ago, and when refereeing the Sage code, I compared the answers with Magma, and uncovered and reported numerous bugs in Magma, which were subsequently fixed. Here's how to use Sage to find all integral (or S-integral!) points on a curve over Q:

sage: E = EllipticCurve([1,2,3,4,5])
sage: E.integral_points()
[(1 : 2 : 1)]
sage: E.S_integral_points([2])
[(-103/64 : -233/512 : 1), (1 : 2 : 1)]

and here is how to use Magma:

> E := EllipticCurve([1,2,3,4,5]);
> IntegralPoints(E);
[ (1 : 2 : 1) ]
> SIntegralPoints(E, [2]);                                                     
[ (1 : 2 : 1), (-103/64 : -233/512 : 1) ]

Note that in both cases by default the points are only returned up to sign. In Sage you get both signs like this:

sage: E.integral_points(both_signs=True)
[(1 : -6 : 1), (1 : 2 : 1)]

Finally, you can use Magma for free online here: http://magma.maths.usyd.edu.au/calc/ and you can use Sage free here: http://demo.sagenb.org/. With Sage, you can also just download it for free and install it on your computer. With Magma, you have to pay between $100 and a few thousand dollars, depending on who you are, and deal with copy protection.

NOTE: Technically a system called SIMATH (http://tnt.math.se.tmu.ac.jp/simath/) had an implementation of computing integral points. But it was killed by our friends at Siemens Corp.

There are precisely two available "serious" implementations of the standard algorithm for computing integral points on an elliptic curve: a non-free one in Magma (http://magma.maths.usyd.edu.au/magma/) and a free one in Sage (http://sagemath.org). The one in Sage was done by Cremona and two German masters students a few years ago, and when refereeing the Sage code, I compared the answers with Magma, and uncovered and reported numerous bugs in Magma, which were subsequently fixed. Here's how to use Sage to find all integral (or S-integral!) points on a curve over Q:

sage: E = EllipticCurve([1,2,3,4,5])
sage: E.integral_points()
[(1 : 2 : 1)]
sage: E.S_integral_points([2])
[(-103/64 : -233/512 : 1), (1 : 2 : 1)]

and here is how to use Magma:

> E := EllipticCurve([1,2,3,4,5]);
> IntegralPoints(E);
[ (1 : 2 : 1) ]
> SIntegralPoints(E, [2]);                                                     
[ (1 : 2 : 1), (-103/64 : -233/512 : 1) ]

Note that in both cases by default the points are only returned up to sign. In Sage you get both signs like this:

sage: E.integral_points(both_signs=True)
[(1 : -6 : 1), (1 : 2 : 1)]

Finally, you can use Magma for free online here: http://magma.maths.usyd.edu.au/calc/ and you can use Sage free here: https://sagecell.sagemath.org/. With Sage, you can also just download it for free and install it on your computer. With Magma, you have to pay between $100 and a few thousand dollars, depending on who you are, and deal with copy protection.

NOTE: Technically a system called SIMATH (http://tnt.math.se.tmu.ac.jp/simath/) had an implementation of computing integral points. But it was killed by our friends at Siemens Corp.

Source Link
William Stein
  • 2.4k
  • 20
  • 21

There are precisely two available "serious" implementations of the standard algorithm for computing integral points on an elliptic curve: a non-free one in Magma (http://magma.maths.usyd.edu.au/magma/) and a free one in Sage (http://sagemath.org). The one in Sage was done by Cremona and two German masters students a few years ago, and when refereeing the Sage code, I compared the answers with Magma, and uncovered and reported numerous bugs in Magma, which were subsequently fixed. Here's how to use Sage to find all integral (or S-integral!) points on a curve over Q:

sage: E = EllipticCurve([1,2,3,4,5])
sage: E.integral_points()
[(1 : 2 : 1)]
sage: E.S_integral_points([2])
[(-103/64 : -233/512 : 1), (1 : 2 : 1)]

and here is how to use Magma:

> E := EllipticCurve([1,2,3,4,5]);
> IntegralPoints(E);
[ (1 : 2 : 1) ]
> SIntegralPoints(E, [2]);                                                     
[ (1 : 2 : 1), (-103/64 : -233/512 : 1) ]

Note that in both cases by default the points are only returned up to sign. In Sage you get both signs like this:

sage: E.integral_points(both_signs=True)
[(1 : -6 : 1), (1 : 2 : 1)]

Finally, you can use Magma for free online here: http://magma.maths.usyd.edu.au/calc/ and you can use Sage free here: http://demo.sagenb.org/. With Sage, you can also just download it for free and install it on your computer. With Magma, you have to pay between $100 and a few thousand dollars, depending on who you are, and deal with copy protection.

NOTE: Technically a system called SIMATH (http://tnt.math.se.tmu.ac.jp/simath/) had an implementation of computing integral points. But it was killed by our friends at Siemens Corp.