Regina Calculation Engine
|
Implements a modified Contejean-Devie algorithm for enumerating Hilbert bases. More...
#include <enumerate/hilbertcd.h>
Static Public Member Functions | |
template<class RayClass , class OutputIterator > | |
static void | enumerateHilbertBasis (OutputIterator results, const MatrixInt &subspace, const EnumConstraints *constraints) |
Determines the Hilbert basis that generates all integer points in the intersection of the n-dimensional non-negative orthant with some linear subspace. More... | |
Implements a modified Contejean-Devie algorithm for enumerating Hilbert bases.
This is based on the stack-based algorithm described in "An efficient incremental algorithm for solving systems of linear Diophantine equations", Inform. and Comput. 113 (1994), 143-172, 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.