1 | initial version |
Here are some immanants:
n = 3
G = SymmetricGroup(n)
R = PolynomialRing(ZZ, n, n, var_array=('x',))
x = {(i, j) : R.gen(n*i + j) for i in range(n) for j in range(n)}
for lamb in SymmetricGroupRepresentations(n):
chi = lamb.to_character()
imm = sum(chi(sigma)*prod(x[i,sigma(i+1)-1] for i in range(n)) for sigma in G)
print(imm)
Output:
x02*x11*x20 + x01*x12*x20 + x02*x10*x21 + x00*x12*x21 + x01*x10*x22 + x00*x11*x22
-x01*x12*x20 - x02*x10*x21 + 2*x00*x11*x22
-x02*x11*x20 + x01*x12*x20 + x02*x10*x21 - x00*x12*x21 - x01*x10*x22 + x00*x11*x22
2 | No.2 Revision |
Here are some immanants:
n = 3
G = SymmetricGroup(n)
R = PolynomialRing(ZZ, n, n, var_array=('x',))
x = {(i, j) : R.gen(n*i + j) for i in range(n) for j in range(n)}
for lamb in SymmetricGroupRepresentations(n):
chi = lamb.to_character()
imm = sum(chi(sigma)*prod(x[i,sigma(i+1)-1] for i in range(n)) for sigma in G)
print(imm)
Output:
x02*x11*x20 + x01*x12*x20 + x02*x10*x21 + x00*x12*x21 + x01*x10*x22 + x00*x11*x22
-x01*x12*x20 - x02*x10*x21 + 2*x00*x11*x22
-x02*x11*x20 + x01*x12*x20 + x02*x10*x21 - x00*x12*x21 - x01*x10*x22 + x00*x11*x22
To do it for a single partition, use e.g. SymmetricGroupRepresentation([3,2])
to create the representation; see SymmetricGroupRepresentation.