  
  [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. Suppose 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. The 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
  
