|
Macaulay2 Engine
|
SchreyerFrame — in-progress representation of a free resolution organised by (level, degree). More...
#include "m2tbb.hpp"#include "betti.hpp"#include "interface/m2-types.h"#include "schreyer-resolution/res-memblock.hpp"#include "schreyer-resolution/res-moninfo.hpp"#include "schreyer-resolution/res-monomial-types.hpp"#include "schreyer-resolution/res-poly-ring.hpp"#include "schreyer-resolution/res-schreyer-order.hpp"#include "schreyer-resolution/res-dep-graph.hpp"#include <utility>#include <vector>Go to the source code of this file.
Classes | |
| struct | SchreyerFrameTypes::FrameElement |
| One generator within a SchreyerFrame::Level. More... | |
| struct | SchreyerFrameTypes::PreElement |
| Lightweight (varpower_monomial, degree) pair used during the pre-sort phase that feeds SchreyerFrame::insertLevelZero / insertLevelOne. More... | |
| class | SchreyerFrame |
| State container for the in-progress free resolution built by the F4 resolution engine. More... | |
| struct | SchreyerFrame::Level |
| One homological level of the frame: the FrameElements living at that level plus the Schreyer order used to break ties among them. More... | |
| struct | SchreyerFrame::Frame |
| The full frame: a vector of Levels indexed by homological degree. More... | |
Namespaces | |
| namespace | SchreyerFrameTypes |
Typedefs | |
| typedef int | ComponentIndex |
SchreyerFrame — in-progress representation of a free resolution organised by (level, degree).
Declares the state container the F4 resolution engine builds up as it walks homological levels. Each Level holds a std::vector<FrameElement>, where every FrameElement carries its leading monomial mMonom, the actual mDegree, a mBegin / mEnd slice into the next level's element vector (the descendants this generator contributes), and the mSyzygy polynomial once that level has been computed. Each level additionally carries its ResSchreyerOrder so the next level inherits the right tie-breaker data. These together let F4Res build the next level's Macaulay matrix without ever revisiting the original input, and BettiDisplay production reads directly off the frame so users can pull a partial Betti table mid-run.
The header pulls in m2tbb.hpp so the per-cell scheduler in res-dep-graph.hpp can fire work in parallel across (level, slanted_degree) cells; the parallelizeByDegree flag on F4ResComputation picks the grain. The TODO list at the top of the file is the active refactor agenda (display of poly elements, lazy get_matrix, incremental CoefficientArray, monomial-lookup choices); the long-form work plan lives in TODO-branch-res-2018 in this subdir.
Definition in file res-schreyer-frame.hpp.