Jack Polynomials

class sage.combinat.sf.jack.JackPolynomial_generic(A, x)
scalar_jack(x)

EXAMPLES:

sage: P = JackPolynomialsP(QQ)
sage: Q = JackPolynomialsQ(QQ)
sage: p = Partitions(3).list()
sage: matrix([[P(a).scalar_jack(Q(b)) for a in p] for b in p])
[1 0 0]
[0 1 0]
[0 0 1]
class sage.combinat.sf.jack.JackPolynomial_j(A, x)
class sage.combinat.sf.jack.JackPolynomial_p(A, x)
scalar_jack(x)

EXAMPLES:

sage: P = JackPolynomialsP(QQ)
sage: l = [P(p) for p in Partitions(3)]
sage: matrix([[a.scalar_jack(b) for a in l] for b in l])
[  6*t^3/(2*t^2 + 3*t + 1)                         0                         0]
[                        0     (2*t^3 + t^2)/(t + 2)                         0]
[                        0                         0 1/6*t^3 + 1/2*t^2 + 1/3*t]
class sage.combinat.sf.jack.JackPolynomial_q(A, x)
sage.combinat.sf.jack.JackPolynomialsJ(R, t=None)

Returns the algebra of Jack polynomials in the J basis.

If t is not specified, then the base ring will be obtained by making the univariate polynomial ring over R with the variable t and taking its fraction field.

EXAMPLES:

sage: JackPolynomialsJ(QQ)
Jack polynomials in the J basis over Fraction Field of Univariate Polynomial Ring in t over Rational Field
sage: JackPolynomialsJ(QQ,t=-1)
Jack polynomials in the J basis with t=-1 over Rational Field

At t = 1, the Jack polynomials in the J basis are scalar multiples of the Schur functions with the scalar given by a Partition’s hook_product method at 1.

sage: J = JackPolynomialsJ(QQ, t=1)
sage: s = SFASchur(J.base_ring())
sage: p = Partition([3,2,1,1])
sage: s(J(p)) == p.hook_product(1)*s(p)
True

At t = 2, the Jack polynomials on the J basis are scalar multiples of the zonal polynomials with the scalar given by a Partition’s hook_product method at 1.

sage: t = 2
sage: J = JackPolynomialsJ(QQ,t=t)
sage: Z = ZonalPolynomials(J.base_ring())
sage: p = Partition([2,2,1])
sage: Z(J(p)) == p.hook_product(t)*Z(p)
True
sage.combinat.sf.jack.JackPolynomialsP(R, t=None)

Returns the algebra of Jack polynomials in the P basis.

If t is not specified, then the base ring will be obtained by making the univariate polynomial ring over R with the variable t and taking its fraction field.

EXAMPLES:

sage: JackPolynomialsP(QQ)
Jack polynomials in the P basis over Fraction Field of Univariate Polynomial Ring in t over Rational Field
sage: JackPolynomialsP(QQ,t=-1)
Jack polynomials in the P basis with t=-1 over Rational Field

At t = 1, the Jack polynomials on the P basis are the Schur symmetric functions.

sage: P = JackPolynomialsP(QQ,1)
sage: s = SFASchur(QQ)
sage: P([2,1])^2
JackP[2, 2, 1, 1] + JackP[2, 2, 2] + JackP[3, 1, 1, 1] + 2*JackP[3, 2, 1] + JackP[3, 3] + JackP[4, 1, 1] + JackP[4, 2]
sage: s([2,1])^2
s[2, 2, 1, 1] + s[2, 2, 2] + s[3, 1, 1, 1] + 2*s[3, 2, 1] + s[3, 3] + s[4, 1, 1] + s[4, 2]

At t = 2, the Jack polynomials on the P basis are the zonal polynomials.

sage: P = JackPolynomialsP(QQ,2)
sage: Z = ZonalPolynomials(QQ)
sage: P([2])^2
64/45*JackP[2, 2] + 16/21*JackP[3, 1] + JackP[4]
sage: Z([2])^2
64/45*Z[2, 2] + 16/21*Z[3, 1] + Z[4]
sage: Z(P([2,1]))
Z[2, 1]
sage: P(Z([2,1]))
JackP[2, 1]
sage.combinat.sf.jack.JackPolynomialsQ(R, t=None)

Returns the algebra of Jack polynomials in the Q basis.

If t is not specified, then the base ring will be obtained by making the univariate polynomial ring over R with the variable t and taking its fraction field.

EXAMPLES:

sage: JackPolynomialsQ(QQ)
Jack polynomials in the Q basis over Fraction Field of Univariate Polynomial Ring in t over Rational Field
sage: JackPolynomialsQ(QQ,t=-1)
Jack polynomials in the Q basis with t=-1 over Rational Field
sage.combinat.sf.jack.JackPolynomialsQp(R, t=None)

Returns the algebra of Jack polynomials in the Qp, which is dual to the P basis with respect to the standard scalar product.

If t is not specified, then the base ring will be obtained by making the univariate polynomial ring over R with the variable t and taking its fraction field.

EXAMPLES:

sage: Qp = JackPolynomialsQp(QQ)
sage: P = JackPolynomialsP(QQ)
sage: a = Qp([2])
sage: a.scalar(P([2]))
1
sage: a.scalar(P([1,1]))
0
sage: P(Qp([2]))
((t-1)/(t+1))*JackP[1, 1] + JackP[2]
class sage.combinat.sf.jack.JackPolynomials_generic(R, t=None)
__init__(R, t=None)

EXAMPLES:

sage: JackPolynomialsJ(QQ).base_ring()
Fraction Field of Univariate Polynomial Ring in t over Rational Field
sage: JackPolynomialsJ(QQ, t=2).base_ring()
Rational Field
_normalize_coefficients(c)

If our coefficient ring is the field of fractions over a univariate polynomial ring over the rationals, then we should clear both the numerator and denominator of the denominators of their coefficients.

EXAMPLES:

sage: P = JackPolynomialsP(QQ)
sage: t = P.base_ring().gen()
sage: a = 2/(1/2*t+1/2)
sage: P._normalize_coefficients(a)
4/(t + 1)
sage: a = 1/(1/3+1/6*t)
sage: P._normalize_coefficients(a)
6/(t + 2)
sage: a = 24/(4*t^2 + 12*t + 8)
sage: P._normalize_coefficients(a)
6/(t^2 + 3*t + 2)
class sage.combinat.sf.jack.JackPolynomials_j(R, t=None)
__init__(R, t=None)

EXAMPLES:

sage: J = JackPolynomialsJ(QQ)
sage: J == loads(dumps(J))
True
_coerce_start(x)

EXAMPLES:

sage: J = JackPolynomialsJ(QQ)
sage: P = JackPolynomialsP(QQ)
sage: J(sum(P(p) for p in Partitions(3)))
1/6*JackJ[1, 1, 1] + (1/(t+2))*JackJ[2, 1] + (1/(2*t^2+3*t+1))*JackJ[3]
sage: s = SFASchur(J.base_ring())
sage: J(s([3])) # indirect doctest
((t^2-3*t+2)/(6*t^2+18*t+12))*JackJ[1, 1, 1] + ((2*t-2)/(2*t^2+5*t+2))*JackJ[2, 1] + (1/(2*t^2+3*t+1))*JackJ[3]
sage: J(s([2,1]))
((t-1)/(3*t+6))*JackJ[1, 1, 1] + (1/(t+2))*JackJ[2, 1]
sage: J(s([1,1,1]))
1/6*JackJ[1, 1, 1]
_multiply(left, right)

EXAMPLES:

sage: J = JackPolynomialsJ(QQ)
sage: J([1])^2 #indirect doctest
(t/(t+1))*JackJ[1, 1] + (1/(t+1))*JackJ[2] 
sage: J([2])^2
(2*t^2/(2*t^2+3*t+1))*JackJ[2, 2] + (4*t/(3*t^2+4*t+1))*JackJ[3, 1] + ((t+1)/(6*t^2+5*t+1))*JackJ[4]
class sage.combinat.sf.jack.JackPolynomials_p(R, t=None)
__init__(R, t=None)

EXAMPLES:

sage: P = JackPolynomialsP(QQ)
sage: P == loads(dumps(P))
True
_coerce_start(x)

Coerce things into the Jack polynomials P basis.

EXAMPLES:

sage: Q = JackPolynomialsQ(QQ)
sage: P = JackPolynomialsP(QQ)
sage: J = JackPolynomialsJ(QQ)
sage: P(Q([2,1])) # indirect doctest
((t+2)/(2*t^3+t^2))*JackP[2, 1]
sage: P(Q([3]))
((2*t^2+3*t+1)/(6*t^3))*JackP[3]
sage: P(Q([1,1,1]))
(6/(t^3+3*t^2+2*t))*JackP[1, 1, 1]
sage: P(J([3]))
(2*t^2+3*t+1)*JackP[3]
sage: P(J([2,1]))
(t+2)*JackP[2, 1]
sage: P(J([1,1,1]))
6*JackP[1, 1, 1]
sage: s = SFASchur(QQ)
sage: P(s([2,1]))
((2*t-2)/(t+2))*JackP[1, 1, 1] + JackP[2, 1]
sage: s(_)
s[2, 1]
_m_cache(n)

Computes the change of basis between the Jack polynomials in the P basis and the monomial symmetric functions. This uses Gram-Schmidt to go to the monomials, and then that matrix is simply inverted.

EXAMPLES:

sage: P = JackPolynomialsP(QQ)
sage: l = lambda c: [ (i[0],[j for j in sorted(i[1].items())]) for i in sorted(c.items())]
sage: P._m_cache(2)
sage: l(P._self_to_m_cache[2])
[([1, 1], [([1, 1], 1)]), ([2], [([1, 1], 2/(t + 1)), ([2], 1)])]
sage: l(P._m_to_self_cache[2])
[([1, 1], [([1, 1], 1)]), ([2], [([1, 1], -2/(t + 1)), ([2], 1)])]
sage: P._m_cache(3)
sage: l(P._m_to_self_cache[3])
[([1, 1, 1], [([1, 1, 1], 1)]),
 ([2, 1], [([1, 1, 1], -6/(t + 2)), ([2, 1], 1)]),
 ([3], [([1, 1, 1], 6/(t^2 + 3*t + 2)), ([2, 1], -3/(2*t + 1)), ([3], 1)])]
sage: l(P._self_to_m_cache[3])
[([1, 1, 1], [([1, 1, 1], 1)]),
 ([2, 1], [([1, 1, 1], 6/(t + 2)), ([2, 1], 1)]),
 ([3], [([1, 1, 1], 6/(2*t^2 + 3*t + 1)), ([2, 1], 3/(2*t + 1)), ([3], 1)])]
_multiply(left, right)

EXAMPLES:

sage: P = JackPolynomialsP(QQ)
sage: P([1])^2 # indirect doctest
(2*t/(t+1))*JackP[1, 1] + JackP[2]
sage: P._m(_)
2*m[1, 1] + m[2]
sage: P = JackPolynomialsP(QQ, 2)
sage: P([2,1])^2
125/63*JackP[2, 2, 1, 1] + 25/12*JackP[2, 2, 2] + 25/18*JackP[3, 1, 1, 1] + 12/5*JackP[3, 2, 1] + 4/3*JackP[3, 3] + 4/3*JackP[4, 1, 1] + JackP[4, 2]
sage: P._m(_)
45*m[1, 1, 1, 1, 1, 1] + 51/2*m[2, 1, 1, 1, 1] + 29/2*m[2, 2, 1, 1] + 33/4*m[2, 2, 2] + 9*m[3, 1, 1, 1] + 5*m[3, 2, 1] + 2*m[3, 3] + 2*m[4, 1, 1] + m[4, 2]
_to_m(part)

Return a function that takes in a partition lambda that returns the coefficient of lambda in the expansion of self(part) in the monomial basis.

This assumes that the cache from the Jack polynomials in the P basis to the monomial symmetric functions has already been computed.

EXAMPLES:

sage: P = JackPolynomialsP(QQ)
sage: P._m_cache(2)
sage: p2 = Partition([2])
sage: p11 = Partition([1,1])
sage: f = P._to_m(p2)
sage: f(p11)
2/(t + 1)
sage: f(p2)
1
sage: f = P._to_m(p11)
sage: f(p2)
0
sage: f(p11)
1
class sage.combinat.sf.jack.JackPolynomials_q(R, t=None)
__init__(R, t=None)

EXAMPLES:

sage: Q = JackPolynomialsQ(QQ)
sage: Q == loads(dumps(Q))
True
_coerce_start(x)

EXAMPLES:

sage: Q = JackPolynomialsQ(QQ)
sage: P = JackPolynomialsP(QQ)
sage: Q(sum(P(p) for p in Partitions(3)))
(1/6*t^3+1/2*t^2+1/3*t)*JackQ[1, 1, 1] + ((2*t^3+t^2)/(t+2))*JackQ[2, 1] + (6*t^3/(2*t^2+3*t+1))*JackQ[3]
sage: s = SFASchur(Q.base_ring())
sage: Q(s([3])) # indirect doctest
(1/6*t^3-1/2*t^2+1/3*t)*JackQ[1, 1, 1] + ((2*t^3-2*t^2)/(t+2))*JackQ[2, 1] + (6*t^3/(2*t^2+3*t+1))*JackQ[3]
sage: Q(s([2,1]))
(1/3*t^3-1/3*t)*JackQ[1, 1, 1] + ((2*t^3+t^2)/(t+2))*JackQ[2, 1]
sage: Q(s([1,1,1]))
(1/6*t^3+1/2*t^2+1/3*t)*JackQ[1, 1, 1]
_multiply(left, right)

EXAMPLES:

sage: Q = JackPolynomialsQ(QQ)
sage: Q([1])^2 # indirect doctest
JackQ[1, 1] + (2/(t+1))*JackQ[2]
sage: Q([2])^2
JackQ[2, 2] + (2/(t+1))*JackQ[3, 1] + ((6*t+6)/(6*t^2+5*t+1))*JackQ[4]
sage.combinat.sf.jack.ZonalPolynomials(R)

Returns the algebra of zonal polynomials.

EXAMPLES:

sage: Z = ZonalPolynomials(QQ)
sage: a = Z([2])
sage: Z([2])^2
64/45*Z[2, 2] + 16/21*Z[3, 1] + Z[4]
sage.combinat.sf.jack._makeZonalPolynomials(R)

A utility function that is used to make the zonal polynomials from the Jack polynomials on the P basis. This routine is called by the cache.

EXAMPLES:

sage: from sage.combinat.sf.jack import _makeZonalPolynomials
sage: _makeZonalPolynomials(QQ)
Zonal polynomials over Rational Field
sage.combinat.sf.jack.c1(part, t)

EXAMPLES:

sage: from sage.combinat.sf.jack import c1
sage: t = QQ['t'].gen()
sage: [c1(p,t) for p in Partitions(3)]
[2*t^2 + 3*t + 1, t + 2, 6]
sage.combinat.sf.jack.c2(part, t)

EXAMPLES:

sage: from sage.combinat.sf.jack import c2
sage: t = QQ['t'].gen()
sage: [c2(p,t) for p in Partitions(3)]
[6*t^3, 2*t^3 + t^2, t^3 + 3*t^2 + 2*t]
sage.combinat.sf.jack.scalar_jack(part1, part2, t)

Returns the Jack scalar product between p(part1) and p(part2) where p is the power-sum basis.

EXAMPLES:

sage: Q.<t> = QQ[]
sage: from sage.combinat.sf.jack import scalar_jack
sage: matrix([[scalar_jack(p1,p2,t) for p1 in Partitions(4)] for p2 in Partitions(4)])
[   4*t      0      0      0      0]
[     0  3*t^2      0      0      0]
[     0      0  8*t^2      0      0]
[     0      0      0  4*t^3      0]
[     0      0      0      0 24*t^4]

Previous topic

Hall-Littlewood Polynomials

Next topic

k-Schur Functions

This Page