Today I helped Matt Greenberg solve (I think) a bug in modular symbols.

His complaint was that the following does not work:

sage: M = ModularSymbols(389,2,1,GF(7))
sage: C = M.cuspidal_subspace()
sage: N = C.new_subspace()
sage: D = N.decomposition()
sage: D[1].q_eigenform(10, 'a')

After a while of poking around, the following patch made it work, but
the change does not agree with the documentation of the function. I'd
like advice on the proper way to fix this, and whether not this is
correct:

diff -r 342fcdf4b4d3 sage/modular/modsym/heilbronn.pyx
--- a/sage/modular/modsym/heilbronn.pyx Thu Jun 24 17:16:40 2010 -0700
+++ b/sage/modular/modsym/heilbronn.pyx Thu Jun 24 19:27:36 2010 -0700
@@ -534,6 +534,7 @@
     from sage.matrix.all import matrix
     from sage.rings.all import QQ
     T = matrix(QQ, len(indices), len(P1), sparse=False)
+    original_base_ring = R.base_ring()
     if R.base_ring() != QQ:
         R = R.change_ring(QQ)

@@ -593,6 +594,8 @@
         sage.misc.misc.verbose("did reduction using dense multiplication",
                                t, level=1,
caller_name='hecke_images_gamma0_weight2')

+    if original_base_ring != QQ:
+        ans = ans.change_ring(original_base_ring)
     return ans



-- 
Robert L. Miller
http://www.rlmiller.org/

-- 
To post to this group, send an email to sage-devel@googlegroups.com
To unsubscribe from this group, send an email to 
sage-devel+unsubscr...@googlegroups.com
For more options, visit this group at http://groups.google.com/group/sage-devel
URL: http://www.sagemath.org

Reply via email to