Tables of elliptic curves of given rank - Elliptic curves

Skip to content
Back to top
View this page
Edit this page

# Tables of elliptic curves of given rank

The default database of curves contains the following data:

Rank | Number of curves | Maximal conductor
--- | --- | ---
0 | 30427 | 9999
1 | 31871 | 9999
2 | 2388 | 9999
3 | 836 | 119888
4 | 10 | 1175648
5 | 5 | 37396136
6 | 5 | 6663562874
7 | 5 | 896913586322
8 | 6 | 457532830151317
9 | 7 | ~9.612839e+21
10 | 6 | ~1.971057e+21
11 | 6 | ~1.803406e+24
12 | 1 | ~2.696017e+29
14 | 1 | ~3.627533e+37
15 | 1 | ~1.640078e+56
17 | 1 | ~2.750021e+56
19 | 1 | ~1.373776e+65
20 | 1 | ~7.381324e+73
21 | 1 | ~2.611208e+85
22 | 1 | ~2.272064e+79
23 | 1 | ~1.139647e+89
24 | 1 | ~3.257638e+95
28 | 1 | ~3.455601e+141

Note that lists for r>=4 are not exhaustive; there may well be curves of the given rank with conductor less than the listed maximal conductor, which are not included in the tables.

AUTHORS:

- William Stein (2007-10-07): initial version

- Simon Spicer (2014-10-24): Added examples of more high-rank curves

See also the functions `cremona_curves()` and `cremona_optimal_curves()` which enable easy looping through the Cremona elliptic curve database.

class sage.schemes.elliptic_curves.ec_database.EllipticCurves

  Bases: `object`

  rank(rank, tors=0, n=10, labels=False)

    Return a list of at most \(n\) curves with given rank and torsion order.

    INPUT:

    - `rank` – integer; the desired rank

    - `tors` – integer (default: 0); the desired torsion order (ignored if 0)

    - `n` – integer (default: 10); the maximum number of curves returned

    - `labels` – boolean (default: `False`); if `True`, return Cremona labels instead of curves

    OUTPUT: list at most \(n\) of elliptic curves of required rank

    EXAMPLES:

    Sage

        sage: elliptic_curves.rank(n=5, rank=3, tors=2, labels=True)
        ['59450i1', '59450i2', '61376c1', '61376c2', '65481c1']

    Python

        >>> from sage.all import *
        >>> elliptic_curves.rank(n=Integer(5), rank=Integer(3), tors=Integer(2), labels=True)
        ['59450i1', '59450i2', '61376c1', '61376c2', '65481c1']

    Sage

        sage: elliptic_curves.rank(n=5, rank=0, tors=5, labels=True)
        ['11a1', '11a3', '38b1', '50b1', '50b2']

    [Python]

        >>> from sage.all import *
        >>> elliptic_curves.rank(n=Integer(5), rank=Integer(0), tors=Integer(5), labels=True)
        ['11a1', '11a3', '38b1', '50b1', '50b2']

    Sage

        sage: elliptic_curves.rank(n=5, rank=1, tors=7, labels=True)
        ['574i1', '4730k1', '6378c1']

    Python

        >>> from sage.all import *
        >>> elliptic_curves.rank(n=Integer(5), rank=Integer(1), tors=Integer(7), labels=True)
        ['574i1', '4730k1', '6378c1']

    Sage

        sage: e = elliptic_curves.rank(6)[0]; e.ainvs(), e.conductor()
        ((1, 1, 0, -2582, 48720), 5187563742)
        sage: e = elliptic_curves.rank(7)[0]; e.ainvs(), e.conductor()
        ((0, 0, 0, -10012, 346900), 382623908456)
        sage: e = elliptic_curves.rank(8)[0]; e.ainvs(), e.conductor()
        ((1, -1, 0, -106384, 13075804), 249649566346838)

    [Python]

        >>> from sage.all import *
        >>> e = elliptic_curves.rank(Integer(6))[Integer(0)]; e.ainvs(), e.conductor()
        ((1, 1, 0, -2582, 48720), 5187563742)
        >>> e = elliptic_curves.rank(Integer(7))[Integer(0)]; e.ainvs(), e.conductor()
        ((0, 0, 0, -10012, 346900), 382623908456)
        >>> e = elliptic_curves.rank(Integer(8))[Integer(0)]; e.ainvs(), e.conductor()
        ((1, -1, 0, -106384, 13075804), 249649566346838)

    For large conductors, the labels are not known:

    Sage

        sage: L = elliptic_curves.rank(6, n=3); L
        [Elliptic Curve defined by y^2 + x*y = x^3 + x^2 - 2582*x + 48720 over Rational Field,
         Elliptic Curve defined by y^2 + y = x^3 - 7077*x + 235516 over Rational Field,
         Elliptic Curve defined by y^2 + x*y = x^3 - x^2 - 2326*x + 43456 over Rational Field]
        sage: L[0].cremona_label()
        Traceback (most recent call last):
        ...
        LookupError: Cremona database does not contain entry for Elliptic Curve
        defined by y^2 + x*y = x^3 + x^2 - 2582*x + 48720 over Rational Field
        sage: elliptic_curves.rank(6, n=3, labels=True)
        []

    Python

        >>> from sage.all import *
        >>> L = elliptic_curves.rank(Integer(6), n=Integer(3)); L
        [Elliptic Curve defined by y^2 + x*y = x^3 + x^2 - 2582*x + 48720 over Rational Field,
         Elliptic Curve defined by y^2 + y = x^3 - 7077*x + 235516 over Rational Field,
         Elliptic Curve defined by y^2 + x*y = x^3 - x^2 - 2326*x + 43456 over Rational Field]
        >>> L[Integer(0)].cremona_label()
        Traceback (most recent call last):
        ...
        LookupError: Cremona database does not contain entry for Elliptic Curve
        defined by y^2 + x*y = x^3 + x^2 - 2582*x + 48720 over Rational Field
        >>> elliptic_curves.rank(Integer(6), n=Integer(3), labels=True)
        []