Notation used in the definitions follows mainly [Mac1995].
REFERENCES:
[Mac1995] | (1, 2) I. G. Macdonald, Symmetric functions and Hall polynomials, second ed., The Clarendon Press, Oxford University Press, New York, 1995, With contributions by A. Zelevinsky, Oxford Science Publications. |
Bases: sage.structure.unique_representation.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 .
INPUT:
By default the parameter for these functions is , 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
Return the algebra of symmetric functions in the Hall-Littlewood
basis. This is the same as the
basis in John Stembridge’s
SF examples file.
INPUT:
OUTPUT:
The class of the Hall-Littlewood 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]
The Hall-Littlewood polynomials in the basis at
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
The Hall-Littlewood polynomials in the basis at
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
We end with some examples of coercions between:
- Hall-Littlewood
basis.
- Hall-Littlewood polynomials in the
basis
- Hall-Littlewood polynomials in the
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]
The method sage.combinat.sf.sfa.SymmetricFunctionAlgebra_generic_Element.hl_creation_operator()
is a creation operator for the basis:
sage: HLQp[1].hl_creation_operator([3]).hl_creation_operator([3])
HLQp[3, 3, 1]
Transitions between bases with the parameter 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]
The and
-Schur at
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]
TESTS:
sage: HLP(s[[]])
HLP[]
sage: HLQ(s[[]])
HLQ[]
sage: HLQp(s[[]])
HLQp[]
Returns the algebra of symmetric functions in Hall-Littlewood
basis. This is the same as the
basis in John Stembridge’s SF
examples file.
More extensive examples can be found in the documentation for the
Hall-Littlewood basis.
INPUT:
OUTPUT:
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
Returns the algebra of symmetric functions in Hall-Littlewood (Qp)
basis. This is dual to the Hall-Littlewood
basis with respect to
the standard scalar product.
More extensive examples can be found in the documentation for the Hall-Littlewood P basis.
INPUT:
OUTPUT:
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
Returns the base ring of the symmetric functions where the Hall-Littlewood symmetric functions live
INPUT:
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
The ring of symmetric functions associated to the class of Hall-Littlewood symmetric functions
INPUT:
OUTPUT:
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
Bases: sage.combinat.sf.sfa.SymmetricFunctionAlgebra_generic
A class with methods for working with Hall-Littlewood symmetric functions which are common to all bases.
INPUT:
TESTS:
sage: SymmetricFunctions(QQ['t'].fraction_field()).hall_littlewood().P()
Symmetric Functions over Fraction Field of Univariate Polynomial Ring in t over Rational Field in the Hall-Littlewood P basis
sage: SymmetricFunctions(QQ).hall_littlewood(t=2).P()
Symmetric Functions over Rational Field in the Hall-Littlewood P with t=2 basis
Bases: sage.combinat.sf.sfa.SymmetricFunctionAlgebra_generic_Element
Methods for elements of a Hall-Littlewood basis that are common to all bases.
Expands the symmetric function as a symmetric polynomial in n variables.
INPUT:
OUTPUT:
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
Returns standard scalar product between self and x.
This is the default implementation that converts both self and x into Schur functions and performs the scalar product that basis.
The Hall-Littlewood basis is dual to the
basis with respect to
this scalar product.
INPUT:
OUTPUT:
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
Returns the Hall-Littlewood (with parameter t) scalar product of self and x.
The Hall-Littlewood scalar product is defined in Macdonald’s
book [Mac1995]. The power sum basis is orthogonal and
The Hall-Littlewood basis is dual to the
basis with respect to
this scalar product.
INPUT:
OUTPUT:
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)
The family of Hall-Littlewood bases associated to self
INPUT:
OUTPUT:
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
Returns the transitions matrix between self and basis for the homogeneous component of degree n.
INPUT:
OUTPUT:
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]
Bases: sage.combinat.sf.hall_littlewood.HallLittlewood_generic
A class representing the Hall-Littlewood basis of symmetric functions
Bases: sage.combinat.sf.hall_littlewood.HallLittlewood_generic.Element
Create a combinatorial module element. This should never be called directly, but only through the parent combinatorial free module’s __call__() method.
TESTS:
sage: F = CombinatorialFreeModule(QQ, ['a','b','c'])
sage: B = F.basis()
sage: f = B['a'] + 3*B['c']; f
B['a'] + 3*B['c']
sage: f == loads(dumps(f))
True
Bases: sage.combinat.sf.hall_littlewood.HallLittlewood_generic
The basis is defined as a normalization of the
basis.
INPUT:
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]
Bases: sage.combinat.sf.hall_littlewood.HallLittlewood_generic.Element
Create a combinatorial module element. This should never be called directly, but only through the parent combinatorial free module’s __call__() method.
TESTS:
sage: F = CombinatorialFreeModule(QQ, ['a','b','c'])
sage: B = F.basis()
sage: f = B['a'] + 3*B['c']; f
B['a'] + 3*B['c']
sage: f == loads(dumps(f))
True
Bases: sage.combinat.sf.hall_littlewood.HallLittlewood_generic
The Hall-Littlewood basis is calculated through the symmetrica
library (see the function HallLittlewood_qp._to_s()).
INPUT:
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 ticket #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]
Bases: sage.combinat.sf.hall_littlewood.HallLittlewood_generic.Element
Create a combinatorial module element. This should never be called directly, but only through the parent combinatorial free module’s __call__() method.
TESTS:
sage: F = CombinatorialFreeModule(QQ, ['a','b','c'])
sage: B = F.basis()
sage: f = B['a'] + 3*B['c']; f
B['a'] + 3*B['c']
sage: f == loads(dumps(f))
True