#13404: Improved printing for symmetric function bases and misc refactoring
----------------------------------------------------+-----------------------
       Reporter:  nthiery                           |         Owner:  
sage-combinat  
           Type:  enhancement                       |        Status:  
positive_review
       Priority:  major                             |     Milestone:  
sage-pending   
      Component:  combinatorics                     |    Resolution:            
     
       Keywords:  symmetric functions               |   Work issues:            
     
Report Upstream:  N/A                               |     Reviewers:  Anne 
Schilling 
        Authors:  Nicolas M. ThiƩry, Mike Zabrocki  |     Merged in:            
     
   Dependencies:  #5457                             |      Stopgaps:            
     
----------------------------------------------------+-----------------------
Changes (by aschilling):

  * dependencies:  #13399 => #5457


Old description:

> Due to accumulating history, the names of the various bases of
> Symmetric functions and variants are not very consistent:
>
> {{{
>     sage: Sym = SymmetricFunctions(FractionField(QQ['q,t'])); Sym
>     Symmetric Functions over Fraction Field of Multivariate Polynomial
> Ring in q, t over Rational Field
>     sage: Sym.s()
>     Symmetric Function Algebra over Fraction Field of Multivariate
> Polynomial Ring in q, t over Rational Field, Schur symmetric functions as
> basis
>     sage: Sym.macdonald().P()
>     Macdonald polynomials in the P basis over Fraction Field of
> Multivariate Polynomial Ring in q, t over Rational Field
>     sage: Sym.hall_littlewood().P()
>     Hall-Littlewood polynomials in the P basis over Fraction Field of
> Multivariate Polynomial Ring in q, t over Rational Field
> }}}
>
> This is not consistent either with NCSF/Qsym:
>
> {{{
>     sage: NCSF = NonCommutativeSymmetricFunctions(QQ)
>     sage: NCSF.Psi()
>     Non-Commutative Symmetric Functions over the Rational Field in the
> Psi basis
> }}}
>
> Besides, it is verbose and does not support renaming Sym to get shorter
> names:
>
> {{{
>     sage: Sym.rename("Sym")
>     sage: Sym.s()
>     Symmetric Function Algebra over Fraction Field of Multivariate
> Polynomial Ring in q, t over Rational Field, Schur symmetric functions as
> basis
> }}}
>
> I am in the process of refactoring the _repr_ code to improve this:
>
> {{{
>     sage: Sym = SymmetricFunctions(FractionField(QQ['q,t'])); Sym
>     Symmetric Functions over Fraction Field of Multivariate Polynomial
> Ring in q, t over Rational Field
>     sage: Sym.p()
>     Symmetric Functions over Fraction Field of Multivariate Polynomial
> Ring in q, t over Rational Field on the powersum basis
> }}}
>
> In the following examples, we rename {{{Sym}}} for brevity:
>
> {{{
>     sage: Sym.rename("Sym"); Sym
>     Sym
> }}}
>
> Classical bases:
>
> {{{
>     sage: Sym.p()
>     Sym in the powersum basis
>     sage: Sym.m()
>     Sym in the monomial basis
>     sage: Sym.e()
>     Sym in the elementary basis
>     sage: Sym.h()
>     Sym in the homogeneous basis
>     sage: Sym.s()                           # Mind the capital here
>     Sym in the Schur basis
>     sage: Sym.f()
>     Sym in the forgotten basis
> }}}
>

>

> Macdonald polynomials:
>
> {{{
>     sage: Sym.macdonald().P()
>     Sym in the Macdonald P basis
>     sage: Sym.macdonald().Ht()
>     Sym in the Macdonald Ht basis
> }}}
>
> Macdonald polynomials, with specialized parameters:
>
> {{{
>     sage: Sym.macdonald(q=1).S()
>     Sym in the Macdonald S with q=1 basis
>     sage: Sym.macdonald(q=1,t=3).P()
>     Sym in the Macdonald P with q=1 and t=3 basis
> }}}
>
> Hall-Littlewood polynomials:
>
> {{{
>     sage: Sym.hall_littlewood().P()
>     Sym in the Hall-Littlewood P basis
>     sage: Sym.hall_littlewood().Qp()
>     Sym in the Hall-Littlewood Qp basis
> }}}
>
> Hall-Littlewood polynomials, with specialized parameter:
>
> {{{
>     sage: Sym.hall_littlewood(t=1).P()
>     Sym in the Hall-Littlewood P with t=1 basis
> }}}
>

> Jack polynomials::
>
> {{{
>     sage: Sym.jack().J()
>     Sym in the Jack J basis
>     sage: Sym.jack().P()
>     Sym in the Jack P basis
>     sage: Sym.jack().Q()
>     Sym in the Jack Q basis
>     sage: Sym.jack().Qp()
>     Sym in the Jack Qp basis
> }}}
>
> Jack polynomials, with specialized parameter::
>
> {{{
>     sage: Sym.jack(t=1).J()
>     Sym in the Jack J with t=1 basis
> }}}
>
> Zonal polynomials::
>
> {{{
>     sage: Sym.zonal()
>     Sym in the zonal basis
> }}}
>
> LLT polynomials:
> {{{
>     sage: Sym.llt(3).hspin()
>     Sym in the level 3 LLT spin basis
>     sage: Sym.llt(3).hcospin()
>     Sym in the level 3 LLT cospin basis
> }}}
>
> {{{
>     sage: Sym.kBoundedSubspace(3,1)
>     3-bounded Symmetric Functions over Rational Field with t=1
>     sage: SymmetricFunctions(QQ['t']).kBoundedSubspace(3)
>     3-bounded Symmetric Functions over Univariate Polynomial Ring in t
> over Rational Field
>     sage: Sym.kschur(3,1)
>     3-bounded Symmetric Functions over Rational Field with t=1 in the
> 3-Schur basis also with t=1
>     sage: Sym.khomogeneous(3)
>     3-bounded Symmetric Functions over Rational Field with t=1 in the
> 3-bounded homogeneous basis
>     sage: SymmetricFunctions(QQ['t']).kschur(3)
>     3-bounded Symmetric Functions over Univariate Polynomial Ring in t
> over Rational Field in the 3-Schur basis
> }}}
>

> '''Apply''':
>     * [attachment:trac_13404-sf-nt.2.patch]
>     * [attachment:trac_13404_kschur_rename-mz.patch]

New description:

 Due to accumulating history, the names of the various bases of
 Symmetric functions and variants are not very consistent:

 {{{
     sage: Sym = SymmetricFunctions(FractionField(QQ['q,t'])); Sym
     Symmetric Functions over Fraction Field of Multivariate Polynomial
 Ring in q, t over Rational Field
     sage: Sym.s()
     Symmetric Function Algebra over Fraction Field of Multivariate
 Polynomial Ring in q, t over Rational Field, Schur symmetric functions as
 basis
     sage: Sym.macdonald().P()
     Macdonald polynomials in the P basis over Fraction Field of
 Multivariate Polynomial Ring in q, t over Rational Field
     sage: Sym.hall_littlewood().P()
     Hall-Littlewood polynomials in the P basis over Fraction Field of
 Multivariate Polynomial Ring in q, t over Rational Field
 }}}

 This is not consistent either with NCSF/Qsym:

 {{{
     sage: NCSF = NonCommutativeSymmetricFunctions(QQ)
     sage: NCSF.Psi()
     Non-Commutative Symmetric Functions over the Rational Field in the Psi
 basis
 }}}

 Besides, it is verbose and does not support renaming Sym to get shorter
 names:

 {{{
     sage: Sym.rename("Sym")
     sage: Sym.s()
     Symmetric Function Algebra over Fraction Field of Multivariate
 Polynomial Ring in q, t over Rational Field, Schur symmetric functions as
 basis
 }}}

 I am in the process of refactoring the _repr_ code to improve this:

 {{{
     sage: Sym = SymmetricFunctions(FractionField(QQ['q,t'])); Sym
     Symmetric Functions over Fraction Field of Multivariate Polynomial
 Ring in q, t over Rational Field
     sage: Sym.p()
     Symmetric Functions over Fraction Field of Multivariate Polynomial
 Ring in q, t over Rational Field on the powersum basis
 }}}

 In the following examples, we rename {{{Sym}}} for brevity:

 {{{
     sage: Sym.rename("Sym"); Sym
     Sym
 }}}

 Classical bases:

 {{{
     sage: Sym.p()
     Sym in the powersum basis
     sage: Sym.m()
     Sym in the monomial basis
     sage: Sym.e()
     Sym in the elementary basis
     sage: Sym.h()
     Sym in the homogeneous basis
     sage: Sym.s()                           # Mind the capital here
     Sym in the Schur basis
     sage: Sym.f()
     Sym in the forgotten basis
 }}}




 Macdonald polynomials:

 {{{
     sage: Sym.macdonald().P()
     Sym in the Macdonald P basis
     sage: Sym.macdonald().Ht()
     Sym in the Macdonald Ht basis
 }}}

 Macdonald polynomials, with specialized parameters:

 {{{
     sage: Sym.macdonald(q=1).S()
     Sym in the Macdonald S with q=1 basis
     sage: Sym.macdonald(q=1,t=3).P()
     Sym in the Macdonald P with q=1 and t=3 basis
 }}}

 Hall-Littlewood polynomials:

 {{{
     sage: Sym.hall_littlewood().P()
     Sym in the Hall-Littlewood P basis
     sage: Sym.hall_littlewood().Qp()
     Sym in the Hall-Littlewood Qp basis
 }}}

 Hall-Littlewood polynomials, with specialized parameter:

 {{{
     sage: Sym.hall_littlewood(t=1).P()
     Sym in the Hall-Littlewood P with t=1 basis
 }}}


 Jack polynomials::

 {{{
     sage: Sym.jack().J()
     Sym in the Jack J basis
     sage: Sym.jack().P()
     Sym in the Jack P basis
     sage: Sym.jack().Q()
     Sym in the Jack Q basis
     sage: Sym.jack().Qp()
     Sym in the Jack Qp basis
 }}}

 Jack polynomials, with specialized parameter::

 {{{
     sage: Sym.jack(t=1).J()
     Sym in the Jack J with t=1 basis
 }}}

 Zonal polynomials::

 {{{
     sage: Sym.zonal()
     Sym in the zonal basis
 }}}

 LLT polynomials:
 {{{
     sage: Sym.llt(3).hspin()
     Sym in the level 3 LLT spin basis
     sage: Sym.llt(3).hcospin()
     Sym in the level 3 LLT cospin basis
 }}}

 {{{
     sage: Sym.kBoundedSubspace(3,1)
     3-bounded Symmetric Functions over Rational Field with t=1
     sage: SymmetricFunctions(QQ['t']).kBoundedSubspace(3)
     3-bounded Symmetric Functions over Univariate Polynomial Ring in t
 over Rational Field
     sage: Sym.kschur(3,1)
     3-bounded Symmetric Functions over Rational Field with t=1 in the
 3-Schur basis also with t=1
     sage: Sym.khomogeneous(3)
     3-bounded Symmetric Functions over Rational Field with t=1 in the
 3-bounded homogeneous basis
     sage: SymmetricFunctions(QQ['t']).kschur(3)
     3-bounded Symmetric Functions over Univariate Polynomial Ring in t
 over Rational Field in the 3-Schur basis
 }}}


 '''Apply''':
     * [attachment:trac_13404-sf-nt.3.patch]

--

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