Sage gives access to the Stein-Watkins table of elliptic curves, via an optional package that you must install. This is a huge database of elliptic curves. You can install the database (a 2.6GB package) with the command
sage -i database_stein_watkins
You can also automatically download a small version, which takes much less time, using the command
sage -i database_stein_watkins_mini
This database covers a wide range of conductors, but unlike the Cremona database, this database need not list all curves of a given conductor. It lists the curves whose coefficients are not “too large” (see [SteinWatkins]).
EXAMPLES: We obtain the first table of elliptic curves.
sage: d = SteinWatkinsAllData(0)
sage: d
Stein-Watkins Database a.0 Iterator
We type d.next() to get each isogeny class of curves from d:
sage: C = d.next() # optional - database_stein_watkins
sage: C # optional - database_stein_watkins
Stein-Watkins isogeny class of conductor 11
sage: d.next() # optional - database_stein_watkins
Stein-Watkins isogeny class of conductor 14
sage: d.next() # optional - database_stein_watkins
Stein-Watkins isogeny class of conductor 15
An isogeny class has a number of attributes that give data about
the isogeny class, such as the rank, equations of curves,
conductor, leading coefficient of -function, etc.
sage: C.data # optional - database_stein_watkins
['11', '[11]', '0', '0.253842', '25', '+*1']
sage: C.curves # optional - database_stein_watkins
[[[0, -1, 1, 0, 0], '(1)', '1', '5'],
[[0, -1, 1, -10, -20], '(5)', '1', '5'],
[[0, -1, 1, -7820, -263580], '(1)', '1', '1']]
sage: C.conductor # optional - database_stein_watkins
11
sage: C.leading_coefficient # optional - database_stein_watkins
'0.253842'
sage: C.modular_degree # optional - database_stein_watkins
'+*1'
sage: C.rank # optional - database_stein_watkins
0
sage: C.isogeny_number # optional - database_stein_watkins
'25'
If we were to continue typing d.next() we would
iterate over all curves in the Stein-Watkins database up to
conductor . We could also type for C in d:
...
To access the data file starting at do the
following:
sage: d = SteinWatkinsAllData(1)
sage: C = d.next() # optional - database_stein_watkins
sage: C # optional - database_stein_watkins
Stein-Watkins isogeny class of conductor 100002
sage: C.curves # optional - database_stein_watkins
[[[1, 1, 0, 112, 0], '(8,1,2,1)', 'X', '2'],
[[1, 1, 0, -448, -560], '[4,2,1,2]', 'X', '2']]
Next we access the prime-conductor data:
sage: d = SteinWatkinsPrimeData(0)
sage: C = d.next() # optional - database_stein_watkins
sage: C # optional - database_stein_watkins
Stein-Watkins isogeny class of conductor 11
Each call d.next() gives another elliptic curve of prime conductor:
sage: C = d.next() # optional - database_stein_watkins
sage: C # optional - database_stein_watkins
Stein-Watkins isogeny class of conductor 17
sage: C.curves # optional - database_stein_watkins
[[[1, -1, 1, -1, 0], '[1]', '1', '4'],
[[1, -1, 1, -6, -4], '[2]', '1', '2x'],
[[1, -1, 1, -1, -14], '(4)', '1', '4'],
[[1, -1, 1, -91, -310], '[1]', '1', '2']]
sage: C = d.next() # optional - database_stein_watkins
sage: C # optional - database_stein_watkins
Stein-Watkins isogeny class of conductor 19
REFERENCE:
[SteinWatkins] | William Stein and Mark Watkins, A database of elliptic curves—first report. In Algorithmic number theory (ANTS V), Sydney, 2002, Lecture Notes in Computer Science 2369, Springer, 2002, p267–275. http://modular.math.washington.edu/papers/stein-watkins/ |
Class for iterating through one of the Stein-Watkins database files for all conductors.
Iterate through the curve classes, but grouped into lists by level.
EXAMPLE:
sage: d = SteinWatkinsAllData(1)
sage: E = d.iter_levels()
sage: E.next() # optional - database_stein_watkins
[Stein-Watkins isogeny class of conductor 100002]
sage: E.next() # optional - database_stein_watkins
[Stein-Watkins isogeny class of conductor 100005,
Stein-Watkins isogeny class of conductor 100005]
sage: E.next() # optional - database_stein_watkins
[Stein-Watkins isogeny class of conductor 100007]
x.__init__(...) initializes x; see help(type(x)) for signature
Return a list whose -th entry, for 0 <= N <= max_level, is the
number of elliptic curves of conductor
in the database.
EXAMPLES:
sage: sage.databases.stein_watkins.ecdb_num_curves(100) # optional - database_stein_watkins
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 6, 8, 0, 4, 0, 3, 4, 6, 0, 0,
6, 0, 5, 4, 0, 0, 8, 0, 4, 4, 4, 3, 4, 4, 5, 4, 4, 0, 6, 1, 2, 8, 2, 0,
6, 4, 8, 2, 2, 1, 6, 4, 6, 7, 3, 0, 0, 1, 4, 6, 4, 2, 12, 1, 0, 2, 4, 0,
6, 2, 0, 12, 1, 6, 4, 1, 8, 0, 2, 1, 6, 2, 0, 0, 1, 3, 16, 4, 3, 0, 2,
0, 8, 0, 6, 11, 4]