Winfried Bruns, Bogdan Ichim, Tim Römer  and Christof Söger




The Normaliz project is supported by the DFG SPP 1489

"Experimentelle Methoden in Algebra, Geometrie und Zahlentheorie"




Normaliz is a tool for computations in affine monoids, vector configurations, lattice polytopes, and rational cones.


Its input data can be specified in terms of


  • a system of generators or vertices or
  • a system of linear homogeneous Diophantine equations, inequalities and congruences or
  • a binomial ideal.


Normaliz computes


  • the dual cone of a rational cone (in other words, given generators, Normaliz computes the defining hyperplanes, and vice versa)
  • a placing (or lexicographic) triangulation of a vector configuration (resulting in a triangulation of the cone generated by it)
  • the Hilbert basis of a rational cone
  • the lattice points of a rational polytope
  • NEW in 2.11: the lattice points of a rational (unbounded) polyhedron
  • the normalization of an affine monoid
  • the Hilbert  (or Ehrhart) series and the Hilbert (or Ehrhart) (quasi) polynomial under a Z-grading (for example, for rational polytopes)
  • NEW in 2.11: Ehrhart series for semiopen cones
  • generalized (or weighted) Ehrhart series and Lebesgue integrals of polynomials over rational polytopes via NmzIntegrate (also in the semiopen case)
  • a description of the cone and lattice under consideration by a system of inequalities, equations and congruences


Normaliz can be started from the command line or from the GUI interface jNormaliz (written by Vinicius Almendra and Bogdan Ichim). jNormaliz is included in the distribution. See the Normaliz documentation for details.


The user indicates the type of input data in the input file and controls the computation and the output via the GUI interface or command line options.


Normaliz is provided for 2 degrees of integer precision: 64 bits or infinite. For infinite precision it uses the GMP (Linux, Mac) and MPIR (Windows) libraries. The user can require arithmetic checks at critical steps of the algorithms.


NmzIntegrate is based on CoCoALib.


Normaliz comes with interfaces for Macaulay2 and Singular. The Macaulay2 interface (written by Gesa Kämpf) needs Macaulay2 1.1.99 or later. The Singular interface needs Singular 3-0-0 or later. Normaliz is accessible from polymake (thanks to an interface written by the polymake team) and is used by B. Burton's Regina.


Some interesting and challenging examples document the power of Normaliz.  Please send examples that you would like to add to the collection to one of the authors!


References to articles about Normaliz are included in the documentation and their pdf files can be found in the distribution.


Normaliz is distributed under GPL.


Current version: 2.11.2 (including NmzIntegrate 1.2) (uploaded August 1, 2014)     Previous versions:   2.10.1 2.8   2.7   2.5


Version 2.11.2 takes care of several shortcomings of 2.11.1 in computations with inhomogeneous input.


Download and installation



Normaliz history