Hall-Littlewood Polynomials¶
Notation used in the definitions follows mainly [Mac1995].
- class sage.combinat.sf.hall_littlewood.HallLittlewood(Sym, t)[source]¶
Bases:
UniqueRepresentationThe 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]¶
Return 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: 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]¶
Return 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: 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]¶
Return the base ring of the symmetric functions where the Hall-Littlewood symmetric functions live.
INPUT:
self– a class of Hall-Littlewood symmetric function bases
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]¶
Return the ring of symmetric functions associated to the class of Hall-Littlewood symmetric functions.
INPUT:
self– a class of Hall-Littlewood symmetric function bases
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_genericA 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_ElementMethods for elements of a Hall-Littlewood basis that are common to all bases.
- expand(n, alphabet='x')[source]¶
Expand the symmetric function as a symmetric polynomial in
nvariables.INPUT:
self– an element of a Hall-Littlewood basisn– positive integeralphabet– string representing a variable name (default:'x')
OUTPUT: a symmetric polynomial of
selfinnvariablesEXAMPLES:
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]¶
Return standard scalar product between
selfandx.This is the default implementation that converts both
selfandxinto 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: the scalar product between
selfandxEXAMPLES:
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]¶
Return the Hall-Littlewood (with parameter
t) scalar product ofselfandx.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 thetfrom the basis is used in the calculation
OUTPUT: the Hall-Littlewood scalar product between
selfandxEXAMPLES:
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), whereFis aSymmetricFunctionsFunctorand \(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: 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
selfand another symmetric functionConvert to the Schur basis, do the multiplication there, and convert back to
selfbasis.INPUT:
self– a Hall-Littlewood symmetric function basisleft– an element of the basisselfright– another symmetric function
OUTPUT: the product of
leftandrightexpanded in the basisselfEXAMPLES:
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]¶
Return the transitions matrix between
selfandbasisfor the homogeneous component of degreen.INPUT:
self– a Hall-Littlewood symmetric function basisbasis– another symmetric function basisn– nonnegative integer representing the degree
OUTPUT:
Returns a \(r \times r\) matrix of elements of the base ring of
selfwhere \(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_genericA class representing the Hall-Littlewood \(P\) basis of symmetric functions
- class sage.combinat.sf.hall_littlewood.HallLittlewood_q(hall_littlewood)[source]¶
Bases:
HallLittlewood_genericThe \(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_genericThe 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]