Normaliz

Normaliz is a free computer algebra system developed by Winfried Bruns, Robert Koch (1998–2002), Bogdam Ichim (2007/08) and Christof Soeger (2009–2016). It is published under the GNU General Public License version 2.

Normaliz computes lattice points in rational polyhedra, or, in other terms, solves linear diophantine systems of equations, inequalities, and congruences. Special tasks are the computation of lattice points in bounded rational polytopes and Hilbert bases of rational cones. Normaliz also computes enumerative data, such as multiplicities (volumes) and Hilbert series. The kernel of Normaliz is a templated C++ class library. For multivariate polynomial arithmetic it uses CoCoALib.

Normaliz has interfaces to several general computer algebra systems: CoCoA, GAP, Macaulay2 and Singular. It can be used interactively via its Python interface PyNormaliz. Its use in SageMath is in preparation.

Jesús A. De_Loera cites Normaliz among his favorite programs for computing Hilbert basis.