Hall-Littlewood Polynomials

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.
sage.combinat.sf.hall_littlewood.HallLittlewood

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
class sage.combinat.sf.hall_littlewood.HallLittlewood_generic(hall_littlewood)

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:

  • self – a Hall-Littlewood symmetric function basis
  • hall_littlewood – a class of Hall-Littlewood bases
class Element

Bases: sage.combinat.sf.sfa.SymmetricFunctionAlgebra_generic_Element

Methods for elements of a Hall-Littlewood basis that are common to all bases.

expand(n, alphabet='x')

Expands the symmetric function as a symmetric polynomial in n variables.

INPUT:

  • self – an element of a Hall-Littlewood basis
  • n – a positive integer
  • alphabet – a string representing a variable name (default: ‘x’)

OUTPUT:

  • returns a symmetric polynomial of self in n 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
scalar(x, zee=None)

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 \(P\) basis is dual to the \(Qp\) basis with respect to this scalar product.

INPUT:

  • self – an element of a Hall-Littlewood basis
  • x – another symmetric element of the symmetric functions

OUTPUT:

  • returns the scalar product between self and x

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
scalar_hl(x, t=None)

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 \(\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 basis
  • x – another symmetric element of the symmetric functions
  • t – an optional parameter, if this parameter is not specified then the value of the t from the basis is used in the calculation

OUTPUT:

  • returns the Hall-Littlewood scalar product between self and x

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)
hall_littlewood_family()

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
transition_matrix(basis, n)

Returns the transitions matrix between self and basis for the homogeneous component of degree n.

INPUT:

  • self – a Hall-Littlewood symmetric function basis
  • basis – another symmetric function basis
  • n – 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 of n. The entry corresponding to row \(\mu\), column \(\nu\) is the coefficient of basis \((\nu)\) in self \((\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]
sage.combinat.sf.hall_littlewood.HallLittlewood_p

A class representing the Hall-Littlewood \(P\) basis of symmetric functions

class sage.combinat.sf.hall_littlewood.HallLittlewood_q(hall_littlewood)

Bases: sage.combinat.sf.hall_littlewood.HallLittlewood_generic

The \(Q\) basis is defined as a normalization of the \(P\) basis.

INPUT:

  • self – an instance of the Hall-Littlewood \(P\) basis
  • hall_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]
class Element

Bases: sage.combinat.sf.hall_littlewood.HallLittlewood_generic.Element

class sage.combinat.sf.hall_littlewood.HallLittlewood_qp(hall_littlewood)

Bases: sage.combinat.sf.hall_littlewood.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\) basis
  • hall_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 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]
class Element

Bases: sage.combinat.sf.hall_littlewood.HallLittlewood_generic.Element