13.2 The Stein-Watkins table of elliptic curves

Module: sage.databases.stein_watkins

The Stein-Watkins table of elliptic curves.

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 download the database as a 2.6GB SAGE package from http://modular.ucsd.edu/sagedb/, which you install with the command

sage -i stein-watkins-ecdb.spkg
You can also download a small version, without having to explicitly download anything from a website, using the command
sage -i stein-watkins-ecdb-mini

This database covers a wide range of conductors, but unlike CremonaDatabase(), this database need not list all curves of a given conductor. It lists the curves whose coefficients aren't ``too large'' (see [Stein-Watkins, Ants 5]).

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()
sage: C
Stein-Watkins isogeny class of conductor 11
sage: d.next()
Stein-Watkins isogeny class of conductor 14
sage: d.next()
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 $ L$ -function, etc.

sage: C.data
['11', '[11]', '0', '0.253842', '25', '+*1']
sage: C.curves
[[[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
11
sage: C.leading_coefficient
'0.253842'
sage: C.modular_degree
'+*1'
sage: C.rank
0
sage: C.isogeny_number
'25'

If we were to continue typing d.next() we would iterate over all curves in the Stein-Watkins database up to conductor $ 10^5$ . We could also type for C in d: ...

To access the data file starting at $ 10^5$ do the following:

sage: d = SteinWatkinsAllData(1)
sage: C = d.next()
sage: C
Stein-Watkins isogeny class of conductor 100002
sage: C.curves
[[[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()
sage: C
Stein-Watkins isogeny class of conductor 11

Each call d.next() gives another elliptic curve of prime conductor:

sage: C = d.next()
sage: C
Stein-Watkins isogeny class of conductor 17
sage: C.curves
[[[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()
sage: C
Stein-Watkins isogeny class of conductor 19

Module-level Functions

ecdb_num_curves( [max_level=200000])

Class: SteinWatkinsAllData

class SteinWatkinsAllData
Class for iterating through one of the Stein-Watkins database files for all conductors.
SteinWatkinsAllData( self, num)

Functions: iter_levels,$ \,$ next

iter_levels( self)

Iterate through the curve classes, but grouped into lists by level.

Special Functions: __getitem__,$ \,$ __getslice__,$ \,$ __init__,$ \,$ __iter__,$ \,$ __repr__

__getitem__( self, N)

Return the curves of conductor N in this table. (Very slow!)

__getslice__( self, min_level, max_level)

Return all data about curves between the given levels in this database file.

Class: SteinWatkinsIsogenyClass

class SteinWatkinsIsogenyClass
SteinWatkinsIsogenyClass( self, conductor)

Special Functions: __init__,$ \,$ __iter__,$ \,$ __len__,$ \,$ __repr__

Class: SteinWatkinsPrimeData

class SteinWatkinsPrimeData
SteinWatkinsPrimeData( self, num)

Special Functions: __init__,$ \,$ __repr__

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