Description
The package
Normaliz provides an interface for the use of
Normaliz 2.8 within Macaulay 2.
The program
Normaliz 2.8 (referred to as
Normaliz in the following) is mainly a tool for computing the Hilbert bases and enumerative invariants of rational cones. Several additional data can be computed. It is included in the Macaulay 2 distribution. For more details on the program, see
http://www.math.uos.de/normaliz/. For the theory of affine semigroups and the notions of commutative algebra we refer to W. Bruns and J. Gubeladze,
Polytopes, rings and Ktheory. Springer 2009.
For algorithms see:

W. Bruns and R. Koch, Computing the integral closure of an affine semigroup. Univ. Iagiell. Acta Math. 39, (2001), 5970

W. Bruns and B. Ichim Normaliz: Algorithms for affine monoids and rational cones, J. Algebra (2010), available at http://dx.doi.org/10.1016/j.jalgebra.2010.01.031

W. Bruns, B. Ichim and C.Soeger The power of pyramid decomposition in Normaliz, arXiv:1206.1916v1, available at http://arxiv.org/abs/1206.1916v1
Using
Normaliz one may for example compute the following:
If the associated semigroup or corresponding semigroup algebra is graded, then one may also compute the Hilbert series and Hilbert (quasi)polynomial of the semigroup.
The package gives direct access to
Normaliz. The exchange of data between
Normaliz and Macaulay 2 is via files. These files are automatically created and erased behind the scenes. As long as one wants to use only the ringtheoretic functions there is no need for file management. The key function for the direct use of
Normaliz is
normaliz, which calls the program
Normaliz. To handle the in and output one can use the functions
writeNmzData and
readNmzData, to set the options for the program
setNmzOption. The output files are explained in
output files written by Normaliz.
If you want to keep the results of the computations by
Normaliz (i.e. the files written by the program), the package offers several methods for this purpose, see
Keeping results of the computation by Normaliz for an example how to do this.
The package introduces two new classes
MonomialSubalgebra and
RationalCone.
The package provides four top level functions that aim directly at algebraic objects:
The package offers the following additional functions: