Normaliz History


  • The first version of Normaliz was a C program developed by Winfried Bruns and Robert Koch in 1997/98. In 2002 Bruns added a Singular library. Witold Jarnicki improved the h-vector computation in 2003 and augmented the output options.
  • Version 2.0 (of 2008) was completely rewritten in C++ by Bogdan Ichim. The algorithms and their implementations were significantly improved by the authors. Moreover, additional input modes and user-controlled arithmetic checks were added.
  • From version 2.5 (2010) on Winfried Bruns and Christof Söger (until 2016) have developed Normaliz. In the versions 2.5 – 2.12 many new features were added, in particular inhomogeneous input. In version 2.7 the pyramid decomposition was introduced and in 2.8 it was efficiently parallelized.
  • NmzIntegrate (2013) added weighted Ehrhart series and Lebesgue integrals of polynomials over rational polytopes. (Now included in Normaliz itself.)
  • Version 3.0 (2015) introduced a new user interface (with backward compatibility), the automatic choice of integer arithmetic and several other improvements. Later on nonpointed cones and polyhedra without vertices were added.
  • In 2016 – 2018 several new algorithms and computation goals were introduced. Matthias Köppe contributed autotools scripts, and Sebastian Gutsche wrote PyNormaliz. Together they allow the use of Normaliz from SageMath.
  • Version 3.7.0 (2019) added algebraic polyhedra, i.e., polyhedra defined over real algebraic extensions of the rational numbers.
  • For further details see the file CHANGELOG in the Normaliz distribution. The Normaliz manual lists the changes in the most recent versions.