Hall-Littlewood Polynomials#
Notation used in the definitions follows mainly [Mac1995].
- class sage.combinat.sf.hall_littlewood.HallLittlewood(Sym, t)[source]#
Bases:
UniqueRepresentation
The family of Hall-Littlewood symmetric function bases.
The Hall-Littlewood symmetric functions are a family of symmetric functions that depend on a parameter \(t\).
INPUT:
By default the parameter for these functions is \(t\), and whatever the parameter is, it must be in the base ring.
EXAMPLES:
sage: SymmetricFunctions(QQ).hall_littlewood(1) Hall-Littlewood polynomials with t=1 over Rational Field sage: SymmetricFunctions(QQ['t'].fraction_field()).hall_littlewood() Hall-Littlewood polynomials over Fraction Field of Univariate Polynomial Ring in t over Rational Field
>>> from sage.all import * >>> SymmetricFunctions(QQ).hall_littlewood(Integer(1)) Hall-Littlewood polynomials with t=1 over Rational Field >>> SymmetricFunctions(QQ['t'].fraction_field()).hall_littlewood() Hall-Littlewood polynomials over Fraction Field of Univariate Polynomial Ring in t over Rational Field
- P()[source]#
Return the algebra of symmetric functions in the Hall-Littlewood \(P\) basis. This is the same as the \(HL\) basis in John Stembridge’s SF examples file.
INPUT:
self
– a class of Hall-Littlewood symmetric function bases
OUTPUT:
The class of the Hall-Littlewood \(P\) basis.
EXAMPLES:
sage: Sym = SymmetricFunctions(FractionField(QQ['t'])) sage: HLP = Sym.hall_littlewood().P(); HLP Symmetric Functions over Fraction Field of Univariate Polynomial Ring in t over Rational Field in the Hall-Littlewood P basis sage: SP = Sym.hall_littlewood(t=-1).P(); SP Symmetric Functions over Fraction Field of Univariate Polynomial Ring in t over Rational Field in the Hall-Littlewood P with t=-1 basis sage: s = Sym.schur() sage: s(HLP([2,1])) (-t^2-t)*s[1, 1, 1] + s[2, 1]
>>> from sage.all import * >>> Sym = SymmetricFunctions(FractionField(QQ['t'])) >>> HLP = Sym.hall_littlewood().P(); HLP Symmetric Functions over Fraction Field of Univariate Polynomial Ring in t over Rational Field in the Hall-Littlewood P basis >>> SP = Sym.hall_littlewood(t=-Integer(1)).P(); SP Symmetric Functions over Fraction Field of Univariate Polynomial Ring in t over Rational Field in the Hall-Littlewood P with t=-1 basis >>> s = Sym.schur() >>> s(HLP([Integer(2),Integer(1)])) (-t^2-t)*s[1, 1, 1] + s[2, 1]
The Hall-Littlewood polynomials in the \(P\) basis at \(t = 0\) are the Schur functions:
sage: Sym = SymmetricFunctions(QQ) sage: HLP = Sym.hall_littlewood(t=0).P() sage: s = Sym.schur() sage: s(HLP([2,1])) == s([2,1]) True
>>> from sage.all import * >>> Sym = SymmetricFunctions(QQ) >>> HLP = Sym.hall_littlewood(t=Integer(0)).P() >>> s = Sym.schur() >>> s(HLP([Integer(2),Integer(1)])) == s([Integer(2),Integer(1)]) True
The Hall-Littlewood polynomials in the \(P\) basis at \(t = 1\) are the monomial symmetric functions:
sage: Sym = SymmetricFunctions(QQ) sage: HLP = Sym.hall_littlewood(t=1).P() sage: m = Sym.monomial() sage: m(HLP([2,2,1])) == m([2,2,1]) True
>>> from sage.all import * >>> Sym = SymmetricFunctions(QQ) >>> HLP = Sym.hall_littlewood(t=Integer(1)).P() >>> m = Sym.monomial() >>> m(HLP([Integer(2),Integer(2),Integer(1)])) == m([Integer(2),Integer(2),Integer(1)]) True
We end with some examples of coercions between:
Hall-Littlewood \(P\) basis.
Hall-Littlewood polynomials in the \(Q\) basis
Hall-Littlewood polynomials in the \(Q^\prime\) basis (via the Schurs)
Classical symmetric functions
sage: Sym = SymmetricFunctions(FractionField(QQ['t'])) sage: HLP = Sym.hall_littlewood().P() sage: HLQ = Sym.hall_littlewood().Q() sage: HLQp = Sym.hall_littlewood().Qp() sage: s = Sym.schur() sage: p = Sym.power() sage: HLP(HLQ([2])) # indirect doctest (-t+1)*HLP[2] sage: HLP(HLQp([2])) t*HLP[1, 1] + HLP[2] sage: HLP(s([2])) t*HLP[1, 1] + HLP[2] sage: HLP(p([2])) (t-1)*HLP[1, 1] + HLP[2] sage: s = HLQp.symmetric_function_ring().s() sage: HLQp.transition_matrix(s,3) [ 1 0 0] [ t 1 0] [ t^3 t^2 + t 1] sage: s.transition_matrix(HLP,3) [ 1 t t^3] [ 0 1 t^2 + t] [ 0 0 1]
>>> from sage.all import * >>> Sym = SymmetricFunctions(FractionField(QQ['t'])) >>> HLP = Sym.hall_littlewood().P() >>> HLQ = Sym.hall_littlewood().Q() >>> HLQp = Sym.hall_littlewood().Qp() >>> s = Sym.schur() >>> p = Sym.power() >>> HLP(HLQ([Integer(2)])) # indirect doctest (-t+1)*HLP[2] >>> HLP(HLQp([Integer(2)])) t*HLP[1, 1] + HLP[2] >>> HLP(s([Integer(2)])) t*HLP[1, 1] + HLP[2] >>> HLP(p([Integer(2)])) (t-1)*HLP[1, 1] + HLP[2] >>> s = HLQp.symmetric_function_ring().s() >>> HLQp.transition_matrix(s,Integer(3)) [ 1 0 0] [ t 1 0] [ t^3 t^2 + t 1] >>> s.transition_matrix(HLP,Integer(3)) [ 1 t t^3] [ 0 1 t^2 + t] [ 0 0 1]
The method
sage.combinat.sf.sfa.SymmetricFunctionAlgebra_generic_Element.hl_creation_operator()
is a creation operator for the \(Q\) basis:sage: HLQp[1].hl_creation_operator([3]).hl_creation_operator([3]) HLQp[3, 3, 1]
>>> from sage.all import * >>> HLQp[Integer(1)].hl_creation_operator([Integer(3)]).hl_creation_operator([Integer(3)]) HLQp[3, 3, 1]
Transitions between bases with the parameter \(t\) specialized:
sage: Sym = SymmetricFunctions(FractionField(QQ['y','z'])) sage: (y,z) = Sym.base_ring().gens() sage: HLy = Sym.hall_littlewood(t=y) sage: HLz = Sym.hall_littlewood(t=z) sage: Qpy = HLy.Qp() sage: Qpz = HLz.Qp() sage: s = Sym.schur() sage: s( Qpy[3,1] + z*Qpy[2,2] ) z*s[2, 2] + (y*z+1)*s[3, 1] + (y^2*z+y)*s[4] sage: s( Qpy[3,1] + y*Qpz[2,2] ) y*s[2, 2] + (y*z+1)*s[3, 1] + (y*z^2+y)*s[4] sage: s( Qpy[3,1] + y*Qpy[2,2] ) y*s[2, 2] + (y^2+1)*s[3, 1] + (y^3+y)*s[4] sage: Qy = HLy.Q() sage: Qz = HLz.Q() sage: Py = HLy.P() sage: Pz = HLz.P() sage: Pz(Qpy[2,1]) (y*z^3+z^2+z)*HLP[1, 1, 1] + (y*z+1)*HLP[2, 1] + y*HLP[3] sage: Pz(Qz[2,1]) (z^2-2*z+1)*HLP[2, 1] sage: Qz(Py[2]) ((-y+z)/(z^3-z^2-z+1))*HLQ[1, 1] + (1/(-z+1))*HLQ[2] sage: Qy(Pz[2]) ((y-z)/(y^3-y^2-y+1))*HLQ[1, 1] + (1/(-y+1))*HLQ[2] sage: Qy.hall_littlewood_family() == HLy True sage: Qy.hall_littlewood_family() == HLz False sage: Qz.symmetric_function_ring() == Qy.symmetric_function_ring() True sage: Sym = SymmetricFunctions(FractionField(QQ['q'])) sage: q = Sym.base_ring().gen() sage: HL = Sym.hall_littlewood(t=q) sage: HLQp = HL.Qp() sage: HLQ = HL.Q() sage: HLP = HL.P() sage: s = Sym.schur() sage: s(HLQp[3,2].plethysm((1-q)*s[1]))/(1-q)^2 (-q^5-q^4)*s[1, 1, 1, 1, 1] + (q^3+q^2)*s[2, 1, 1, 1] - q*s[2, 2, 1] - q*s[3, 1, 1] + s[3, 2] sage: s(HLP[3,2]) (-q^5-q^4)*s[1, 1, 1, 1, 1] + (q^3+q^2)*s[2, 1, 1, 1] - q*s[2, 2, 1] - q*s[3, 1, 1] + s[3, 2]
>>> from sage.all import * >>> Sym = SymmetricFunctions(FractionField(QQ['y','z'])) >>> (y,z) = Sym.base_ring().gens() >>> HLy = Sym.hall_littlewood(t=y) >>> HLz = Sym.hall_littlewood(t=z) >>> Qpy = HLy.Qp() >>> Qpz = HLz.Qp() >>> s = Sym.schur() >>> s( Qpy[Integer(3),Integer(1)] + z*Qpy[Integer(2),Integer(2)] ) z*s[2, 2] + (y*z+1)*s[3, 1] + (y^2*z+y)*s[4] >>> s( Qpy[Integer(3),Integer(1)] + y*Qpz[Integer(2),Integer(2)] ) y*s[2, 2] + (y*z+1)*s[3, 1] + (y*z^2+y)*s[4] >>> s( Qpy[Integer(3),Integer(1)] + y*Qpy[Integer(2),Integer(2)] ) y*s[2, 2] + (y^2+1)*s[3, 1] + (y^3+y)*s[4] >>> Qy = HLy.Q() >>> Qz = HLz.Q() >>> Py = HLy.P() >>> Pz = HLz.P() >>> Pz(Qpy[Integer(2),Integer(1)]) (y*z^3+z^2+z)*HLP[1, 1, 1] + (y*z+1)*HLP[2, 1] + y*HLP[3] >>> Pz(Qz[Integer(2),Integer(1)]) (z^2-2*z+1)*HLP[2, 1] >>> Qz(Py[Integer(2)]) ((-y+z)/(z^3-z^2-z+1))*HLQ[1, 1] + (1/(-z+1))*HLQ[2] >>> Qy(Pz[Integer(2)]) ((y-z)/(y^3-y^2-y+1))*HLQ[1, 1] + (1/(-y+1))*HLQ[2] >>> Qy.hall_littlewood_family() == HLy True >>> Qy.hall_littlewood_family() == HLz False >>> Qz.symmetric_function_ring() == Qy.symmetric_function_ring() True >>> Sym = SymmetricFunctions(FractionField(QQ['q'])) >>> q = Sym.base_ring().gen() >>> HL = Sym.hall_littlewood(t=q) >>> HLQp = HL.Qp() >>> HLQ = HL.Q() >>> HLP = HL.P() >>> s = Sym.schur() >>> s(HLQp[Integer(3),Integer(2)].plethysm((Integer(1)-q)*s[Integer(1)]))/(Integer(1)-q)**Integer(2) (-q^5-q^4)*s[1, 1, 1, 1, 1] + (q^3+q^2)*s[2, 1, 1, 1] - q*s[2, 2, 1] - q*s[3, 1, 1] + s[3, 2] >>> s(HLP[Integer(3),Integer(2)]) (-q^5-q^4)*s[1, 1, 1, 1, 1] + (q^3+q^2)*s[2, 1, 1, 1] - q*s[2, 2, 1] - q*s[3, 1, 1] + s[3, 2]
The \(P\) and \(Q\)-Schur at \(t=-1\) indexed by strict partitions are a basis for the space algebraically generated by the odd power sum symmetric functions:
sage: Sym = SymmetricFunctions(FractionField(QQ['q'])) sage: SP = Sym.hall_littlewood(t=-1).P() sage: SQ = Sym.hall_littlewood(t=-1).Q() sage: p = Sym.power() sage: SP(SQ[3,2,1]) 8*HLP[3, 2, 1] sage: SP(SQ[2,2,1]) 0 sage: p(SP[3,2,1]) 1/45*p[1, 1, 1, 1, 1, 1] - 1/9*p[3, 1, 1, 1] - 1/9*p[3, 3] + 1/5*p[5, 1] sage: SP(p[3,3]) -4*HLP[3, 2, 1] + 2*HLP[4, 2] - 2*HLP[5, 1] + HLP[6] sage: SQ( SQ[1]*SQ[3] -2*(1-q)*SQ[4] ) HLQ[3, 1] + 2*q*HLQ[4]
>>> from sage.all import * >>> Sym = SymmetricFunctions(FractionField(QQ['q'])) >>> SP = Sym.hall_littlewood(t=-Integer(1)).P() >>> SQ = Sym.hall_littlewood(t=-Integer(1)).Q() >>> p = Sym.power() >>> SP(SQ[Integer(3),Integer(2),Integer(1)]) 8*HLP[3, 2, 1] >>> SP(SQ[Integer(2),Integer(2),Integer(1)]) 0 >>> p(SP[Integer(3),Integer(2),Integer(1)]) 1/45*p[1, 1, 1, 1, 1, 1] - 1/9*p[3, 1, 1, 1] - 1/9*p[3, 3] + 1/5*p[5, 1] >>> SP(p[Integer(3),Integer(3)]) -4*HLP[3, 2, 1] + 2*HLP[4, 2] - 2*HLP[5, 1] + HLP[6] >>> SQ( SQ[Integer(1)]*SQ[Integer(3)] -Integer(2)*(Integer(1)-q)*SQ[Integer(4)] ) HLQ[3, 1] + 2*q*HLQ[4]
- Q()[source]#
Returns the algebra of symmetric functions in Hall-Littlewood \(Q\) basis. This is the same as the \(Q\) basis in John Stembridge’s SF examples file.
More extensive examples can be found in the documentation for the Hall-Littlewood \(P\) basis.
INPUT:
self
– a class of Hall-Littlewood symmetric function bases
OUTPUT:
returns the class of the Hall-Littlewood \(Q\) basis
EXAMPLES:
sage: Sym = SymmetricFunctions(FractionField(QQ['t'])) sage: HLQ = Sym.hall_littlewood().Q(); HLQ Symmetric Functions over Fraction Field of Univariate Polynomial Ring in t over Rational Field in the Hall-Littlewood Q basis sage: SQ = SymmetricFunctions(QQ).hall_littlewood(t=-1).Q(); SQ Symmetric Functions over Rational Field in the Hall-Littlewood Q with t=-1 basis
>>> from sage.all import * >>> Sym = SymmetricFunctions(FractionField(QQ['t'])) >>> HLQ = Sym.hall_littlewood().Q(); HLQ Symmetric Functions over Fraction Field of Univariate Polynomial Ring in t over Rational Field in the Hall-Littlewood Q basis >>> SQ = SymmetricFunctions(QQ).hall_littlewood(t=-Integer(1)).Q(); SQ Symmetric Functions over Rational Field in the Hall-Littlewood Q with t=-1 basis
- Qp()[source]#
Returns the algebra of symmetric functions in Hall-Littlewood \(Q^\prime\) (Qp) basis. This is dual to the Hall-Littlewood \(P\) basis with respect to the standard scalar product.
More extensive examples can be found in the documentation for the Hall-Littlewood P basis.
INPUT:
self
– a class of Hall-Littlewood symmetric function bases
OUTPUT:
returns the class of the Hall-Littlewood \(Qp\)-basis
EXAMPLES:
sage: Sym = SymmetricFunctions(FractionField(QQ['t'])) sage: HLQp = Sym.hall_littlewood().Qp(); HLQp Symmetric Functions over Fraction Field of Univariate Polynomial Ring in t over Rational Field in the Hall-Littlewood Qp basis
>>> from sage.all import * >>> Sym = SymmetricFunctions(FractionField(QQ['t'])) >>> HLQp = Sym.hall_littlewood().Qp(); HLQp Symmetric Functions over Fraction Field of Univariate Polynomial Ring in t over Rational Field in the Hall-Littlewood Qp basis
- base_ring()[source]#
Returns the base ring of the symmetric functions where the Hall-Littlewood symmetric functions live
INPUT:
self
– a class of Hall-Littlewood symmetric function bases
OUTPUT:
The base ring of the symmetric functions.
EXAMPLES:
sage: HL = SymmetricFunctions(QQ['t'].fraction_field()).hall_littlewood(t=1) sage: HL.base_ring() Fraction Field of Univariate Polynomial Ring in t over Rational Field
>>> from sage.all import * >>> HL = SymmetricFunctions(QQ['t'].fraction_field()).hall_littlewood(t=Integer(1)) >>> HL.base_ring() Fraction Field of Univariate Polynomial Ring in t over Rational Field
- symmetric_function_ring()[source]#
The ring of symmetric functions associated to the class of Hall-Littlewood symmetric functions
INPUT:
self
– a class of Hall-Littlewood symmetric function bases
OUTPUT:
returns the ring of symmetric functions
EXAMPLES:
sage: HL = SymmetricFunctions(FractionField(QQ['t'])).hall_littlewood() sage: HL.symmetric_function_ring() Symmetric Functions over Fraction Field of Univariate Polynomial Ring in t over Rational Field
>>> from sage.all import * >>> HL = SymmetricFunctions(FractionField(QQ['t'])).hall_littlewood() >>> HL.symmetric_function_ring() Symmetric Functions over Fraction Field of Univariate Polynomial Ring in t over Rational Field
- class sage.combinat.sf.hall_littlewood.HallLittlewood_generic(hall_littlewood)[source]#
Bases:
SymmetricFunctionAlgebra_generic
A class with methods for working with Hall-Littlewood symmetric functions which are common to all bases.
INPUT:
self
– a Hall-Littlewood symmetric function basishall_littlewood
– a class of Hall-Littlewood bases
- class Element[source]#
Bases:
SymmetricFunctionAlgebra_generic_Element
Methods for elements of a Hall-Littlewood basis that are common to all bases.
- expand(n, alphabet='x')[source]#
Expands the symmetric function as a symmetric polynomial in
n
variables.INPUT:
self
– an element of a Hall-Littlewood basisn
– a positive integeralphabet
– a string representing a variable name (default: ‘x’)
OUTPUT:
returns a symmetric polynomial of
self
inn
variables
EXAMPLES:
sage: Sym = SymmetricFunctions(FractionField(QQ['t'])) sage: HLP = Sym.hall_littlewood().P() sage: HLQ = Sym.hall_littlewood().Q() sage: HLQp = Sym.hall_littlewood().Qp() sage: HLP([2]).expand(2) x0^2 + (-t + 1)*x0*x1 + x1^2 sage: HLQ([2]).expand(2) (-t + 1)*x0^2 + (t^2 - 2*t + 1)*x0*x1 + (-t + 1)*x1^2 sage: HLQp([2]).expand(2) x0^2 + x0*x1 + x1^2 sage: HLQp([2]).expand(2, 'y') y0^2 + y0*y1 + y1^2 sage: HLQp([2]).expand(1) x^2
>>> from sage.all import * >>> Sym = SymmetricFunctions(FractionField(QQ['t'])) >>> HLP = Sym.hall_littlewood().P() >>> HLQ = Sym.hall_littlewood().Q() >>> HLQp = Sym.hall_littlewood().Qp() >>> HLP([Integer(2)]).expand(Integer(2)) x0^2 + (-t + 1)*x0*x1 + x1^2 >>> HLQ([Integer(2)]).expand(Integer(2)) (-t + 1)*x0^2 + (t^2 - 2*t + 1)*x0*x1 + (-t + 1)*x1^2 >>> HLQp([Integer(2)]).expand(Integer(2)) x0^2 + x0*x1 + x1^2 >>> HLQp([Integer(2)]).expand(Integer(2), 'y') y0^2 + y0*y1 + y1^2 >>> HLQp([Integer(2)]).expand(Integer(1)) x^2
- scalar(x, zee=None)[source]#
Returns standard scalar product between
self
andx
.This is the default implementation that converts both
self
andx
into Schur functions and performs the scalar product that basis.The Hall-Littlewood \(P\) basis is dual to the \(Qp\) basis with respect to this scalar product.
INPUT:
self
– an element of a Hall-Littlewood basisx
– another symmetric element of the symmetric functions
OUTPUT:
returns the scalar product between
self
andx
EXAMPLES:
sage: Sym = SymmetricFunctions(FractionField(QQ['t'])) sage: HLP = Sym.hall_littlewood().P() sage: HLQ = Sym.hall_littlewood().Q() sage: HLQp = Sym.hall_littlewood().Qp() sage: HLP([2]).scalar(HLQp([2])) 1 sage: HLP([2]).scalar(HLQp([1,1])) 0 sage: HLP([2]).scalar(HLQ([2]), lambda mu: mu.centralizer_size(t = HLP.t)) 1 sage: HLP([2]).scalar(HLQ([1,1]), lambda mu: mu.centralizer_size(t = HLP.t)) 0
>>> from sage.all import * >>> Sym = SymmetricFunctions(FractionField(QQ['t'])) >>> HLP = Sym.hall_littlewood().P() >>> HLQ = Sym.hall_littlewood().Q() >>> HLQp = Sym.hall_littlewood().Qp() >>> HLP([Integer(2)]).scalar(HLQp([Integer(2)])) 1 >>> HLP([Integer(2)]).scalar(HLQp([Integer(1),Integer(1)])) 0 >>> HLP([Integer(2)]).scalar(HLQ([Integer(2)]), lambda mu: mu.centralizer_size(t = HLP.t)) 1 >>> HLP([Integer(2)]).scalar(HLQ([Integer(1),Integer(1)]), lambda mu: mu.centralizer_size(t = HLP.t)) 0
- scalar_hl(x, t=None)[source]#
Returns the Hall-Littlewood (with parameter
t
) scalar product ofself
andx
.The Hall-Littlewood scalar product is defined in Macdonald’s book [Mac1995]. The power sum basis is orthogonal and \(\langle p_\mu, p_\mu \rangle = z_\mu \prod_{i} 1/(1-t^{\mu_i})\)
The Hall-Littlewood \(P\) basis is dual to the \(Q\) basis with respect to this scalar product.
INPUT:
self
– an element of a Hall-Littlewood basisx
– another symmetric element of the symmetric functionst
– an optional parameter, if this parameter is not specified then the value of thet
from the basis is used in the calculation
OUTPUT:
returns the Hall-Littlewood scalar product between
self
andx
EXAMPLES:
sage: Sym = SymmetricFunctions(FractionField(QQ['t'])) sage: HLP = Sym.hall_littlewood().P() sage: HLQ = Sym.hall_littlewood().Q() sage: HLP([2]).scalar_hl(HLQ([2])) 1 sage: HLP([2]).scalar_hl(HLQ([1,1])) 0 sage: HLQ([2]).scalar_hl(HLQ([2])) -t + 1 sage: HLQ([2]).scalar_hl(HLQ([1,1])) 0 sage: HLP([2]).scalar_hl(HLP([2])) -1/(t - 1)
>>> from sage.all import * >>> Sym = SymmetricFunctions(FractionField(QQ['t'])) >>> HLP = Sym.hall_littlewood().P() >>> HLQ = Sym.hall_littlewood().Q() >>> HLP([Integer(2)]).scalar_hl(HLQ([Integer(2)])) 1 >>> HLP([Integer(2)]).scalar_hl(HLQ([Integer(1),Integer(1)])) 0 >>> HLQ([Integer(2)]).scalar_hl(HLQ([Integer(2)])) -t + 1 >>> HLQ([Integer(2)]).scalar_hl(HLQ([Integer(1),Integer(1)])) 0 >>> HLP([Integer(2)]).scalar_hl(HLP([Integer(2)])) -1/(t - 1)
- construction()[source]#
Return a pair
(F, R)
, whereF
is aSymmetricFunctionsFunctor
and \(R\) is a ring, such thatF(R)
returnsself
.EXAMPLES:
sage: P = SymmetricFunctions(QQ).hall_littlewood(t=2).P() sage: P.construction() (SymmetricFunctionsFunctor[Hall-Littlewood P with t=2], Rational Field)
>>> from sage.all import * >>> P = SymmetricFunctions(QQ).hall_littlewood(t=Integer(2)).P() >>> P.construction() (SymmetricFunctionsFunctor[Hall-Littlewood P with t=2], Rational Field)
- hall_littlewood_family()[source]#
The family of Hall-Littlewood bases associated to
self
INPUT:
self
– a Hall-Littlewood symmetric function basis
OUTPUT:
returns the class of Hall-Littlewood bases
EXAMPLES:
sage: HLP = SymmetricFunctions(FractionField(QQ['t'])).hall_littlewood(1).P() sage: HLP.hall_littlewood_family() Hall-Littlewood polynomials with t=1 over Fraction Field of Univariate Polynomial Ring in t over Rational Field
>>> from sage.all import * >>> HLP = SymmetricFunctions(FractionField(QQ['t'])).hall_littlewood(Integer(1)).P() >>> HLP.hall_littlewood_family() Hall-Littlewood polynomials with t=1 over Fraction Field of Univariate Polynomial Ring in t over Rational Field
- product(left, right)[source]#
Multiply an element of the Hall-Littlewood symmetric function basis
self
and another symmetric functionConvert to the Schur basis, do the multiplication there, and convert back to
self
basis.INPUT:
self
– a Hall-Littlewood symmetric function basisleft
– an element of the basisself
right
– another symmetric function
OUTPUT:
the product of
left
andright
expanded in the basisself
EXAMPLES:
sage: Sym = SymmetricFunctions(FractionField(QQ['t'])) sage: HLP = Sym.hall_littlewood().P() sage: HLP([2])^2 # indirect doctest (t+1)*HLP[2, 2] + (-t+1)*HLP[3, 1] + HLP[4] sage: HLQ = Sym.hall_littlewood().Q() sage: HLQ([2])^2 # indirect doctest HLQ[2, 2] + (-t+1)*HLQ[3, 1] + (-t+1)*HLQ[4] sage: HLQp = Sym.hall_littlewood().Qp() sage: HLQp([2])^2 # indirect doctest HLQp[2, 2] + (-t+1)*HLQp[3, 1] + (-t+1)*HLQp[4]
>>> from sage.all import * >>> Sym = SymmetricFunctions(FractionField(QQ['t'])) >>> HLP = Sym.hall_littlewood().P() >>> HLP([Integer(2)])**Integer(2) # indirect doctest (t+1)*HLP[2, 2] + (-t+1)*HLP[3, 1] + HLP[4] >>> HLQ = Sym.hall_littlewood().Q() >>> HLQ([Integer(2)])**Integer(2) # indirect doctest HLQ[2, 2] + (-t+1)*HLQ[3, 1] + (-t+1)*HLQ[4] >>> HLQp = Sym.hall_littlewood().Qp() >>> HLQp([Integer(2)])**Integer(2) # indirect doctest HLQp[2, 2] + (-t+1)*HLQp[3, 1] + (-t+1)*HLQp[4]
- transition_matrix(basis, n)[source]#
Returns the transitions matrix between
self
andbasis
for the homogeneous component of degreen
.INPUT:
self
– a Hall-Littlewood symmetric function basisbasis
– another symmetric function basisn
– a non-negative integer representing the degree
OUTPUT:
Returns a \(r \times r\) matrix of elements of the base ring of
self
where \(r\) is the number of partitions ofn
. The entry corresponding to row \(\mu\), column \(\nu\) is the coefficient ofbasis
\((\nu)\) inself
\((\mu)\)
EXAMPLES:
sage: Sym = SymmetricFunctions(FractionField(QQ['t'])) sage: HLP = Sym.hall_littlewood().P() sage: s = Sym.schur() sage: HLP.transition_matrix(s, 4) [ 1 -t 0 t^2 -t^3] [ 0 1 -t -t t^3 + t^2] [ 0 0 1 -t t^3] [ 0 0 0 1 -t^3 - t^2 - t] [ 0 0 0 0 1] sage: HLQ = Sym.hall_littlewood().Q() sage: HLQ.transition_matrix(s,3) [ -t + 1 t^2 - t -t^3 + t^2] [ 0 t^2 - 2*t + 1 -t^4 + t^3 + t^2 - t] [ 0 0 -t^6 + t^5 + t^4 - t^2 - t + 1] sage: HLQp = Sym.hall_littlewood().Qp() sage: HLQp.transition_matrix(s,3) [ 1 0 0] [ t 1 0] [ t^3 t^2 + t 1]
>>> from sage.all import * >>> Sym = SymmetricFunctions(FractionField(QQ['t'])) >>> HLP = Sym.hall_littlewood().P() >>> s = Sym.schur() >>> HLP.transition_matrix(s, Integer(4)) [ 1 -t 0 t^2 -t^3] [ 0 1 -t -t t^3 + t^2] [ 0 0 1 -t t^3] [ 0 0 0 1 -t^3 - t^2 - t] [ 0 0 0 0 1] >>> HLQ = Sym.hall_littlewood().Q() >>> HLQ.transition_matrix(s,Integer(3)) [ -t + 1 t^2 - t -t^3 + t^2] [ 0 t^2 - 2*t + 1 -t^4 + t^3 + t^2 - t] [ 0 0 -t^6 + t^5 + t^4 - t^2 - t + 1] >>> HLQp = Sym.hall_littlewood().Qp() >>> HLQp.transition_matrix(s,Integer(3)) [ 1 0 0] [ t 1 0] [ t^3 t^2 + t 1]
- class sage.combinat.sf.hall_littlewood.HallLittlewood_p(hall_littlewood)[source]#
Bases:
HallLittlewood_generic
A class representing the Hall-Littlewood \(P\) basis of symmetric functions
- class sage.combinat.sf.hall_littlewood.HallLittlewood_q(hall_littlewood)[source]#
Bases:
HallLittlewood_generic
The \(Q\) basis is defined as a normalization of the \(P\) basis.
INPUT:
self
– an instance of the Hall-Littlewood \(P\) basishall_littlewood
– a class for the family of Hall-Littlewood bases
EXAMPLES:
sage: Sym = SymmetricFunctions(FractionField(QQ['t'])) sage: Q = Sym.hall_littlewood().Q() sage: TestSuite(Q).run(skip=['_test_associativity', '_test_distributivity', '_test_prod']) # products are too expensive, long time (3s on sage.math, 2012) sage: TestSuite(Q).run(elements = [Q.t*Q[1,1]+Q[2], Q[1]+(1+Q.t)*Q[1,1]]) # long time (depends on previous) sage: Sym = SymmetricFunctions(FractionField(QQ['t'])) sage: HLP = Sym.hall_littlewood().P() sage: HLQ = Sym.hall_littlewood().Q() sage: HLQp = Sym.hall_littlewood().Qp() sage: s = Sym.schur(); p = Sym.power() sage: HLQ( HLP([2,1]) + HLP([3]) ) (1/(t^2-2*t+1))*HLQ[2, 1] - (1/(t-1))*HLQ[3] sage: HLQ(HLQp([2])) # indirect doctest (t/(t^3-t^2-t+1))*HLQ[1, 1] - (1/(t-1))*HLQ[2] sage: HLQ(s([2])) (t/(t^3-t^2-t+1))*HLQ[1, 1] - (1/(t-1))*HLQ[2] sage: HLQ(p([2])) (1/(t^2-1))*HLQ[1, 1] - (1/(t-1))*HLQ[2]
>>> from sage.all import * >>> Sym = SymmetricFunctions(FractionField(QQ['t'])) >>> Q = Sym.hall_littlewood().Q() >>> TestSuite(Q).run(skip=['_test_associativity', '_test_distributivity', '_test_prod']) # products are too expensive, long time (3s on sage.math, 2012) >>> TestSuite(Q).run(elements = [Q.t*Q[Integer(1),Integer(1)]+Q[Integer(2)], Q[Integer(1)]+(Integer(1)+Q.t)*Q[Integer(1),Integer(1)]]) # long time (depends on previous) >>> Sym = SymmetricFunctions(FractionField(QQ['t'])) >>> HLP = Sym.hall_littlewood().P() >>> HLQ = Sym.hall_littlewood().Q() >>> HLQp = Sym.hall_littlewood().Qp() >>> s = Sym.schur(); p = Sym.power() >>> HLQ( HLP([Integer(2),Integer(1)]) + HLP([Integer(3)]) ) (1/(t^2-2*t+1))*HLQ[2, 1] - (1/(t-1))*HLQ[3] >>> HLQ(HLQp([Integer(2)])) # indirect doctest (t/(t^3-t^2-t+1))*HLQ[1, 1] - (1/(t-1))*HLQ[2] >>> HLQ(s([Integer(2)])) (t/(t^3-t^2-t+1))*HLQ[1, 1] - (1/(t-1))*HLQ[2] >>> HLQ(p([Integer(2)])) (1/(t^2-1))*HLQ[1, 1] - (1/(t-1))*HLQ[2]
- class sage.combinat.sf.hall_littlewood.HallLittlewood_qp(hall_littlewood)[source]#
Bases:
HallLittlewood_generic
The Hall-Littlewood \(Qp\) basis is calculated through the symmetrica library (see the function
HallLittlewood_qp._to_s()
).INPUT:
self
– an instance of the Hall-Littlewood \(P\) basishall_littlewood
– a class for the family of Hall-Littlewood bases
EXAMPLES:
sage: Sym = SymmetricFunctions(FractionField(QQ['t'])) sage: Qp = Sym.hall_littlewood().Q() sage: TestSuite(Qp).run(skip=['_test_passociativity', '_test_distributivity', '_test_prod']) # products are too expensive, long time (3s on sage.math, 2012) sage: TestSuite(Qp).run(elements = [Qp.t*Qp[1,1]+Qp[2], Qp[1]+(1+Qp.t)*Qp[1,1]]) # long time (depends on previous) sage: Sym = SymmetricFunctions(FractionField(QQ['t'])) sage: HLP = Sym.hall_littlewood().P() sage: HLQ = Sym.hall_littlewood().Q() sage: HLQp = Sym.hall_littlewood().Qp() sage: s = Sym.schur(); p = Sym.power() sage: HLQp(HLP([2])) # indirect doctest -t*HLQp[1, 1] + (t^2+1)*HLQp[2] sage: HLQp(s(HLQ([2]))) # work around bug reported in issue #12969 (t^2-t)*HLQp[1, 1] + (-t^3+t^2-t+1)*HLQp[2] sage: HLQp(s([2])) HLQp[2] sage: HLQp(p([2])) -HLQp[1, 1] + (t+1)*HLQp[2] sage: s = HLQp.symmetric_function_ring().s() sage: HLQp.transition_matrix(s,3) [ 1 0 0] [ t 1 0] [ t^3 t^2 + t 1] sage: s.transition_matrix(HLP,3) [ 1 t t^3] [ 0 1 t^2 + t] [ 0 0 1]
>>> from sage.all import * >>> Sym = SymmetricFunctions(FractionField(QQ['t'])) >>> Qp = Sym.hall_littlewood().Q() >>> TestSuite(Qp).run(skip=['_test_passociativity', '_test_distributivity', '_test_prod']) # products are too expensive, long time (3s on sage.math, 2012) >>> TestSuite(Qp).run(elements = [Qp.t*Qp[Integer(1),Integer(1)]+Qp[Integer(2)], Qp[Integer(1)]+(Integer(1)+Qp.t)*Qp[Integer(1),Integer(1)]]) # long time (depends on previous) >>> Sym = SymmetricFunctions(FractionField(QQ['t'])) >>> HLP = Sym.hall_littlewood().P() >>> HLQ = Sym.hall_littlewood().Q() >>> HLQp = Sym.hall_littlewood().Qp() >>> s = Sym.schur(); p = Sym.power() >>> HLQp(HLP([Integer(2)])) # indirect doctest -t*HLQp[1, 1] + (t^2+1)*HLQp[2] >>> HLQp(s(HLQ([Integer(2)]))) # work around bug reported in issue #12969 (t^2-t)*HLQp[1, 1] + (-t^3+t^2-t+1)*HLQp[2] >>> HLQp(s([Integer(2)])) HLQp[2] >>> HLQp(p([Integer(2)])) -HLQp[1, 1] + (t+1)*HLQp[2] >>> s = HLQp.symmetric_function_ring().s() >>> HLQp.transition_matrix(s,Integer(3)) [ 1 0 0] [ t 1 0] [ t^3 t^2 + t 1] >>> s.transition_matrix(HLP,Integer(3)) [ 1 t t^3] [ 0 1 t^2 + t] [ 0 0 1]