#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.

Reply via email to