|
Macaulay2 Engine
|
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 () | |
| SchreyerFrame & | frame () |
| const SchreyerFrame & | frame () const |
| void | construct (int lev, int degree) |
| const VectorArithmetic & | vectorArithmetic () const |
| const ResMonoid & | monoid () const |
| const ResPolyRing & | ring () 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 | |
| SchreyerFrame & | mFrame |
| const ResPolyRing & | mRing |
| int | mThisLevel |
| int | mThisDegree |
| long | mNextReducerToProcess |
| std::unique_ptr< const ResMonomialsWithComponent > | mSchreyerRes |
| MonomialHashTable< ResMonomialsWithComponent > | mHashTable |
| std::vector< Row > | mReducers |
| std::vector< Row > | mSPairs |
| std::vector< long > | mSPairComponents |
| std::vector< res_packed_monomial > | mColumns |
| MonomialMemorySpace | mMonomSpace2 |
Friends | |
| class | ResColumnsSorter |
F4-style engine that computes one (level, degree) slice of a free resolution into the host SchreyerFrame.
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.