Regina Calculation Engine
|
Implements a modified dual algorithm for enumerating Hilbert bases. More...
#include <enumerate/hilbertdual.h>
Static Public Member Functions | |
template<class RayClass , class OutputIterator > | |
static void | enumerateHilbertBasis (OutputIterator results, const MatrixInt &subspace, const EnumConstraints *constraints, ProgressTracker *tracker=0, unsigned initialRows=0) |
Determines the Hilbert basis that generates all integer points in the intersection of the n-dimensional non-negative orthant with the given linear subspace. More... | |
Implements a modified dual algorithm for enumerating Hilbert bases.
This is based on the dual algorithm as described in "Normaliz: Algorithms for affine monoids and rational cones", Winfried Bruns and Bogdan Ichim, J. Algebra 324 (2010), 1098-1113, and has been modified to allow for additional constraints (such as the quadrilateral constraints from normal surface theory).
All routines of interest within this class are static; no object of this class should ever be created.