#11900: Serious regression caused by #9138
-----------------------------------------------------------------------------------------------+
   Reporter:  SimonKing                                                         
               |          Owner:  tbd                  
       Type:  defect                                                            
               |         Status:  needs_work           
   Priority:  major                                                             
               |      Milestone:  sage-4.7.3           
  Component:  performance                                                       
               |       Keywords:  categories regression
Work_issues:  fiy doctests, fix categories for polynomial rings, improve 
all_super_categories  |       Upstream:  N/A                  
   Reviewer:                                                                    
               |         Author:  Simon King           
     Merged:                                                                    
               |   Dependencies:  #9138                
-----------------------------------------------------------------------------------------------+

Comment(by SimonKing):

 Replying to [comment:45 SimonKing]:
 > I still see much time spent in `all_super_categories`. I just found that
 `self.all_super_categores()` does ''not'' start with
 `C.all_super_categories()` for C in `self.super_categories()`. That is
 certainly not very efficient, because it is effectively computing
 `C.all_supercategories()` repeatedly.

 Indeed, it can be improved. And then, the benchmark finally becomes
 {{{
 sage: %time L = EllipticCurve('960d1').prove_BSD()
 CPU times: user 3.60 s, sys: 0.11 s, total: 3.71 s
 Wall time: 4.02 s
 }}}

 __Conclusion__

 I will not change the order of all_super_categories, and I will not unify
 the parent classes of different categories - that shall be on a separate
 ticket.

 However, I will
  * make libsingular polynomial rings use the new coercion framework,
  * avoid the construction of a coercion from the base ring at
 initialisation of matrix spaces and polynomial rings,
  * create an external function for choosing the category of a polynomial
 ring, avoiding the overhead of the `join()` method,
  * add parent methods that provide a faster way of determining algebraic
 structures than the classical `P in CommutativeRings()`
  * improve the performance of `all_super_categories()`.

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