#10553: Diamond bracket operators are terribly slow
-----------------------------------------------+----------------------------
Reporter: mderickx | Owner: craigcitro
Type: enhancement | Status: positive_review
Priority: major | Milestone: sage-4.7
Component: modular forms | Keywords: diamond operator
Author: Maarten Derickx, David Loeffler | Upstream: N/A
Reviewer: Martin Raum | Merged:
Work_issues: |
-----------------------------------------------+----------------------------
Changes (by mraum):
* status: needs_review => positive_review
* reviewer: => Martin Raum
Old description:
> I was wondering why it took so much longer to get a diamond bracket
> operator on a cuspidal supspace then a hecke operator. I dived into it,
> and the difference is, that for hecke operators it is not checked if the
> cuspidal subspace really is a subspace but for diamond bracket operators
> it is checked.
>
> The example below sows the possibillity of a large speed improvement
> since the theory already tells that the diamond bracket operators will
> also act on the cuspidal subspace.
>
> {{{
> sage: M=ModularSymbols(Gamma1(97),sign=1)
> sage: S=M.cuspidal_submodule()
> sage: d=M.diamond_bracket_operator(3).matrix()
> sage: time d.restrict(Smod,check=False)
> CPU times: user 0.42 s, sys: 0.08 s, total: 0.50 s
> Wall time: 0.68 s
> 345 x 345 dense matrix over Rational Field
> sage: time d.restrict(Smod,check=True)
> CPU times: user 74.42 s, sys: 0.52 s, total: 74.94 s
> Wall time: 75.42 s
> }}}
New description:
I was wondering why it took so much longer to get a diamond bracket
operator on a cuspidal supspace then a hecke operator. I dived into it,
and the difference is, that for hecke operators it is not checked if the
cuspidal subspace really is a subspace but for diamond bracket operators
it is checked.
The example below sows the possibillity of a large speed improvement since
the theory already tells that the diamond bracket operators will also act
on the cuspidal subspace.
{{{
sage: M=ModularSymbols(Gamma1(97),sign=1)
sage: S=M.cuspidal_submodule()
sage: d=M.diamond_bracket_operator(3).matrix()
sage: time d.restrict(Smod,check=False)
CPU times: user 0.42 s, sys: 0.08 s, total: 0.50 s
Wall time: 0.68 s
345 x 345 dense matrix over Rational Field
sage: time d.restrict(Smod,check=True)
CPU times: user 74.42 s, sys: 0.52 s, total: 74.94 s
Wall time: 75.42 s
}}}
'''Depends:'''
1. #10451
'''Apply:'''
1. [attachment:trac_10553.patch]
--
Comment:
That looks perfect; All tests pass.
--
Ticket URL: <http://trac.sagemath.org/sage_trac/ticket/10553#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.