#11375: speed up computation of level one eisenstein series
------------------------------------------+---------------------------------
   Reporter:  was                         |          Owner:  craigcitro         
       
       Type:  enhancement                 |         Status:  positive_review    
       
   Priority:  minor                       |      Milestone:  sage-4.8           
       
  Component:  modular forms               |       Keywords:                     
       
Work_issues:                              |       Upstream:  N/A                
       
   Reviewer:  Craig Citro, William Stein  |         Author:  William Stein, 
Craig Citro
     Merged:                              |   Dependencies:                     
       
------------------------------------------+---------------------------------

Comment(by was):

 Replying to [comment:4 craigcitro]:
 > LGTM! Too bad my name won't appear in the hg repo for this code anymore.
 ;)

 I'll update the author of the patch right now to have both our names on
 it.   That's easy with queues, of course.

 > I'm really glad to see that you did #12265; I didn't want to figure out
 the right way to get that in order (the FLINT QQX stuff was still in flux
 when I wrote this patch IIRC), but it's what kept me from actually pushing
 any harder to get it in.
 >

 I kept thinking of a way to do what *we* need for #11375, then thinking of
 a better way, then a better way, then a better way, etc., (where better
 means it will be more generally helpful to code).  I ended up settling on
 a pretty good solution, I think.   But I deleted a lot of code on the way
 there!


 > Do you happen to have some timing comparisons for the actual coefficient
 computation vs. the whole eisenstein_series_qexp call? I'm curious how low
 the overhead is now.
 >

 Yes, here is an example:
 {{{
 sage: from sage.modular.modform.eis_series_cython import Ek_ZZ
 sage: time v = Ek_ZZ(4,10^6)
 Time: CPU 1.08 s, Wall: 1.08 s
 sage: time f = eisenstein_series_qexp(4, 10^6)
 Time: CPU 1.32 s, Wall: 1.33 s
 }}}
 Before it would take 1 second to compute the v, then over 4 seconds to
 make the power series!



 > The Py_GET_ITEM is indeed gross, but a necessary evil.

-- 
Ticket URL: <http://trac.sagemath.org/sage_trac/ticket/11375#comment:5>
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