#12233: Cythonize elements of modular subgroups
-----------------------------+----------------------------------------------
   Reporter:  davidloeffler  |          Owner:  craigcitro    
       Type:  enhancement    |         Status:  needs_review  
   Priority:  major          |      Milestone:  sage-5.0      
  Component:  modular forms  |       Keywords:                
Work_issues:                 |       Upstream:  N/A           
   Reviewer:                 |         Author:  David Loeffler
     Merged:                 |   Dependencies:  #5048, #11601 
-----------------------------+----------------------------------------------
Changes (by davidloeffler):

  * status:  needs_work => needs_review
  * dependencies:  => #5048, #11601


Old description:

> This patch does the following:
>
>  * reimplements class
> {{{sage.modular.arithgroup.arithgroup_element.ArithmeticSubgroupElement}}}
> as a Cython extension type, resulting in considerable speed gains;
>  * modifies element constructor methods for the classes in
> {{{sage.modular.arithgroup}}} for consistency with the category
> framework;
>  * various small changes (mostly to {{{__cmp__}}}) that make !TestSuite
> doctests pass for all these classes.
>
> The patch adds no new methods, but speeds up arithmetic with elements of
> SL2Z and its subgroups by a factor of about 4 on my machine.

New description:

 This patch does the following:

  * reimplements class
 {{{sage.modular.arithgroup.arithgroup_element.ArithmeticSubgroupElement}}}
 as a Cython extension type, resulting in considerable speed gains;
  * reimplements the methods for element construction and containment
 testing for the classes in {{{sage.modular.arithgroup}}}, so they run
 faster and are consistent with the category framework;
  * various small changes (mostly to {{{__cmp__}}}) that make !TestSuite
 tests pass for all these classes.

 The patch adds no new end-user methods, but speeds up arithmetic with
 elements of SL2Z and its subgroups by a factor of about 4 on my machine.
 E.g. {{{ Gamma0(656).todd_coxeter()}}} goes down from 35s to 11s,
 multiplication of two elements of SL2Z goes down from 7 microseconds to
 3.5, and testing whether an element is in {{{Gamma0(6)}}} goes down from
 90 microseconds to 5.5.

--

-- 
Ticket URL: <http://trac.sagemath.org/sage_trac/ticket/12233#comment:3>
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