Macaulay2 » Documentation
Packages » Normaliz :: normaliz
next | previous | forward | backward | up | index | toc

normaliz -- calls Normaliz

Description

This function applies Normaliz to the input data, which can be a matrix specifying a cone and an integer indicating the type for Normaliz or a list consisting of pairs of such a matrix and an integer. The function returns an object of type RationalCone. The type determines how the rows of the matrix are interpreted, see also writeNmzData:

It is possible to combine certain input types, see normaliz(List). If you want to input only one matrix you can also use normaliz(Matrix,String).

By default, the cone returned contains only the content of the output file .gen, under the key "gen", i.e. the generators that have been computed, line by line, and the content of the output file .inv, under the key "inv".
i1 : setNmzOption("allf",true);
i2 : eq=matrix {{1, 1, 1, -1, -1, -1,  0,  0,  0}, {1, 1, 1,  0,  0,  0, -1, -1, -1}, {0, 1, 1, -1,  0,  0, -1,  0,  0}, {1, 0, 1,  0, -1,  0,  0, -1,  0}, {1, 1, 0,  0,  0, -1,  0,  0, -1}, {0, 1, 1,  0, -1,  0,  0,  0, -1}, {1, 1, 0,  0, -1,  0, -1,  0,  0}};

              7       9
o2 : Matrix ZZ  <-- ZZ
i3 : rc=normaliz(eq,"equations")

o3 = RationalCone{"gen" => | 0 2 1 2 1 0 1 0 2 |                              }
                           | 1 0 2 2 1 0 0 2 1 |
                           | 1 1 1 1 1 1 1 1 1 |
                           | 1 2 0 0 1 2 2 0 1 |
                           | 2 0 1 0 1 2 1 2 0 |
                  "inv" => HashTable{"" => (1, 1, 1)                         }
                                     "class group" => (1, 2, 2)
                                     "degree 1 elements" => 5
                                     "dim max subspace" => 0
                                     "embedding dim" => 9
                                     "external index" => 1
                                     "graded" => true
                                     "grading denom" => 1
                                     "grading" => (0, 0, 0, 0, 1, 0, 0, 0, 0)
                                     "hilbert basis elements" => 5
                                     "hilbert quasipolynomial denom" => 1
                                     "hilbert series denom" => (1, 1, 1)
                                     "hilbert series num" => (1, 2, 1)
                                     "inhomogeneous" => false
                                     "multiplicity denom" => 1
                                     "multiplicity" => 4
                                     "number extreme rays" => 4
                                     "number support hyperplanes" => 4
                                     "rank" => 3
                                     "size triangulation" => 2
                                     "sum dets" => 4

o3 : RationalCone

To obtain all the information written by Normaliz set the option allComputations to true (to decide which information shall be written by Normaliz use the options for Normaliz, see setNmzOption). Then the method returns an object of type RationalCone whose keys are the suffixes of all the output files written, with value the content of the corresponding output file, which is an matrix whose rows contain the data computed, except for the suffix inv, for which the type is a HashTable (see also getNumInvs).
i4 : arc=normaliz(allComputations=>true,eq,"equations");
i5 : arc#"gen"

o5 = | 0 2 1 2 1 0 1 0 2 |
     | 1 0 2 2 1 0 0 2 1 |
     | 1 1 1 1 1 1 1 1 1 |
     | 1 2 0 0 1 2 2 0 1 |
     | 2 0 1 0 1 2 1 2 0 |

              5       9
o5 : Matrix ZZ  <-- ZZ
i6 : arc#"ext"

o6 = | 0 2 1 2 1 0 1 0 2 |
     | 1 0 2 2 1 0 0 2 1 |
     | 1 2 0 0 1 2 2 0 1 |
     | 2 0 1 0 1 2 1 2 0 |

              4       9
o6 : Matrix ZZ  <-- ZZ
i7 : arc#"inv"

o7 = HashTable{"" => (1, 1, 1)                         }
               "class group" => (1, 2, 2)
               "degree 1 elements" => 5
               "dim max subspace" => 0
               "embedding dim" => 9
               "external index" => 1
               "graded" => true
               "grading denom" => 1
               "grading" => (0, 0, 0, 0, 1, 0, 0, 0, 0)
               "hilbert basis elements" => 5
               "hilbert quasipolynomial denom" => 1
               "hilbert series denom" => (1, 1, 1)
               "hilbert series num" => (1, 2, 1)
               "inhomogeneous" => false
               "multiplicity denom" => 1
               "multiplicity" => 4
               "number extreme rays" => 4
               "number support hyperplanes" => 4
               "rank" => 3
               "size triangulation" => 2
               "sum dets" => 4

o7 : HashTable

See also

Ways to use normaliz :

For the programmer

The object normaliz is a method function with options.