#14775: Symmetric functions: extending Kronecker product, implementing Kronecker
product, extending antipode, extending forgotten basis, implementing Witt
basis
---------------------------------------------------------------------------+
       Reporter:  darij                                                    |    
     Owner:  sage-combinat
           Type:  enhancement                                              |    
    Status:  new          
       Priority:  major                                                    |    
 Milestone:  sage-5.11    
      Component:  combinatorics                                            |    
Resolution:               
       Keywords:  symmetric function, combinat, kronecker product, days49  |   
Work issues:               
Report Upstream:  N/A                                                      |    
 Reviewers:               
        Authors:  Darij Grinberg                                           |    
 Merged in:               
   Dependencies:                                                           |    
  Stopgaps:               
---------------------------------------------------------------------------+

Comment (by darij):

 3 is done. Anyone has a better name than {{{degree_negation}}} for the
 algebra automorphism of ``SymmetricFunctions`` which acts as 1 in even
 degrees and 0 in odd ones?

 The changes in the antipode method not only made it work over any rings,
 but also sped it up on each basis except for the powersum one (and the
 monomial one, but I improved that with a trivial fix):

 Test suite:

 {{{
 def testall():
     Sym = SymmetricFunctions(QQ)
     print "m"
     timeit("SymmetricFunctions(QQ).m()([4,3,2]).antipode()")
     print "h"
     timeit("SymmetricFunctions(QQ).h()([4,3,2]).antipode()")
     print "e"
     timeit("SymmetricFunctions(QQ).e()([4,3,2]).antipode()")
     print "s"
     timeit("SymmetricFunctions(QQ).s()([4,3,2]).antipode()")
     print "p"
     timeit("SymmetricFunctions(QQ).p()([4,3,2]).antipode()")
 }}}

 Results:

 {{{
 original version:

 sage: testall()
 m
 125 loops, best of 3: 1.86 ms per loop
 h
 25 loops, best of 3: 10.8 ms per loop
 e
 25 loops, best of 3: 10.8 ms per loop
 s
 25 loops, best of 3: 30.6 ms per loop
 p
 625 loops, best of 3: 146 µs per loop

 after change of generic antipode to go via omega rather than via coercion
 to powersum basis:

 sage: testall()
 m
 125 loops, best of 3: 2.16 ms per loop
 h
 125 loops, best of 3: 2.92 ms per loop
 e
 125 loops, best of 3: 2.92 ms per loop
 s
 625 loops, best of 3: 250 µs per loop
 p
 625 loops, best of 3: 148 µs per loop

 after microoptimization in the antipode of powersum (replacing (-1)**blah
 by case distinction):

 sage: testall()
 m
 125 loops, best of 3: 1.79 ms per loop
 h
 125 loops, best of 3: 2.88 ms per loop
 e
 125 loops, best of 3: 2.95 ms per loop
 s
 625 loops, best of 3: 252 µs per loop
 p
 625 loops, best of 3: 113 µs per loop
 }}}

-- 
Ticket URL: <http://trac.sagemath.org/sage_trac/ticket/14775#comment:5>
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 unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To post to this group, send email to [email protected].
Visit this group at http://groups.google.com/group/sage-trac.
For more options, visit https://groups.google.com/groups/opt_out.


Reply via email to