Macaulay2 Engine
Loading...
Searching...
No Matches
gb-homog2.hpp File Reference

GB_comp — Buchberger GB specialised to homogeneous input. More...

#include "relem.hpp"
#include "matrix.hpp"
#include "polyring.hpp"
#include "comp-gb.hpp"
#include "spair.hpp"
#include "gbweight.hpp"

Go to the source code of this file.

Classes

class  GB_comp
 A Groebner basis computation class for homogeneous input modules. More...

Variables

const int GB_COMP_NEWDEGREE = 1
const int GB_COMP_NEED_RESIZE = 2
const int GB_COMP_S_PAIRS = 3
const int GB_COMP_GENS = 4
const int GB_COMP_AUTO_REDUCE = 5
const int GB_COMP_NEWPAIRS = 6
const int GB_COMP_DONE = 7

Detailed Description

GB_comp — Buchberger GB specialised to homogeneous input.

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

Declares the homogeneous-specialised Groebner basis class GB_comp, along with its GB_COMP_* state constants (NEWDEGREE, NEED_RESIZE, S_PAIRS, GENS, AUTO_REDUCE, NEWPAIRS, DONE). The point of the specialisation is that S-polynomial degrees in a homogeneous ideal are monotonically non-decreasing, so the algorithm can process one degree at a time: ingest all generators of degree d, process every S-pair of degree d to completion, then yield the basis-up-to-degree-d and either stop (under DegreeLimit =>) or move on. This makes the homogeneous case naturally resumable and avoids the sugar bookkeeping the default gbA carries.

The default gb-default.hpp (gbA) produces the same answer for homogeneous input but pays the sugar overhead; the dispatcher in comp-gb.cpp reaches GB_comp through algorithm == 5 (homogeneity is not auto-detected — the caller picks). Sibling variants gb-sugarless.hpp, gb-toric.hpp, and gb-walk.hpp cover the other specialised paths.

See also
gb-default.hpp
comp-gb.hpp
spair.hpp
gbweight.hpp

Definition in file gb-homog2.hpp.