arXiv2014
For a given sequence $\mathbfα = [α_1,α_2,\dots,α_{N+1}]$ of $N+1$ positive integers, we consider the combinatorial function $E(\mathbfα)(t)$ that counts the nonnegative integer solutions of the equation $α_1x_1+α_2 x_2+\cdots+α_{N} x_{N}+α_{N+1}x_{N+1}=t$, where the right-hand side $t$ is a varying nonnegative integer. It is well-known that $E(\mathbfα)(t)$ is a quasi-polynomial function in the variable $t$ of degree $N$. In combinatorial number theory this function is known as Sylvester's denumerant. Our main result is a new algorithm that, for every fixed number $k$, computes in polynomial time the highest $k+1$ coefficients of the quasi-polynomial $E(\mathbfα)(t)$ as step polynomials of $t$ (a simpler and more explicit representation). Our algorithm is a consequence of a nice poset structure on the poles of the associated rational generating function for $E(\mathbfα)(t)$ and the geometric reinterpretation of some rational generating functions in terms of lattice points in polyhedral cones. Our algorithm also uses Barvinok's fundamental fast decomposition of a polyhedral cone into unimodular cones. This paper also presents a simple algorithm to predict the first non-constant coefficient and concludes with a report of several computational experiments using an implementation of our algorithm in LattE integrale. We compare it with various Maple programs for partial or full computation of the denumerant.