The investigator uses methods from commutative algebra, convexity, and analysis to design computer algorithms that allow the practical fast detection or counting of lattice points inside rational convex polytopes. The main idea is to represent the lattice points using rational functions. This can be done in at least three different complementary ways. He implements the methods in the computer software LattE. The investigator uses this software to help investigate theoretical questions in combinatorics (properties of Ehrhart functions), algebra (representation theory and partitions), and optimization (new integer programming algorithms). The investigator carries out geometric, analytic, and computational studies of problems in the convexity and combinatorics of polyhedra, including development of algorithms and software. Informally speaking, the project can be thought of as an attempt to understand how to count the possible non-negative integer solutions of a system of linear equations. With two unknowns, this amounts to counting the number of regularly distributed points -- lattice points -- in a polygon. With more unknowns, the solutions correspond geometrically to the higher-dimensional analogs to cubes and polygons. Examples of regularly distributed points are arrangements of atoms or crystals. Many of the theoretical questions under study are motivated by problems in data security and computation (in the context of RSA encryption, which is used in internet transactions), operations research (via certain techniques for solving integer programs when levels of uncertainty are expected), statistics (contingency tables, data analysis), and problems in abstract algebra (number theory, representation theory). The training of students is a very important component of the project.