#12043: Hecke series for overconvergent modular forms
-----------------------------+----------------------------------------------
   Reporter:  lauder         |          Owner:  craigcitro
       Type:  enhancement    |         Status:  needs_work
   Priority:  minor          |      Milestone:  sage-4.8  
  Component:  modular forms  |       Keywords:            
Work_issues:                 |       Upstream:  N/A       
   Reviewer:                 |         Author:  lauder    
     Merged:                 |   Dependencies:            
-----------------------------+----------------------------------------------
Changes (by davidloeffler):

  * status:  needs_review => needs_work


Comment:

 Hi Alan,

 This is really nice code: I'm very happy that you chose to make this Sage
 implementation available.

 I am preparing a second reviewer patch, to be applied on top of your
 patch, which mainly cleans up the documentation and removes some functions
 which already existed in Sage under different names (such as a lot of the
 routine linear algebra stuff). However, I've not completed my review,
 because I think there's a serious lurking bug.

 The problem is this. The code in {{{
 sage/modular/modform/find_generators.py }}} is only guaranteed to return
 generators for modular forms as a Q-algebra. You've carefully trapped and
 dealt with the case when the generators aren't p-adically integral; but
 even if the generators happen to be integral, there's no guarantee that
 they generate the ring of p-adically integral modular forms as a Zp-
 algebra. I experimented by making {{{ModularFormsRing.generators()}}}
 multiply its output by 25 before returning it, which is completely
 consistent with that function's specifications; and then doing 5-adic
 computations with {{{modformsring=True}}} just looped forever. So I don't
 think we can use this code without also adjusting
 {{{ModularFormsRing.generators()}}} to add the option to do its linear
 algebra integrally.

 There are a few other (relatively minor) things that puzzle me about this
 implementation, as well, and I'd be grateful if you could explain them to
 me.

 - Is the algorithm, and the implementation, still OK if k is a *negative*
 integer? It seems to be, based on all of the tests I ran -- the output for
 a negative k looks entirely consistent with the output for positive
 integers p-adically close to k. If so, then what does it mean to say that
 the run time is polynomial in the logarithm of the weight? Is it
 polynomial in the absolute value of the weight?

 - Should the level N be prime to p? Jan Vonk made this observation at the
 Sage Days a few weeks back. If you run the code with N divisible by p, it
 doesn't complain, and returns the same output as for the prime-to-p part
 of N, but much more slowly! So we should trap this case. I added code to
 do this to my reviewer patch.

 - For N > 1, a great deal of time is wasted in the routine
 "row_reduced_form". For instance, I ran "hecke_series(5, 3, 4, 15,
 modformsring=True)" with the Sage profiler. The command took 29 seconds,
 of which 24 seconds was spent in 213 calls to the method
 "row_reduced_form". But only 0.052 seconds of that was spent in the matrix
 echelon form routine (Sage's mod p linear algebra is pretty quick). The
 rest is *all* spent, as far as I can see, in translating back and forth
 between power series and vectors.

 - In the modformsring = False version of the algorithm, it seems to be
 randomized twice over: firstly, the low weight bases are randomized (using
 random_low_weight_bases); then a randomized algorithm using these as input
 (random_new_basis_modp) is used to compute the complementary spaces. What
 is the benefit of randomizing twice in this way?

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