February 22, 2016: Elliptic curves (part 3)
William Stein
Notes:
Homework 6: graded and returned. Everybody got 0% or 100%.
We will do modular forms too this week
Homework 7 is about modular forms. Requires more advanced programming skills (for loops / if statements).
Elliptic curves continued
Sage has a lot of big tables of elliptic curves included. They are all a little funny to use though, since we always optimize for speed of access and iterating through, rather than ease of use.... and nobody does much work on this code (it could be easily improved)...
3.2 Cremona's tables of elliptic curves
Copy in Sage (via a sqlite database, made by Andrew Ohana...) of this data: http://johncremona.github.io/ecdata/
Exercise: Use Cremona's tables to determine how many distinct isomorphism classes of ellliptic curves have conductor 2016. Will there be any curves (of conductor 2017) next year?!
3.3 Stein-Watkins tables
In 2001 at Harvard... I started making large tables of elliptic curves by just writing down lots of curves. Mark Watkins got involved and wrote lots of very fast code. Together we made the SteinWatkins tables, which are a large table of curves of conductor up to . We don't have all curves up to that bound -- just a lot. We also have curves of prime conductor up to some huge bound.
3.4 New table: all 238,764,310 curves of naive height up to
http://wstein.org/papers/2016-height/
Not in Sage. Is maybe 30GB or so...
If anybody wanted to make a version of this that could be made available in Sage, I would be happy to provide guidance.
3.5 The LMFDB:
(Not easily usable from Sage as far as I know but well worth knowing about.)
http://www.springer.com/-/3/AVL5RydpAgfPWjhr63PM .
4. Magma versus Sage
If you want to do a range of explicit computations with elliptic curves, you will very likely use Sage or Magma. If you're really serious, you'll use both.
Note, as mentioned above, that both Sage and Magma are far ahead of all other software for elliptic curves.
Pari reference manual about elliptic curves. -- pari is part of Sage and has some unique powerful functionality, e.g.,
ellheegner
...
History:
When I started contributing to Magma in 1999, I remember that it was way, way behind PARI. I remember having lunch with John Cannon (founder of Magma), and telling him we could "kill Pari" if only Magma would have dramatically faster code for computing ; he responded "I don't want to kill Pari."
In any case, a few years later, John wisely hired Mark Watkins to work fulltime on Magma, and Mark has been working there for over a decade. Mark is definitely one of the top people in the world at implementing (and using) computational number theory algorithms, and he's ensured that Magma can do a lot. Some of that "do a lot" means catching up with (and surpassing!) what was in Pari and Sage for a long time (e.g., point counting, -adic -functions, etc.)
However, in addition, many people have visited Sydney and added functionality for doing higher descents to Magma, which is not available in any open source software. Search for Magma in this paper to see how, even today, there seems to be no open source way to compute the rank of the curve .
Situation today
There are several elliptic curves algorithms available only in Magma (e.g., higher descents) ... and some available only in Sage (-function rank bounds, some overconvergent modular symbols, zeros of -functions, images of Galois representations). I could be wrong about stuff not in Sage, since WITH MONEY almost anything can get implemented in a year... And Magma has money.
The code bases are completely separate, which is a very good thing. Any time something gets implemented in one, it gets (or should get) tested via a big run through tables of elliptic curves up to some bound. This usually results in numerous bugs being found. I remember refereeing the "integral points" code in Sage by running it against all curves up to some bound and comparing to what Magma output, and getting many discrepancies, which showed that there were bugs in both Sage and Magma.
However, we would be way better off if Sage could do everything Magma does. For example, isn't this disturbing???
Example computation using my favorite curve in Sage and Magma.
Exercise:
Make up a few elliptic curves and compute the integral points on them.
Try to find an elliptic curve with at least 12 integral points on it. You can search using Google if you want... or whatever.
Make a guess: do you think the number of integral points on elliptic curves is uniformly bounded, or are there elliptic curves over with arbitrarily many integral points? (If not brave enough to make a guess, how might you use tables to make a guess. What computations would you do?)
Make a guess: do you think the ranks of elliptic curves over are uniformly bounded, or are there elliptic curves with arbitrarily large rank?
Modular Forms (start)
Read the theoretical definition of modular forms somewhere, e.g., in my book, before Wednesday: http://wstein.org/books/modform/ I'm going to assume you know the basic definitions, and just tell you how to compute with them:
What commands to type and what you get
The basic idea behind the algorithms that are being used (mainly "modular symbols")