  
  [1X3 [33X[0;0YExamples[133X[101X
  
  
  [1X3.1 [33X[0;0YGenerators[133X[101X
  
  [4X[32X  Example  [32X[104X
    [4X[25Xgap>[125X [27XC := NmzCone(["integral_closure",[[2,1],[1,3]]]);[127X[104X
    [4X[28X<a Normaliz cone>[128X[104X
    [4X[25Xgap>[125X [27XNmzHasConeProperty(C,"HilbertBasis");[127X[104X
    [4X[28Xfalse[128X[104X
    [4X[25Xgap>[125X [27XNmzHasConeProperty(C,"SupportHyperplanes");[127X[104X
    [4X[28Xfalse[128X[104X
    [4X[25Xgap>[125X [27XNmzConeProperty(C,"HilbertBasis");[127X[104X
    [4X[28X[ [ 1, 1 ], [ 1, 2 ], [ 1, 3 ], [ 2, 1 ] ][128X[104X
    [4X[25Xgap>[125X [27XNmzHasConeProperty(C,"SupportHyperplanes");[127X[104X
    [4X[28Xtrue[128X[104X
    [4X[25Xgap>[125X [27XNmzConeProperty(C,"SupportHyperplanes");[127X[104X
    [4X[28X[ [ -1, 2 ], [ 3, -1 ] ][128X[104X
  [4X[32X[104X
  
  
  [1X3.2 [33X[0;0YSystem of equations[133X[101X
  
  [4X[32X  Example  [32X[104X
    [4X[25Xgap>[125X [27XD := NmzCone(["equations",[[1,2,-3]], "grading",[[0,-1,3]]]);[127X[104X
    [4X[28X<a Normaliz cone>[128X[104X
    [4X[25Xgap>[125X [27XNmzCompute(D,["DualMode","HilbertSeries"]);[127X[104X
    [4X[28Xtrue[128X[104X
    [4X[25Xgap>[125X [27XNmzHilbertBasis(D);[127X[104X
    [4X[28X[ [ 1, 1, 1 ], [ 0, 3, 2 ], [ 3, 0, 1 ] ][128X[104X
    [4X[25Xgap>[125X [27XNmzHilbertSeries(D);[127X[104X
    [4X[28X[ t^2-t+1, [ [ 1, 1 ], [ 3, 1 ] ] ][128X[104X
    [4X[25Xgap>[125X [27XNmzHasConeProperty(D,"SupportHyperplanes");[127X[104X
    [4X[28Xtrue[128X[104X
    [4X[25Xgap>[125X [27XNmzSupportHyperplanes(D);[127X[104X
    [4X[28X[ [ 1, 0, 0 ], [ 1, 3, -3 ] ][128X[104X
    [4X[25Xgap>[125X [27XNmzEquations(D);[127X[104X
    [4X[28X[ [ 1, 2, -3 ] ][128X[104X
  [4X[32X[104X
  
  
  [1X3.3 [33X[0;0YSystem of inhomogeneous equations[133X[101X
  
  [4X[32X  Example  [32X[104X
    [4X[25Xgap>[125X [27XP := NmzCone(["inhom_equations",[[1,2,-3,1]], "grading", [[1,1,1]]]);[127X[104X
    [4X[28X<a Normaliz cone>[128X[104X
    [4X[25Xgap>[125X [27XNmzIsInhomogeneous(C);[127X[104X
    [4X[28Xfalse[128X[104X
    [4X[25Xgap>[125X [27XNmzIsInhomogeneous(P);[127X[104X
    [4X[28Xtrue[128X[104X
    [4X[25Xgap>[125X [27XNmzHilbertBasis(P);[127X[104X
    [4X[28X[ [ 1, 1, 1, 0 ], [ 3, 0, 1, 0 ], [ 0, 3, 2, 0 ] ][128X[104X
    [4X[25Xgap>[125X [27XNmzModuleGenerators(P);[127X[104X
    [4X[28X[ [ 0, 1, 1, 1 ], [ 2, 0, 1, 1 ] ][128X[104X
  [4X[32X[104X
  
  
  [1X3.4 [33X[0;0YCombined input[133X[101X
  
  [33X[0;0YNormaliz  also  allows  the  combination  of  different kinds of input, e.g.
  multiple constraint types, or additional data like a grading.[133X
  
  [33X[0;0YSuppose  that you have a 3 by 3 [21Xsquare[121X of nonnegative integers such that the
  3  numbers  in  all  rows,  all  columns, and both diagonals sum to the same
  constant  [22XM[122X.  Sometimes  such  squares  are  called magic and [22XM[122X is the magic
  constant.  This leads to a linear system of equations. The magic constant is
  a natural choice for the grading. Additionally we force here the 4 corner to
  have even value by adding congruences.[133X
  
  [4X[32X  Example  [32X[104X
    [4X[25Xgap>[125X [27XMagic3x3even := NmzCone(["equations",[127X[104X
    [4X[25X>[125X [27X[ [1, 1, 1,  -1, -1, -1,   0,  0,  0],[127X[104X
    [4X[25X>[125X [27X  [1, 1, 1,   0,  0,  0,  -1, -1, -1],[127X[104X
    [4X[25X>[125X [27X  [0, 1, 1,  -1,  0,  0,  -1,  0,  0],[127X[104X
    [4X[25X>[125X [27X  [1, 0, 1,   0, -1,  0,   0, -1,  0],[127X[104X
    [4X[25X>[125X [27X  [1, 1, 0,   0,  0, -1,   0,  0, -1],[127X[104X
    [4X[25X>[125X [27X  [0, 1, 1,   0, -1,  0,   0,  0, -1],[127X[104X
    [4X[25X>[125X [27X  [1, 1, 0,   0, -1,  0,  -1,  0,  0] ],[127X[104X
    [4X[25X>[125X [27X"congruences",[127X[104X
    [4X[25X>[125X [27X[ [1, 0, 0,   0, 0, 0,   0, 0, 0,  2],[127X[104X
    [4X[25X>[125X [27X  [0, 0, 1,   0, 0, 0,   0, 0, 0,  2],[127X[104X
    [4X[25X>[125X [27X  [0, 0, 0,   0, 0, 0,   1, 0, 0,  2],[127X[104X
    [4X[25X>[125X [27X  [0, 0, 0,   0, 0, 0,   0, 0, 1,  2] ],[127X[104X
    [4X[25X>[125X [27X"grading",[127X[104X
    [4X[25X>[125X [27X[ [1, 1, 1,   0, 0, 0,   0, 0, 0] ] ] );[127X[104X
    [4X[28X<a Normaliz cone>[128X[104X
    [4X[25Xgap>[125X [27XNmzHilbertBasis(Magic3x3even);[127X[104X
    [4X[28X[ [ 0, 4, 2, 4, 2, 0, 2, 0, 4 ], [ 2, 0, 4, 4, 2, 0, 0, 4, 2 ],[128X[104X
    [4X[28X  [ 2, 2, 2, 2, 2, 2, 2, 2, 2 ], [ 2, 4, 0, 0, 2, 4, 4, 0, 2 ],[128X[104X
    [4X[28X  [ 4, 0, 2, 0, 2, 4, 2, 4, 0 ], [ 2, 3, 4, 5, 3, 1, 2, 3, 4 ],[128X[104X
    [4X[28X  [ 2, 5, 2, 3, 3, 3, 4, 1, 4 ], [ 4, 1, 4, 3, 3, 3, 2, 5, 2 ],[128X[104X
    [4X[28X  [ 4, 3, 2, 1, 3, 5, 4, 3, 2 ] ][128X[104X
    [4X[25Xgap>[125X [27XNmzHilbertSeries(Magic3x3even);[127X[104X
    [4X[28X[ t^3+3*t^2-t+1, [ [ 1, 1 ], [ 2, 2 ] ] ][128X[104X
    [4X[25Xgap>[125X [27XNmzHilbertQuasiPolynomial(Magic3x3even);[127X[104X
    [4X[28X[ 1/2*t^2+t+1, 1/2*t^2-1/2 ][128X[104X
  [4X[32X[104X
  
  
  [1X3.5 [33X[0;0YUsing the dual mode[133X[101X
  
  [33X[0;0YFor  solving systems of equations and inequalities it is often faster to use
  the  dual  Normaliz  algorithm.  We  demonstrate  how  to  use  it  with  an
  inhomogeneous system of equations and inequalities.[133X
  
  [33X[0;0YThe  input  consists  of  a  system of 8 inhomogeneous equations in R^3. The
  first  row  of  the  matrix  M  encodes the inequality [22X8x + 8y + 8z + 7 ≥ 0[122X.
  Additionally  we  say that [22Xx, y, z[122X should be non-negative by giving the sign
  vector and use the total degree.[133X
  
  [4X[32X  Example  [32X[104X
    [4X[25Xgap>[125X [27XM := [[127X[104X
    [4X[25X>[125X [27X [ 8,  8,  8,  7 ],[127X[104X
    [4X[25X>[125X [27X [ 0,  4,  0,  1 ],[127X[104X
    [4X[25X>[125X [27X [ 0,  1,  0,  7 ],[127X[104X
    [4X[25X>[125X [27X [ 0, -2,  0,  7 ],[127X[104X
    [4X[25X>[125X [27X [ 0, -2,  0,  1 ],[127X[104X
    [4X[25X>[125X [27X [ 8, 48,  8, 17 ],[127X[104X
    [4X[25X>[125X [27X [ 1,  6,  1, 34 ],[127X[104X
    [4X[25X>[125X [27X [ 2,-12, -2, 37 ],[127X[104X
    [4X[25X>[125X [27X [ 4,-24, -4, 14 ][127X[104X
    [4X[25X>[125X [27X];[127X[104X
    [4X[28X[ [ 8, 8, 8, 7 ], [ 0, 4, 0, 1 ], [ 0, 1, 0, 7 ], [ 0, -2, 0, 7 ],[128X[104X
    [4X[28X  [ 0, -2, 0, 1 ], [ 8, 48, 8, 17 ], [ 1, 6, 1, 34 ],[128X[104X
    [4X[28X  [ 2, -12, -2, 37 ], [ 4, -24, -4, 14 ] ][128X[104X
    [4X[25Xgap>[125X [27XD := NmzCone(["inhom_inequalities", M,[127X[104X
    [4X[25X>[125X [27X              "signs", [[1,1,1]],[127X[104X
    [4X[25X>[125X [27X              "grading", [[1,1,1]]]);[127X[104X
    [4X[28X<a Normaliz cone>[128X[104X
    [4X[25Xgap>[125X [27XNmzCompute(D,["DualMode","HilbertBasis","ModuleGenerators"]);[127X[104X
    [4X[28Xtrue[128X[104X
    [4X[25Xgap>[125X [27XNmzHilbertBasis(D);[127X[104X
    [4X[28X[ [ 1, 0, 0, 0 ], [ 1, 0, 1, 0 ] ][128X[104X
    [4X[25Xgap>[125X [27XNmzModuleGenerators(D);[127X[104X
    [4X[28X[ [ 0, 0, 0, 1 ], [ 0, 0, 1, 1 ], [ 0, 0, 2, 1 ], [ 0, 0, 3, 1 ] ][128X[104X
  [4X[32X[104X
  
  [33X[0;0YAs  result  we  get  the  Hilbert  basis of the cone of the solutions to the
  homogeneous system and the module generators which are the base solutions to
  the inhomogeneous system.[133X
  
