Macaulay2 Engine
Loading...
Searching...
No Matches
monomial-ideal.h File Reference

Engine-boundary C API for constructing and operating on MonomialIdeals. More...

Go to the source code of this file.

Functions

const MonomialIdealIM2_MonomialIdeal_make (const Matrix *m, int n)
const MatrixIM2_MonomialIdeal_to_matrix (const MonomialIdeal *I)
M2_string IM2_MonomialIdeal_to_string (const MonomialIdeal *I)
unsigned int rawMonomialIdealHash (const MonomialIdeal *I)
int IM2_MonomialIdeal_is_equal (const MonomialIdeal *I1, const MonomialIdeal *I2)
int IM2_MonomialIdeal_n_gens (const MonomialIdeal *I)
const MonomialIdealrawRadicalMonomialIdeal (const MonomialIdeal *I)
const MonomialIdealIM2_MonomialIdeal_intersect (const MonomialIdeal *I, const MonomialIdeal *J)
const MonomialIdealrawColonMonomialIdeal1 (const MonomialIdeal *I, const EngineMonomial *a)
const MonomialIdealrawColonMonomialIdeal2 (const MonomialIdeal *I, const MonomialIdeal *J)
const MonomialIdealrawSaturateMonomialIdeal1 (const MonomialIdeal *I, const EngineMonomial *a)
const MonomialIdealrawSaturateMonomialIdeal2 (const MonomialIdeal *I, const MonomialIdeal *J)
const MonomialIdealIM2_MonomialIdeal_borel (const MonomialIdeal *I)
M2_bool IM2_MonomialIdeal_is_borel (const MonomialIdeal *I)
int IM2_MonomialIdeal_codim (const MonomialIdeal *I)
const MonomialIdealrawMonomialMinimalPrimes (const MonomialIdeal *I, int codim_limit, int count)
const MonomialIdealrawMaximalIndependentSets (const MonomialIdeal *I, int count)
const RingElementIM2_MonomialIdeal_Hilbert (const MonomialIdeal *I)
M2_arrayint rawMonomialIdealLCM (const MonomialIdeal *I)
const MonomialIdealrawAlexanderDual (const MonomialIdeal *I, const M2_arrayint top, int strategy)

Detailed Description

Engine-boundary C API for constructing and operating on MonomialIdeals.

Note
AI-generated documentation. Verify against the source before relying on it.

Declares the extern "C" entry points the M2 interpreter routes to the engine's combinatorial MonomialIdeal machinery. IM2_MonomialIdeal_make(M, n) builds an ideal from the lead monomials of the matrix columns whose lead term lands in row n, and IM2_MonomialIdeal_to_matrix walks back. The algebraic surface covers intersection (IM2_MonomialIdeal_intersect, bound as rawIntersect), colon and saturation (rawColonMonomialIdeal1 / _2, rawSaturateMonomialIdeal1 / _2 — the _1 variants take a single EngineMonomial, the _2 variants take a second MonomialIdeal), rawRadicalMonomialIdeal, the strongly-stable closure / test pair IM2_MonomialIdeal_borel / _is_borel (bound as rawStronglyStableClosure / rawIsStronglyStable — in-source comments flag that the C names "should really be named: ..._strongly_stable"), rawAlexanderDual, and the decomposition queries IM2_MonomialIdeal_codim (rawCodimension), rawMonomialMinimalPrimes (carrying a RENAME THIS ROUTINE source comment), and rawMaximalIndependentSets. IM2_MonomialIdeal_Hilbert computes the Hilbert-series numerator of coker I directly from the monomial generators (bound as rawHilbert), and rawMonomialIdealLCM returns the LCM as a degree vector.

MonomialIdeal is always stored as a set of minimal generators; the in-source comment for rawMonomialIdealHash notes that the structure is mutable (hashes are sequentially assigned rather than content-derived). The dedicated C surface lets the interpreter manipulate initial ideals, leading-term matrices, and Hilbert-function inputs without paying for polynomial-ring machinery. The opaque EngineMonomial type is the single-monomial handle the _1-flavour colon and saturation entries accept.

See also
monomial-ideal.cpp
monoid.h
engine-includes.hpp

Definition in file monomial-ideal.h.