Opened 11 years ago
Last modified 7 years ago
#9758 new enhancement
implement Watkins-Delaunay's algorithm for computing modular degrees in Sage
Reported by: | was | Owned by: | was |
---|---|---|---|
Priority: | major | Milestone: | sage-6.4 |
Component: | number theory | Keywords: | |
Cc: | mpatel, robertwb, cremona | Merged in: | |
Authors: | Reviewers: | ||
Report Upstream: | N/A | Work issues: | |
Branch: | Commit: | ||
Dependencies: | Stopgaps: |
Description
Relevant paper:
http://www.emis.ams.org/journals/EM/expmath/volumes/11/11.4/pp487_502.pdf
When this is done and of comparable speed to the current modular degree code in Sage, then Sympow can be moved from standard to optional (or worse) as a Sage spkg. Implementation options:
- Build on top of the Dokchiter l-series code in Sage (via PARI)
- Build something on Robert Bradshaw's soon-to-be-in-Sage re-implementation of Dokchitser: #9193
Change History (9)
comment:1 Changed 11 years ago by
comment:2 Changed 11 years ago by
- Cc mpatel added
comment:3 Changed 11 years ago by
- Cc robertwb added
comment:4 Changed 11 years ago by
- Cc cremona added
I'm adding John Cremona to this, as I think this is his area of interest. If not, John can delete himself!
For anyone taking this project on, it may be useful to know that in the opinion of Mark Watkins, double-precsion maths is probably good enough for computing the modular degrees. That would no doubt make the code simpler and faster than using MPFR. See
http://groups.google.co.uk/group/sage-devel/msg/ecac09831622179c
Strange as it may seem, fixing the SYMPOW bug (#9703) was actually one of the more interesting changes I've made to Sage. It required reading the paper in the quad double package to understand how that was supposed to work, then reading the Intel manual on the 387 processor to sort out how to get the processor to work as required by quad double.
Dave
comment:5 Changed 9 years ago by
Here's one case which can be used for testing (I have correspondence with Mark Watkins which explains the problem and how to fix it, and will open a new ticket for that):
sage: E = EllipticCurve([1,-1,0,-318360868065,-69208434591226115]) sage: E.modular_degree(algorithm='magma') 2417135616
but
sage: E = EllipticCurve([1,-1,0,-318360868065,-69208434591226115]) sage: E.modular_degree() # boom
comment:6 Changed 8 years ago by
- Milestone changed from sage-5.11 to sage-5.12
comment:7 Changed 7 years ago by
- Milestone changed from sage-6.1 to sage-6.2
comment:8 Changed 7 years ago by
- Milestone changed from sage-6.2 to sage-6.3
comment:9 Changed 7 years ago by
- Milestone changed from sage-6.3 to sage-6.4
Kirkby said:
Good idea.
Level: graduate student or greater, with a background in number theory.
Skill set needed: read C, write Python, possibly Cython later for speed purposes.
C versus Python: the implementation can depend on absolutely anything in Sage; for this I'm not concerned about providing a general tool for the scientific community.