Macaulay2 » Documentation
Packages » OldPolyhedra :: hilbertBasis
next | previous | forward | backward | up | index | toc

# hilbertBasis -- computes the Hilbert basis of a Cone

- Usage:
    `HB = hilbertBasis C`
- Inputs:
  - C, a convex rational cone
- Outputs:
  - L, a list, containing the elements of the Hilbert basis

## Description

The Hilbert basis of the cone C is computed by the Project-and-Lift-algorithm by Raymond Hemmecke (see below). It computes a Hilbert basis of the cone modulo the lineality space, so it returns the list of one column matrices that give the Hilbert basis of the Cone if one adds the basis of the lineality space and its negative. For the Project-and-Lift-algorithm see:

Raymond Hemmecke's On the computation of Hilbert bases of cones, in A. M. Cohen, X.-S. Gao, and N. Takayama, editors, Mathematical Software, ICMS 2002, pages 307317. World Scientific, 2002.

    i1 : C = posHull matrix {{1,2},{2,1}}

    o1 = {ambient dimension => 2           }
          dimension of lineality space => 0
          dimension of the cone => 2
          number of facets => 2
          number of rays => 2

    o1 : Cone

    i2 : hilbertBasis C

    o2 = {| 1 |, | 2 |, | 1 |}
          | 1 |  | 1 |  | 2 |

    o2 : List

## Ways to use hilbertBasis:

- `hilbertBasis(Cone)`

## For the programmer

The object hilbertBasis is a method function.

The source of this document is in /build/macaulay2-88fgJW/macaulay2-1.25.11+ds/M2/Macaulay2/packages/OldPolyhedra.m2:6154:0.