This method computes the internal (Kronecker) product of two homogeneous symmetric functions of the same degree. If we think of these functions as being virtual characters of some symmetric group, then their internal product is just the character of the tensor product of the corresponding virtual representations. We use the binary operator ** as a shorthand for internalProduct.

The complete symmetric function of degree `n` corresponds to the trivial `S_n`-representation and is therefore the unit of the representation ring of `S_n`:

i1 : R = symmetricRing(QQ,5); |

i2 : S = schurRing(QQ,s,3); |

i3 : internalProduct(h_3,s_{2,1}) o3 = s 2,1 o3 : S |

i4 : toE(h_3 ** e_3) o4 = e 3 o4 : QQ[e ..e , p ..p , h ..h ] 1 3 1 3 1 3 |

The square of the sign representation is the trivial representation:

i5 : R = symmetricRing(QQ,5); |

i6 : toH internalProduct(e_3,e_3) o6 = h 3 o6 : R |

- scalarProduct -- Standard pairing on symmetric functions/class functions

- internalProduct(ClassFunction,ClassFunction) -- Tensor product of virtual representations
- internalProduct(RingElement,RingElement) -- Kronecker product of symmetric functions

The object internalProduct is a method function.