OFFSET
1,89
COMMENTS
To each partition lambda is associated a Schur polynomial s_lambda through Jacobi's bialternant formula. To get the symmetric function corresponding to a product s_mu * s_nu, one must consider both polynomials in |mu|+|nu| variables, as obtained by Jacobi's formula when mu and nu are padded with parts 0 to length |mu|+|nu|. Here |mu| is the sum of parts of mu.
The rows of this table list the Littlewood-Richardson coefficients, structure constants in the ring of symmetric functions w.r.t. the basis of Schur functions, which give a product s_mu * s_nu as linear combination of the s_lambda with the lambda listed in row |mu|+|nu| of A036036.
If mu(n) denotes the n-th partition listed in A036036, the rows of this table correspond s_{mu(i)}*s_{mu(j)} with (i,j) = (1,1), (2,1), (2,2), (3,1), (3,2), (3,3), etc. The sequential number of the row (i,j) is i(i-1)/2 + j, cf. comment from Nov 19 2009 in A000027.
The length of row n = i(i-1)/2 + j equals A000041(|mu(i)| + |mu(j)|), the number of partitions of |mu(i)| + |mu(j)|.
The graded colexicographic order is also known as "Abramovitz-Stegun" or better Hindenburg order, cf. Luschny link. (This is also the lexicographic order of the partitions with parts in increasing order and padded with 0's to length |lambda|, see column "Ref Colex" on the OEIS Wiki page.)
LINKS
P. Luschny, Counting with partitions.
OEIS Wiki, Orderings of partitions (a comparison).
Wikipedia, Littlewood-Richardson rule, as of Dec 18 2018.
Wikipedia, Schur polynomial, as of Jan 13 2020.
FORMULA
EXAMPLE
The table starts: (first column = row number, last column = sequence data.)
n | (i,j) | mu | nu ||mu|+|nu|| coefficients of s_mu*s_nu
---+-------+-------+-------+---------+--------------------------
1 | (1,1) | (1) | (1) | 2 | (1, 1)
2 | (2,1) | (2) | (1) | 3 | (1, 1, 0)
3 | (2,2) | (2) | (2) | 4 | (1, 1, 1, 0, 0)
4 | (3,1) | (1,1) | (1) | 3 | (0, 1, 1)
5 | (3,2) | (1,1) | (2) | 4 | (0, 1, 0, 1, 0)
6 | (3,3) | (1,1) | (1,1) | 4 | (0, 0, 1, 1, 1)
7 | (4,1) | (3) | (1) | 4 | (1, 1, 0, 0, 0)
8 | (4,2) | (3) | (2) | 5 | (1, 1, 1, 0, 0, 0, 0)
9 | (4,3) | (3) | (1,1) | 5 | (0, 1, 0, 1, 0, 0, 0)
10 | (4,4) | (3) | (3) | 6 | (1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0)
11 | (5,1) | (1,2) | (1) | 4 | (0, 1, 1, 1, 0)
12 | (5,2) | (1,2) | (2) | 5 | (0, 1, 1, 1, 1, 0, 0)
13 | (5,3) | (1,2) | (1,1) | 5 | (0, 0, 1, 1, 1, 1, 0)
14 | (5,4) | (1,2) | (3) | 6 | (0, 1, 1, 0, 1, 1, 0, 0, 0, 0, 0)
15 | (5,5) | (1,2) | (1,2) | 6 | (0, 0, 1, 1, 1, 2, 1, 1, 1, 0, 0)
Row 1 is (1, 1) since s[1,0] = x1 + x2 squared is 1*s[2,0] + 1*s[1,1], where s[2,0] = x1^2 + x1*x2 + x2^2 and s[1,1] = x1*x2 are the two Schur polynomials associated to the two partitions of 2.
Row 2 is (1, 1, 0) since the product of s[1,0,0] = x1 + x2 + x3 and s[2,0,0]= x1^2 + x2^2 + x3^3 + x1*x2 + x1*x3 + x2*x3 is 1*s[3,0,0] + 1*s[2,1,0] + 0*s[1,1,1], where s[3,0,0] = x1^3 + x1^2*(x2 + x3) + cyclic + x1*x2*x3, s[2,1,0] = x1^2*(x2 + x3) + cyclic + 2*x1*x2*x3 and s[1,1,1] = x1*x2*x3 are the Schur polynomials associated to the three partitions of 3.
PROG
(PARI)
s(p, x=eval([Str("'x"i)|i<-[1..#p]]))={my(J(p)=matdet(matrix(#p, #p, i, j, x[i]^p[j]))); J(Vec(p)+[0..#p-1])/J([0..#p-1])} \\ Schur polynomial corresponding to partition p with p(1) <= ... <= p(n) (otherwise the result differs!).
lead(P, m=1)={while(poldegree(P), m*=variable(P)^poldegree(P); P=pollead(P)); m} \\ leading monomial of the polynomial P
lcoef(P)={while(poldegree(P), P=pollead(P)); P} \\ coeff. of leading monomial
Schur_index(n, B=Map())={forpart(p=n, mapput(B, lead(s(p)), p)); B} \\ Compute the index {leading monomial => partition}
Schur_coeff(S, n=#variables(S), B=Schur_index(n))={ my(C=Map(), c, p); while(S, mapput(C, p=mapget(B, lead(S)), c=lcoef(S)); S-=c*s(Vec(p, -n)); if(default(debug), printf("%+d s%d ", c, Vec(p)))); [iferr(mapget(C, p), E, 0) | p<-partitions(n)]} \\ Compute coords of S in Schur basis. If debug>0 (\g1), prints the s_lambda when found in s_p^2.
{LR_coeff(mu, nu, n=vecsum(Vec(mu))+vecsum(Vec(nu)))= Schur_coeff(s(vecsort(Vec(mu, -n)))*s(vecsort(Vec(nu, -n))), n)}
P=concat(vector(3, n, partitions(n)))/*first few rows of A036036*/
A=concat(vector(5, i, vector(i, j, LR_coeff(P[i], P[j]))))
CROSSREFS
KEYWORD
nonn,tabf
AUTHOR
M. F. Hasler, Jan 23 2020
STATUS
approved