# Schur polynomial of partition (1,0)

Schur polynomials $$s_\lambda$$(or Schur functions) for a partition $$\lambda$$ is given by the bialternant formula of Jacobi, which is a ratio of two Vandermonde determinants: $$s_\lambda (x_1,x_2,\cdots,x_n)= \frac{a_{\lambda_1+n-1, \lambda_2+n-2, \cdots, \lambda_n +0)}(x_1,x_2,\cdots,x_n)}{a_{(n-1,n-2,\cdots,0)}(x_1,x_2,\cdots,x_n)}$$ where the Vandermonde determinant is given by $$a_{n-1,n-2,\cdots,0}(x_1,x_2,\cdots,x_n)=\prod_{1\leq j

This definition allows $$\lambda$$ to contain zeros. For exmaple, we have $$s_{(1,0)}=x_1+x_2.$$

This seems incompatible with the package SymmetricFunctions() in Sage. (https://doc.sagemath.org/html/en/reference/combinat/sage/combinat/sf/sfa.html) They seem to be unable to 'detect' zero. For example, $$s[{1}]=s[{1,0}]$$ in Sage, where $$s[\lambda]$$ is the Schur polynomial for partition $$\lambda$$.

I would like to use some commands in Sage, but I also need to work with partitions including zeros, like $$(2,1,0)$$. Is there a way to work this out in Sage, or is this the limitation coming from the difference of the definitions between, say, Wikipedia and Sage?

The implementation in Sage is for symmetric functions, rather than symmetric polynomials. A symmetric function is a formal power series in a countable number of variables.

Symmetric functions are indexed by partitions, but the length of these partitions is not bounded. Consequently, ending zeros are ignored. For instance, $$s_{(1,0,0,...)} = s_{(1)} = x_1 + x_2 + x_3 + \cdots.$$ In Sage, this is s.

If you want to work exclusively with polynomials in, say, $$n$$ variables, you could work with symmetric functions and ignore any $$s_\lambda$$ indexed by a partition of length greater or equal to $$n$$ (the length being the number of nonzero entries of the partition). Alternatively, one can see the explicit polynomial with the command f.expand(n). For example,

S = SymmetricFunctions(QQ)
s = S.s()
s.expand(2)


prints

x0+x1


You can get the Schur polynomials with the R package jack:

> library(jack)
> SchurPol(n = 3, lambda = c(1,0))
gmpoly object algebraically equal to
x^(0,0,1) + x^(0,1,0) + x^(1,0,0)


Update

Also with Julia: https://github.com/stla/JackPolynomials.jl