#10506: efficient counting of cusps for the principal congruence subgroup
Gamma(n)
-----------------------------+----------------------------------------------
Reporter: rje | Owner: John Cremona
Type: enhancement | Status: needs_review
Priority: minor | Milestone: sage-4.6.1
Component: modular forms | Keywords: cusps, ncusps(), Gamma(n),
principal congruence subgroup
Author: Ron Evans | Upstream: N/A
Reviewer: | Merged:
Work_issues: |
-----------------------------+----------------------------------------------
Changes (by cremona):
* status: new => needs_review
Comment:
The patch adds an implentation using the idea I posted on sage-support,
namely using the formula (valid for n>2) that the number of cusps for
Gamma(n) is half the index of Gamma1(n).
Some times:
{{{
sage: timeit('Gamma(15).ncusps()')
625 loops, best of 3: 174 µs per loop
sage: timeit('Gamma(115).ncusps()')
625 loops, best of 3: 176 µs per loop
sage: timeit('Gamma(12115).ncusps()')
625 loops, best of 3: 176 µs per loop
sage: timeit('Gamma(1312115).ncusps()')
625 loops, best of 3: 201 µs per loop
}}}
Note that the next job is to add a method to return a set of inequivalent
cusps. The default implementation is stupidly slow (as proved by the fact
that the old default for ncusps() was to find all the cusps and count
them).
That should be on another ticket.
--
Ticket URL: <http://trac.sagemath.org/sage_trac/ticket/10506#comment:1>
Sage <http://www.sagemath.org>
Sage: Creating a Viable Open Source Alternative to Magma, Maple, Mathematica,
and MATLAB
--
You received this message because you are subscribed to the Google Groups
"sage-trac" group.
To post to this group, send email to [email protected].
To unsubscribe from this group, send email to
[email protected].
For more options, visit this group at
http://groups.google.com/group/sage-trac?hl=en.