Symmetric functions defined by orthogonality and triangularity.

One characterization of Schur functions is that they are upper triangularly related to the monomial symmetric functions and orthogonal with respect to the Hall scalar product. We can use the class SymmetricFunctionAlgebra_orthotriang to obtain the Schur functions from this definition.

sage: from sage.combinat.sf.sfa import zee
sage: from sage.combinat.sf.orthotriang import SymmetricFunctionAlgebra_orthotriang
sage: m = SFAMonomial(QQ)
sage: s =  SymmetricFunctionAlgebra_orthotriang(QQ, m, zee, 's', 'Schur functions')
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]
sage: s2 = SFASchur(QQ)
sage: s2([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]
class sage.combinat.sf.orthotriang.SymmetricFunctionAlgebraElement_orthotriang(A, x)
class sage.combinat.sf.orthotriang.SymmetricFunctionAlgebra_orthotriang(R, base, scalar, prefix, name, leading_coeff=None)
__init__(R, base, scalar, prefix, name, leading_coeff=None)

EXAMPLES:

sage: from sage.combinat.sf.sfa import zee
sage: from sage.combinat.sf.orthotriang import SymmetricFunctionAlgebra_orthotriang
sage: m = SFAMonomial(QQ)
sage: s =  SymmetricFunctionAlgebra_orthotriang(QQ, m, zee, 's', 'Schur functions')
sage: s == loads(dumps(s))
True
_base_cache(n)

Computes the change of basis between self and base for the homogenous component of size n.

EXAMPLES:

sage: from sage.combinat.sf.sfa import zee
sage: from sage.combinat.sf.orthotriang import SymmetricFunctionAlgebra_orthotriang
sage: m = SFAMonomial(QQ)
sage: s =  SymmetricFunctionAlgebra_orthotriang(QQ, m, zee, 's', 'Schur functions')
sage: s._base_cache(2)
sage: l = lambda c: [ (i[0],[j for j in sorted(i[1].items())]) for i in sorted(c.items())]
sage: l(s._base_to_self_cache[2])
[([1, 1], [([1, 1], 1)]), ([2], [([1, 1], -1), ([2], 1)])]
sage: l(s._self_to_base_cache[2])
[([1, 1], [([1, 1], 1)]), ([2], [([1, 1], 1), ([2], 1)])]
_coerce_start(x)

Coerce other symmetric functions into self through the base.

EXAMPLES:

sage: from sage.combinat.sf.sfa import zee
sage: from sage.combinat.sf.orthotriang import SymmetricFunctionAlgebra_orthotriang
sage: m = SFAMonomial(QQ)
sage: s =  SymmetricFunctionAlgebra_orthotriang(QQ, m, zee, 's', 'Schur functions')
sage: s._coerce_start(m([2,1]))
-2*s[1, 1, 1] + s[2, 1]
_multiply(left, right)

Returns left*right by converting both to the base and then converting back to self.

EXAMPLES:

sage: from sage.combinat.sf.sfa import zee
sage: from sage.combinat.sf.orthotriang import SymmetricFunctionAlgebra_orthotriang
sage: m = SFAMonomial(QQ)
sage: s =  SymmetricFunctionAlgebra_orthotriang(QQ, m, zee, 's', 'Schur functions')
sage: s([1])*s([2,1]) #indirect doctest
s[2, 1, 1] + s[2, 2] + s[3, 1]
_to_base(part)

Returns a function which takes in a partition part2 and returns the coefficient of a partition in the expansion of self(part) in base.

Note

We assume that self._gram_schmidt has been called before self._to_base is called.

EXAMPLES:

sage: from sage.combinat.sf.sfa import zee
sage: from sage.combinat.sf.orthotriang import SymmetricFunctionAlgebra_orthotriang
sage: m = SFAMonomial(QQ)
sage: s =  SymmetricFunctionAlgebra_orthotriang(QQ, m, zee, 's', 'Schur functions')
sage: m(s([2,1]))
2*m[1, 1, 1] + m[2, 1]
sage: f = s._to_base(Partition([2,1]))
sage: [f(p) for p in Partitions(3)]
[0, 1, 2]

Previous topic

Generic dual bases symmetric functions

Next topic

Kostka-Foulkes Polynomials

This Page