#6072: [with patch, needs work] Boundary space for GammaH fails to identify
vanishing classes
---------------------------+------------------------------------------------
Reporter: davidloeffler | Owner: craigcitro
Type: defect | Status: new
Priority: minor | Milestone: sage-4.0.1
Component: modular forms | Keywords:
---------------------------+------------------------------------------------
Comment(by davidloeffler):
Sorry it's taken me so long to get around to reviewing this, but it still
doesn't seem to quite fix the problem:
{{{
sage: G = GammaH(4, [])
sage: B3 = G.modular_symbols(weight=3).boundary_space()
sage: [B3(x) for x in G.cusps()]
[[0], 0, [Infinity]]
sage: B3.rank()
3
}}}
I think the problem is that the check to see whether or not the new cusp
class vanishes gets done *after* the cusp is added to
{{{B3._known_cusps}}}, and the rank method just checks the length of
known_cusps. The same happens if instead of explicitly coercing all the
cusps of G into B3, you do {{{B3 =
G.modular_symbols(weight=3).boundary_map().codomain()}}} to get a fully-
initialised version.
Another silly minor quibble: if -1 is in G, then the boundary space should
clearly be zero in all odd weights, but this doesn't seem to happen:
{{{
sage: G = GammaH(10, [9])
sage: B3 = G.modular_symbols(weight=3).boundary_space()
sage: B3(Cusp(1))
sage: [B3(x) for x in G.cusps()]
[[1], 0, [1/4], 0, [1/3], 0, [1/2], 0]
}}}
Finally, here's another (possibly completely unrelated) bug:
{{{
sage: G = GammaH(8, [5])
sage: G.modular_symbols(weight=3).boundary_map()
---------------------------------------------------------------------------
AssertionError Traceback (most recent call
last)
/home/david/.sage/temp/groke/13903/_home_david__sage_init_sage_0.py in
<module>()
/home/david/sage-4.0.alpha0/local/lib/python2.5/site-
packages/sage/modular/modsym/ambient.pyc in boundary_map(self)
1251 # compute boundary map
1252 B = self.boundary_space()
-> 1253 I = [B(b) for b in self.basis()]
1254 W = matrix_space.MatrixSpace(self.base_ring(), len(I),
B.rank(), sparse=True)
1255
/home/david/sage-4.0.alpha0/local/lib/python2.5/site-
packages/sage/modular/modsym/boundary.pyc in __call__(self, x)
583 if len(S) == 0:
584 return self(0)
--> 585 return sum([c*self._coerce_in_manin_symbol(v) for c, v
in S])
586
587 elif is_FreeModuleElement(x):
/home/david/sage-4.0.alpha0/local/lib/python2.5/site-
packages/sage/modular/modsym/boundary.pyc in _coerce_in_manin_symbol(self,
x)
532 """
533 i = x.i
--> 534 alpha, beta = x.endpoints(self.level())
535 if self.weight() == 2:
536 return self(alpha) - self(beta)
/home/david/sage-4.0.alpha0/local/lib/python2.5/site-
packages/sage/modular/modsym/manin_symbols.pyc in endpoints(self, N)
1758 if N < 1:
1759 raise ArithmeticError, "N must be positive"
-> 1760 a,b,c,d = self.lift_to_sl2z()
1761 return cusps.Cusp(b,d), cusps.Cusp(a,c)
1762
/home/david/sage-4.0.alpha0/local/lib/python2.5/site-
packages/sage/modular/modsym/manin_symbols.pyc in lift_to_sl2z(self, N)
1735 d += N*m
1736 g, z1, z2 = arith.XGCD(c,d)
-> 1737 assert g==1
1738 return [z2, -z1, c, d]
1739
AssertionError:
}}}
(This may well be nothing to do with any of this, I just happened to spot
it while testing your patch, so feel free to ignore it if it's not
relevant).
--
Ticket URL: <http://trac.sagemath.org/sage_trac/ticket/6072#comment:2>
Sage <http://sagemath.org/>
Sage - Open Source Mathematical Software: Building the Car Instead of
Reinventing the Wheel
--~--~---------~--~----~------------~-------~--~----~
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
-~----------~----~----~----~------~----~------~--~---