Opened 11 years ago

Last modified 9 years ago

#12768 closed enhancement

Better plotting for isogeny graphs of elliptic curves, and handling of LMFDB labels — at Version 18

Reported by: David Roe Owned by: John Cremona
Priority: minor Milestone: sage-5.3
Component: elliptic curves Keywords:
Cc: John Cremona, Kiran Kedlaya, Volker Braun Merged in:
Authors: David Roe, John Palmieri Reviewers: John Cremona, Volker Braun
Report Upstream: N/A Work issues:
Branch: Commit:
Dependencies: #12769, #13109 Stopgaps:

Status badges

Description (last modified by John Palmieri)

There are only 17 different possible isogeny graphs for elliptic curves over Q. It would be nice if the isogeny graph was laid out in the same way each time, and if the labels corresponded to the Cremona labels of the curves in the isogeny class.

The second major topic handled by this ticket is to implement handling of LMFDB labels for elliptic curves as well as Cremona labels, and the conversions between these. the third is a new class for isogeny classes of elliptic curves over Q.

Apply: 12768.patch, 12768-review.patch, trac_12768-rebase-to-13109.patch

Change History (22)

comment:1 Changed 11 years ago by David Roe

Cc: John Cremona Kiran Kedlaya added

I still need to finish doctesting this, but I wanted to post it now since I'm not going to be able to work on it tomorrow. It adds the capability to make curves from LMFDB labels, to reorder isogeny classes, and makes the plot for the graph of an isogeny class deterministic. I have a corresponding patch to the LMFDB code that fixes all the problems I've observed with ordering and plotting.

Changed 11 years ago by David Roe

Attachment: 12768.patch added

Ready for review

comment:2 Changed 11 years ago by David Roe

Status: newneeds_review

The tests in sage/schemes/elliptic_curves pass for me. Let's see what patchbot says.

comment:3 Changed 11 years ago by John Cremona

Authors: David Roe
Description: modified (diff)
Summary: Better plotting for isogeny graphs of elliptic curvesBetter plotting for isogeny graphs of elliptic curves, and handling of LMFDB labels

comment:4 Changed 11 years ago by David Loeffler

Patchbot says "angry red blob", I'm afraid. Here's the problem:

patching file sage/databases/cremona.py
Hunk #5 FAILED at 792
1 out of 6 hunks FAILED -- saving rejects to file sage/databases/cremona.py.rej
patch failed, unable to continue (try -v)
patch failed, rejects left in working dir
errors during apply, please fix and refresh 12768.patch

comment:5 Changed 11 years ago by David Loeffler

Status: needs_reviewneeds_work

comment:6 Changed 11 years ago by David Roe

Dependencies: #12769
Status: needs_workneeds_review

Oops. Forgot a dependency.

comment:7 Changed 11 years ago by John Cremona

Patch applies fine after the one from #12769. Checking the code now.

comment:8 Changed 11 years ago by John Cremona

Description: modified (diff)
Reviewers: John Cremona

Review: This patch implements three different things: (1) A new class for isogeny classes of elliptic curves (currently only for curves over Q); (2) implementation of the new (March 2012) LMFDB labels for elliptic curves over Q, with utilities for comverting to and from Cremona labels; (3) better layouts for isogeny graphs of elliptic curves over Q.

I have been through the code in some detail and only found some minor things to fix, as in the reviewer's patch. One of these was a typo causing doctest failure. Nothing more than minor. If David R is happy with these, I'll give the ticket a positive review.

comment:9 Changed 11 years ago by David Roe

The changes all look fine to me, but the fourth hunk for ell_rational_field in the review patch fails to apply. I'll try to fix it later tonight, but if you get to it first go for it.

comment:10 Changed 11 years ago by David Roe

Status: needs_reviewneeds_work

comment:11 Changed 11 years ago by John Cremona

My patch was based on 5.0.beta13, if that helps. By the way, the reason I changed ell_generic to ell_rational_field was so that when testing a valid elliptic curve defined over a different field for membership of the isogenyclass one just gets False instead of an error as before; but I forgot to add some doctests to illustrate.

Changed 11 years ago by John Cremona

Attachment: 12768-review.patch added

Apply after previous

comment:12 Changed 11 years ago by John Cremona

Status: needs_workneeds_review

I have updated the review patch: it used to be that when asking for order='database' for a curve not in the database, this was caught but the error message output itself raised a confusing error (on trying to output %self).  Instead the error message now uses %self.E.  I added a doctest which illustrates this.

I give David's original patch a positive review modulo my own reviewer's patch, so if David (or anyone) thinks my patch is OK, please give the whole ticket a positive review.  I tested this on 5.0.beta14.

comment:13 Changed 10 years ago by David Roe

Status: needs_reviewpositive_review

John's changes look fine to me.

comment:14 Changed 10 years ago by Jeroen Demeyer

Milestone: sage-5.1sage-5.2

comment:15 Changed 10 years ago by John Palmieri

Dependencies: #12769#12769, #13109
Status: positive_reviewneeds_work

Changed 10 years ago by John Palmieri

comment:16 Changed 10 years ago by John Palmieri

Cc: Volker Braun added
Description: modified (diff)
Status: needs_workneeds_review

Only the rebase patch needs to be reviewed.

comment:17 Changed 10 years ago by Volker Braun

Authors: David RoeDavid Roe, John Palmieri
Reviewers: John CremonaJohn Cremona, Volker Braun
Status: needs_reviewpositive_review

Looks good to me!

Changed 10 years ago by John Palmieri

comment:18 Changed 10 years ago by John Palmieri

Description: modified (diff)

Should I add a doctest for the deprecation? The 'v2' patch does that, so if you want to use that instead, change the ticket description accordingly.

Note: See TracTickets for help on using tickets.