#6931: implement faster computation of data about intersection of abelian
varieties attached to modular symbols spaces
---------------------------+------------------------------------------------
Reporter: was | Owner: craigcitro
Type: enhancement | Status: new
Priority: major | Milestone: sage-4.1.2
Component: modular forms | Keywords:
Reviewer: | Author:
Merged: |
---------------------------+------------------------------------------------
Amod *really* wants something like this. Here's code that I just wrote in
a notebook that I think is perhaps the optimal algorithm along these
lines:
{{{
def intersect(A, B, p, integral=True):
r"""
Return True if p divides the cardinality of the intersection of the
abelian
varieties corresponding to the modular symbols spaces A and B.
INPUT:
- `A` -- cuspidal modular symbols space
- `B` -- cuspidal modular symbols space
- `p` -- prime number
- ``integral`` -- bool (default: True); if False, just take the
`\QQ`-basis for the integral structure, which is much faster,
but can give false answers (i.e., at worst, I think `A` and `B`
would be declared congruent even when they are not).
OUTPUT:
- ``bool`` -- True if `p` divides intersection of `A` and `B`
EXAMPLES::
sage: H = ModularSymbols(389,2,sign=1).cuspidal_subspace(); D =
H.decomposition()
sage: intersect(D[0],D[4],5)
True
sage: intersect(D[0],D[4],7)
False
sage: intersect(D[0],D[4],5,integral=False)
True
sage: H = ModularSymbols(54).cuspidal_subspace(); D =
H.decomposition()
sage: intersect(D[0],D[2],2)
False
sage: intersect(D[0],D[2],3)
True
sage: intersect(D[0],D[2],3, integral=False)
True
sage: intersect(D[0],D[2],5)
False
"""
if integral:
VA = A.integral_structure()
VB = B.integral_structure()
else:
VA = A.free_module(); VB = B.free_module()
LA, dA = VA.basis_matrix()._clear_denom()
LB, dB = VB.basis_matrix()._clear_denom()
LA *= dB; LB *= dA
n = gcd([ZZ(a) for a in LA.list() + LB.list()])
if n%p == 0:
LA = LA/n; LB = LB/n
return LA.stack(LB).change_ring(GF(p)).nullity() > 0
}}}
--
Ticket URL: <http://trac.sagemath.org/sage_trac/ticket/6931>
Sage <http://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
-~----------~----~----~----~------~----~------~--~---