Modular parametrization by X1(N)

35 views
Skip to first unread message

Maarten Derickx

unread,
Dec 16, 2012, 6:18:58 AM12/16/12
to sag...@googlegroups.com
Dear sage-nt,

The current implementation of "computing the modular degree of the strong Weil curve in J1(N) attached to a newform with coefficients in Q" in sage is incredably slow. So slow in fact that trying to compute the degree of the modular parameterization of the first rank 1 elliptic curve (37a1) didn't terminate over night.

I looked at the internals, and sage is doing something extremely stupid (at least I think it's stupid because it's so extremely slow). If f:X1(N) -> E is the parameterization then it will calculate the degree of the map  f_*f^* : E -> E using the principal polarization on J1(N), this degree will be the square of the modular degree. This seems way less efficient then the strategy using only modular symbols as explained in for example in John Cremona his book Algorithms for Modular Elliptic Curves

Does someone have any Idea wether a more efficient implementation is already in sage but I just didn't seem to find it? Does anyone know wether mwrank can also calculate the modular degree for X1(N) parameterizations?

Thanks
Maarten

Maarten Derickx

unread,
Dec 16, 2012, 7:00:44 AM12/16/12
to sag...@googlegroups.com
It seems that 37a1 is quite special, because I tried to get the X1(N) parameterization degrees of all strong elliptic curves of conductor at most 48. And the code gave an answer for all conductors other than 37 (the longest computation took about 200 seconds).

John Cremona

unread,
Dec 16, 2012, 7:09:37 AM12/16/12
to sage-nt
I can answer part of your question. There is code in eclib (not
mwrank as such) which can compute modular degrees for elliptic curves,
though using the X_0(N) parametrization, using the method I described
in my book (2nd edition), but it was pretty slow for larger
conductors, I think I only used it for N up to about 12000 (according
to http://homepages.warwick.ac.uk/staff/J.E.Cremona/ftp/data/INDEX.html).
For larger N I use sympow, originally using Mark Watkins's code
directly but now from within Sage:

sage: E = EllipticCurve('37a1')
sage: E.modular_degree()
2
sage: [EllipticCurve('11a'+str(i)).modular_degree() for i in [1,2,3]]
[1, 5, 5]

If you know which curve in the isogeny class is the X_1(N)-optimal one
you can adjust these accordingly to give the degree of the
parametrization from X_1(N).

Of course this starts from the curve rather than the newform.

John
> --
> You received this message because you are subscribed to the Google Groups
> "sage-nt" group.
> To view this discussion on the web, visit
> https://groups.google.com/d/msg/sage-nt/-/9774QYa6YzkJ.
>
> To post to this group, send an email to sag...@googlegroups.com.
> To unsubscribe from this group, send email to
> sage-nt+u...@googlegroups.com.
> For more options, visit this group at
> http://groups.google.com/group/sage-nt?hl=en-GB.
Reply all
Reply to author
Forward
0 new messages