previous  next
HilbertBasis
Syntax
HilbertBasis(M:MAT): LIST

where M is a matrix over Z.
Summary
Hilbert basis for a monoid
Description
This function returns a list whose components are lists (of
non-negative integers) representing the Hilbert basis for the monoid
of elements with non-negative coordinates in the kernel of M.

Example

M := Mat([[1,-2,3,4], [1, 0, 0, -1]]);
HilbertBasis(M);
[[0, 3, 2, 0], [1, 4, 1, 1], [2, 5, 0, 2]]
-------------------------------
M * Transposed(Mat(It));
Mat([
  [0, 0, 0],
  [0, 0, 0]
])
-------------------------------