|
Macaulay2 Engine
|
ResolutionComputation — abstract base for every free-resolution algorithm in the engine. More...
#include "comp.hpp"Go to the source code of this file.
Classes | |
| class | ResolutionComputation |
| Base class for free resolution computation classes. More... | |
Functions | |
| void | intern_res (ResolutionComputation *G) |
ResolutionComputation — abstract base for every free-resolution algorithm in the engine.
ResolutionComputation is the resolution-side mirror of GBComputation: a Computation subclass that adds the resolution-specific virtuals get_free(level), get_matrix(level) (the differential F_level -> F_{level - 1}), get_betti(type) (a Betti table where type indexes into the rawResolutionBetti enumeration documented in engine.h: 0 minimal, 1 non-minimal, 2 S-pairs remaining, 3 term counts, 4 FastNonminimal => true minimal Bettis), and complete_thru_degree. Concrete subclasses span the engine's resolution algorithms — res_comp (res-a1.hpp), res2_comp (res-a0.hpp), gbres_comp (res-a2.hpp), F4ResComputation (schreyer-resolution/), and NCResComputation (NCResolutions/) — each keeping its own internal layout.
The factory ResolutionComputation::choose_res(...) reads both the algorithm and strategy integers (mapped from the M2 Algorithm => and Strategy => options; the values are documented in engine.h) plus thread / degree-limit options and returns the matching subclass. Per-degree state lives on the heap so a typical DegreeLimit => k workflow can inspect Betti numbers, decide whether to continue, and resume by relaxing the limit and calling start_computation again.
Definition in file comp-res.hpp.