Zeta functions of varieties over finite fields are generating functions that capture the number of vanishing points of a finite set of polynomial equations. They can be calculated by exhaustively checking for zeros in each finite field; however, this quickly becomes impractical. Using the cohomology theory of Dwork, which was developed further by Adolphson and Sperber, Sperber and Voight present a deterministic algorithm to compute the zeta function of a nondegenerate hypersurfaces over finite fields. They do so by relating the zeta function to the L-function of an exponential sum, and then investigate the action of a Frobenius map on a certain p -adic Banach space. From this, they are able to recover both the zeta function and the L-function from the characteristic polynomial. This paper presents an implementation of this algorithm that is a working function in the SAGE programming language taking as input a nondegenerate polynomial f and computes as output the zeta function defined by f. |