  We examine two different ways of encoding a counting function, as a rational
generating function and explicitly as a function (defined piecewise using the
greatest integer function). We prove that, if the degree and number of input
variables of the (quasi-polynomial) function are fixed, there is a polynomial
time algorithm which converts between the two representations. Examples of such
counting functions include Ehrhart quasi-polynomials, vector partition
functions, integer points in parametric polytopes, and projections of the
integer points in parametric polytopes. For this last example, this algorithm
provides the first known way to compute the explicit function in polynomial
time. We rely heavily on results of Barvinok, and also of Verdoolaege, Seghir,
Beyls, et al.
