#8292: improvements to eisenstein_series_qexp
-----------------------------+----------------------------------------------
Reporter: AlexGhitza | Owner: craigcitro
Type: enhancement | Status: new
Priority: minor | Milestone: sage-4.3.3
Component: modular forms | Keywords:
Author: Alex Ghitza | Upstream: N/A
Reviewer: | Merged:
Work_issues: |
-----------------------------+----------------------------------------------
The attached patch makes the following changes to
{{{eisenstein_series_qexp}}}:
* removes the workaround at the end of the method, since it is no longer
needed
* a few small modifications that speed things up a bit:
BEFORE THE PATCH:
{{{
sage: timeit("eisenstein_series_qexp(4, 100)")
125 loops, best of 3: 6.19 ms per loop
sage: timeit("eisenstein_series_qexp(4, 1000)")
5 loops, best of 3: 56.4 ms per loop
sage: timeit("eisenstein_series_qexp(4, 10000)")
5 loops, best of 3: 568 ms per loop
sage: timeit("eisenstein_series_qexp(4, 100000)")
5 loops, best of 3: 5.84 s per loop
sage: timeit("eisenstein_series_qexp(6, 100)")
125 loops, best of 3: 6.26 ms per loop
sage: timeit("eisenstein_series_qexp(6, 1000)")
5 loops, best of 3: 57 ms per loop
sage: timeit("eisenstein_series_qexp(6, 10000)")
5 loops, best of 3: 575 ms per loop
sage: timeit("eisenstein_series_qexp(6, 100000)")
5 loops, best of 3: 5.97 s per loop
sage: timeit("eisenstein_series_qexp(100, 1000)")
5 loops, best of 3: 100 ms per loop
sage: timeit("eisenstein_series_qexp(100, 10000)")
5 loops, best of 3: 1.21 s per loop
sage: timeit("eisenstein_series_qexp(1000, 10000)")
5 loops, best of 3: 12.9 s per loop
}}}
AFTER THE PATCH:
{{{
sage: timeit("eisenstein_series_qexp(4, 100)")
125 loops, best of 3: 2.21 ms per loop
sage: timeit("eisenstein_series_qexp(4, 1000)")
25 loops, best of 3: 20.5 ms per loop
sage: timeit("eisenstein_series_qexp(4, 10000)")
5 loops, best of 3: 220 ms per loop
sage: timeit("eisenstein_series_qexp(4, 100000)")
5 loops, best of 3: 2.41 s per loop
sage: timeit("eisenstein_series_qexp(6, 100)")
125 loops, best of 3: 2.24 ms per loop
sage: timeit("eisenstein_series_qexp(6, 1000)")
25 loops, best of 3: 21 ms per loop
sage: timeit("eisenstein_series_qexp(6, 10000)")
5 loops, best of 3: 223 ms per loop
sage: timeit("eisenstein_series_qexp(6, 100000)")
5 loops, best of 3: 2.54 s per loop
sage: timeit("eisenstein_series_qexp(100, 1000)")
5 loops, best of 3: 50.6 ms per loop
sage: timeit("eisenstein_series_qexp(100, 10000)")
5 loops, best of 3: 641 ms per loop
sage: timeit("eisenstein_series_qexp(1000, 10000)")
5 loops, best of 3: 8.62 s per loop
}}}
--
Ticket URL: <http://trac.sagemath.org/sage_trac/ticket/8292>
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.