Macaulay2 Engine
Loading...
Searching...
No Matches
F4Res Class Reference

F4-style engine that computes one (level, degree) slice of a free resolution into the host SchreyerFrame. More...

#include <res-f4.hpp>

Classes

struct  Row
 One row of the Macaulay matrix built by F4Res::construct. More...

Public Member Functions

 F4Res (SchreyerFrame &res)
 ~F4Res ()
SchreyerFrameframe ()
const SchreyerFrameframe () const
void construct (int lev, int degree)
const VectorArithmeticvectorArithmetic () const
const ResMonoidmonoid () const
const ResPolyRingring () const

Private Member Functions

void resetMatrix (int lev, int degree)
void clearMatrix ()
bool findDivisor (res_const_packed_monomial m, res_packed_monomial result)
 findDivisor
ComponentIndex processCurrentMonomial (res_packed_monomial thisMonom)
ComponentIndex processMonomialProduct (res_const_packed_monomial m, res_const_packed_monomial n, int &result_sign_if_skew)
void loadRow (Row &r)
void reorderColumns ()
void makeMatrix ()
void gaussReduce ()
void gaussReduceRow (int index, ElementArray &dense, bool onlyConstantMaps, const std::vector< bool > &track)
void debugOutputReducers ()
void debugOutputColumns ()
void debugOutputMatrix (std::vector< Row > &)
void debugOutputMatrixSparse (std::vector< Row > &)
void debugOutputReducerMatrix ()
void debugOutputSPairMatrix ()

Private Attributes

SchreyerFramemFrame
const ResPolyRingmRing
int mThisLevel
int mThisDegree
long mNextReducerToProcess
std::unique_ptr< const ResMonomialsWithComponentmSchreyerRes
MonomialHashTable< ResMonomialsWithComponentmHashTable
std::vector< RowmReducers
std::vector< RowmSPairs
std::vector< long > mSPairComponents
std::vector< res_packed_monomialmColumns
MonomialMemorySpace mMonomSpace2

Friends

class ResColumnsSorter

Detailed Description

F4-style engine that computes one (level, degree) slice of a free resolution into the host SchreyerFrame.

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

construct(lev, degree) builds the Macaulay matrix whose rows are the symbolic reducers for each frame element of that (level, degree) cell, runs gaussReduce, and writes the resulting syzygy polynomials back into the matching FrameElement::mSyzygy slots. The matrix construction (processCurrentMonomial / processMonomialProduct / loadRow) and column-sorting passes (reorderColumns, ResColumnsSorter friend) live inside this class; the debugOutput* helpers exist for printing the partial state of the F4 matrix when investigating reduction bugs.

Definition at line 83 of file res-f4.hpp.


The documentation for this class was generated from the following files: