8.1.1 sage.tables.cremona - Cremona's tables of elliptic curves.

SAGE includes John Cremona's tables of elliptic curves in an easy-to-use format. The unique instance of the class CremonaDatabase() gives access to the database.

If the full CremonaDatabase isn't installed, a mini-version, which is included by default with SAGE, is included. It includes Weierstrass equations, rank, and torsion for curves up to conductor 10000.

The database includes all curves of conductor up to 80000 (and growing). It also includes data related to the BSD conjecture and modular degrees for all of these curves, and generators for the Mordell-Weil groups.

The module sage.tables.cremona defines the following classes:

class LargeCremonaDatabase
The Cremona database of elliptic curves.

sage: c = CremonaDatabase()
sage: c
Cremona's database of elliptic curves
sage: c.allcurves(11)
{'A1': [[0, -1, 1, -10, -20], 0, 5], 'A3': [[0, -1, 1, 0, 0],
0, 5], 'A2': [[0, -1, 1, -7820, -263580], 0, 1]}

class MiniCremonaDatabase
A mini version of the Cremona database that contains only the Weierstrass equations, rank and torsion of elliptic curves of conductor up to 10000 and nothing else.

The module sage.tables.cremona defines the following methods:

CremonaDatabase( )

cremona_letter_code( n)

Returns the Cremona letter code corresponding to an integer. For example, 1 -> A 26 -> Z 27 -> AA 52 -> ZZ 53 -> AAA etc.

INPUT:
    n -- int
OUTPUT:
    str

sage: cremona_letter_code(1)
'A'
sage: cremona_letter_code(26)
'Z'
sage: cremona_letter_code(27)
'AA'
sage: cremona_letter_code(521)
'AAAAAAAAAAAAAAAAAAAAA'
sage: cremona_letter_code(53)
'AAA'
sage: cremona_letter_code(2005)
'CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC
CCCCCCCCCCCCCCCC'

is_optimal_id( id)

Returns true if the Cremona id refers to an optimal curve, and false otherwise. The curve is optimal if the id, which is of the form [letter code][number] has number 1.

NOTE: 990H3 is the optimal curve in that class, so doesn't obey this rule.

INPUT:
    id -- str of form letter code followed by an integer, e.g.,
          A3,   BB5, etc.
OUTPUT:
    bool

sage: is_optimal_id('A2')
False
sage: is_optimal_id('B1')
True
sage: is_optimal_id('CC1')
True
sage: is_optimal_id('CC2')
False

parse_cremona_label( label)

Given a Cremona label corresponding that defines an elliptic curve, e.g., 11A1 or 37B3, parse the label and return the conductor, isogeny class label, and number.

The isogeny number may be omitted, in which case it default to 1. If the isogeny number and letter are both omitted, so label is just a string representing a conductor, then the label defaults to 'A' and the number to 1.

INPUT:
    label -- str
OUTPUT:
    int -- the conductor 
    str -- the isogeny class label
    int -- the number

sage: parse_cremona_label('37A2')
(37, 'A', 2)
sage: parse_cremona_label('37B1')
(37, 'B', 1)
sage: parse_cremona_label('10AA2')
(10, 'AA', 2)

rebuild( ftpdata_tgz, largest_conductor, [decompress=True])

Rebuild the LargeCremonaDatabase from scratch using the ftpdata_tgz tarball.



Subsections
See About this document... for information on suggesting changes.