#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.

Reply via email to