Normaliz History

Current Version 3.2.0:

The major changes relative to version 3.1.1 are

  • installation via autotools (written by Matthias Köppe) and improvement of the cmake scripts
  • automatic choice of algorithmic variants (can be switched off)
  • sparse format for vectors and matrices and constraints in symbolic form
  • Hilbert series with denominator corresponding to a homogeneous system of generators
  • choice of an output directory
  • improvements of libnormaliz
  • a better implementation of Approximate and its use in the inhomogeneous case
  • option Symmetrize that produces symmetrized input for nmzIntegrate and runs nmzIntegrate on this input
  • QNormaliz, a version of Normaliz using coordinates in an extension of Q (restricted to convex hull computations and triangulation)
  • Python interface (written by Sebastian Gutsche)

Old versions:

  • Version 3.1.1: Formatted input matrices, Input of transposed matrices. new type “constraints”
  • Version 3.1.0: computation of nonpointed cones and polyhedra without vertices, rational and integral solutions of inhomogeneous systems can be separated, integer hull computation, faster Normality test, disjoint decomposition of the cone
  • Version 3.0.0: new input syntax, additional input types and free combination of generators and constraints, automatic choice of integer type, reduction of the arithmetical complexity by using SCIP and approximation
  • Version 2.12.2: bug fix in volume computation with -v and change max_rank_submatrix back to pre2.12 version which avoids some overflows.
  • Version 2.12.1: bug fix in dual algorithm and workaround for compiler bug in intel windows compiler for -v.
  • Version 2.12: overhaul of dual algorithm, internal parallelization of large simplicial cones, faster linear algebra.
  • Version 2.11.2: bug fix and improvement of intermediate reduction.
  • Version 2.11.1: bug fix.
  • Version 2.11: new input types for semiopen cones, inhomogeneous systems and polyhedra. Various improvements in the implementation of the algorithms, especially in the treatment of simplicial cones with large determinants
  • Version 2.10.1: bug fix.
  • Version 2.10: improvement of NmzIntegrate and corrections in the exchange of data between Normaliz and NmzIntegrate.
  • Version 2.9 includes NmzIntegrate 1.0.
  • Version 2.8 adds arbitrary Z-gradings and improves the performance considerably.
  • Version 2.7 unites the former norm64 and normbig in a single executable normaliz. The h-vector computation was considerably improved.
  • Version 2.5 adds congruences, allowing the combination with equations and inequalities, and binomial ideals as further input types. Algorithms for large examples give access to hitherto unreachable cones. Various aspects, in particular the computation of shellings, have been improved considerably, and Normaliz can now exploits parallelization on shared memory systems via OpenMP. The main output file is re-organized.
  • In version 2.2 the user interface was improved by Christof Söger. Another addition was the Macaulay2 interface, implemented by Gesa Kämpf.
  • Version 2.1 was augmented in regard to the user interface. Moreover, Pottier’s algorithm was added for solving systems of inequalities and equations.
  • 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.
  • 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.