Macaulay2 Engine
Loading...
Searching...
No Matches
monomLex.hpp File Reference

BIBasis::MonomLex — pure lexicographic specialisation of the BIBasis monomial type. More...

#include <set>
#include "allocator.hpp"
#include "monom.hpp"

Go to the source code of this file.

Classes

class  BIBasis::MonomLex
 Monom specialisation that orders monomials by pure lex on their sorted variable lists. More...

Namespaces

namespace  BIBasis

Detailed Description

BIBasis::MonomLex — pure lexicographic specialisation of the BIBasis monomial type.

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

Concrete Monom subclass whose Compare, operator<, and operator> order monomials by walking the variable list from the smallest-index variable upward, with the first disagreement deciding (no degree pre-test) — the standard M2 lex order with x_0 > x_1 > .... The variable list is kept sorted ascending so Find is a linear-but-short walk, and MultiplyBy / operator*= / operator/= / SetQuotientOf maintain that ordering as they splice nodes; equality short-circuits on the cached TotalDegree. Storage is a per-class static FastAllocator so the millions of transient monomials created during prolongation stay slab-resident.

Also exposes IsPommaretDivisibleBy (Janet's prefix divisibility used by the involutive driver) and GetVariablesSet / FirstMultiVar for translating between the linked-list encoding and the dense variable indices the engine's Matrix interface expects. Picked at runtime by Launcher when the user requests Lex.

See also
monom.hpp
monomDL.hpp
monomDRL.hpp
launcher.hpp
involutive.hpp

Definition in file monomLex.hpp.