Multivariate polynomialsMixed examplesCombinatoricsSymmetric polynomials

Symmetric polynomials

Let us consider first a program that evaluates the product of two objects of type SCHUR by which we mean a linear combination of Schur polynomials (note that the coefficients of the Schur polynomials are objects, too, and so they can be integers, polynomials and many other things as well). The result is again expressed as an object of this type. A particular case is what you know as Schur polynomial {a}, where a is a partition (but the summands of an object of type SCHUR need not correspond to partitions of the same degree), and so this program is able to give you the product {a}{b}, where a is a partition of m, say, and b a partition of n. As you know, this product is a linear combination of Schur polynomials {g}, where g is a partition of m+n, and the coefficient of {g} in {a}{b} is the corresponding coefficient that is explicitly described in the famous Littlewood-Richardson Rule.)
Example: The product of two Schur polynomials (see the file ex10.c):
...
scan(SCHUR,a);println(a);
scan(SCHUR,b);println(b);
mult(a,b,c);println(c);
...
Here the situation is a bit more complicated as far as the input is concerned. The reason is, that there are many ways to input an object of type SCHUR. Therefore you will be asked in which form you want to give the two objects the product of which you would like to see. Let us consider the simplest case, where the two objects are Schur polynomials.

After typing the command make and having received the prompt, you give the order a.out, you will see on your screen the following three lines of text:

Input of a partition type monom

input of partition as increasing vector

length of vector

Note first that you have to start by answering the last question, which means that you have to give first of all the number of parts of your first partition, so you give the answer
2
first. Secondly you have to note that the present program system prefers the French notation, and so you answer the next question for an integerobject by 2, and the next question for another integerobject you answer by 3, say. The next question asks you for the coefficient of this polynomial in the object of type SCHUR which you chose as first factor. The question will be put in form of a table the left hand part of which looks as follows:
integer[1]vector[2]partition[3]...
skewpart[7]tableaux[8]polynom[9]...
schubert[14]kostka[16]symchar[18]...
longint[22]cyclcotomic[124]radical[125]...
It shows that you can choose as coefficient an integer, a vector, a partition, a fraction (''bruch`` in German) and so on, some of these choices of course make no sense for the example in question. You will be asked what kind? and then you have to indicate your choice by one of the numbers given in square brackets. If you choose the coefficient to be an integer, you have to input 1, and if you want to choose this integer as 1 you have to input another 1. The next question reads as follows:
one more monom y/n
If you want to input exactly this summand corresponding to the partition (2,3), then you reply n, which finishes the input of the first factor, and it means that your first factor of type SCHUR is in fact the Schur polynomial {2,3}, corresponding to the two-rowed partition (2,3) of 5, in French notation, and that its integer coefficient is 1.

Then you will be asked in the same way for the second factor. If you want to input as second factor the Schur polynomial corresponding to the partition (14) (in which case the French and the English notation coincide), you first answer integerobject by 4, and then the four next questions have to be answered by 1. Having entered this, you have to provide the coefficient, if it is an integer, then you answer the corresponding question by entering 1. If you want this coefficient to be 1, you correspondingly answer this question by putting in a 1. After having answered the question for further summands in your second factor by n, the program then gives you the desired answer in the following form: After having entered the dates for the first factor, it will print

1 23
in order to show you that it understood that properly. Correspondingly, after having entered the dates for the second factor, it will print
1 1111

1 111123 1 11124 1 11133 1 1134

This answer repeats in the first row the second factor you putted in, showing you that there was no misunderstanding, while the second row gives you the desired decomposition
{2,3}{14}={14,2,3}+{13,2,4}+{13,32}+{12,3,4}.
There is also a routine that expands a Schur polynomial into a sum of monomials over a given alphabet of indeterminates:
compute_schur_with_alphabet,
see schur.doc for details. Corresponding routines are available for monomial symmetric polynomials as well as for complete symmetric polynomials.
harald.fripertinger@kfunigraz.ac.at,
last changed: November 19, 2001

Multivariate polynomialsMixed examplesCombinatoricsSymmetric polynomials