|
Macaulay2 Engine
|
Engine-boundary C API for rational polyhedral cone operations. More...
#include "engine-includes.hpp"Go to the source code of this file.
Functions | |
| const Matrix * | rawFourierMotzkin (const Matrix *C) |
| const Matrix * | rawHilbertBasis (const Matrix *C) |
Engine-boundary C API for rational polyhedral cone operations.
Declares the two extern "C" entry points the M2 interpreter uses for cone work, both routed through libnormaliz (the in-file section comment confirms "Cone routines (via Normaliz)"). rawFourierMotzkin(C) dualises a cone between facet-inequality and ray-generator representations — the function name reflects the algorithmic task, but the implementation hands off to Normaliz's Cone<Integer> with Type::inequalities (note the sign-convention adapter in-source: libnormaliz uses A*x >= 0, Macaulay2 uses A*x <= 0). rawHilbertBasis(C) returns the minimal generators of the semigroup of lattice points in the cone, via Normaliz's Type::cone mode. Cones are passed in and out as Matrix* whose columns are the relevant rays or facets, so only Matrix needs to be forward-declared at the C boundary.
When Normaliz is unavailable on the build machine the functions return null and the M2 layer surfaces a "feature not available" error.
Definition in file cone.h.