|
Macaulay2 Engine
|
S-pair scheduling queue used by F4GB: collects pairs, deduplicates them, and hands out the next degree's worth on demand. More...
#include <f4-spairs.hpp>
Public Member Functions | |
| F4SPairSet (const MonomialInfo *MI0, const gb_array &gb0) | |
| ~F4SPairSet () | |
| void | insert_generator (int deg, packed_monomial lcm, int column) |
| void | insert_spair (pre_spair *p, int me) |
| void | delete_spair (spair *p) |
| int | find_new_pairs (bool remove_disjoints) |
| std::pair< bool, int > | setThisDegree () |
| std::pair< bool, spair > | get_next_pair () |
| void | discardSPairsInCurrentDegree () |
| void | display_spair (spair *p) |
| void | display () |
| long | n_unneeded_pairs () const |
| size_t | numberOfSPairs () const |
| double | secondsToMinimizePairs () const |
| double | secondsToCreatePrePairs () const |
Private Member Functions | |
| spair * | make_spair (SPairType type, int deg, int i, int j) |
| bool | pair_not_needed (spair *p, gbelem *m) |
| int | remove_unneeded_pairs () |
| pre_spair * | create_pre_spair (int i) |
| int | construct_pairs (bool remove_disjoints) |
Private Attributes | |
| F4MemoryBlock< pre_spair > | PS |
| F4MemoryBlock< varpower_word > | VP |
| MemoryBlock | mSPairLCMs |
| int | max_varpower_size |
| const MonomialInfo * | M |
| const gb_array & | gb |
| std::vector< spair > | mSPairs |
| SPairCompare | mSPairCompare |
| std::priority_queue< size_t, std::vector< size_t >, SPairCompare > | mSPairQueue |
| long | mThisDegree |
| long | nsaved_unneeded |
| double | mMinimizePairsSeconds |
| double | mPrePairsSeconds |
S-pair scheduling queue used by F4GB: collects pairs, deduplicates them, and hands out the next degree's worth on demand.
Pre-S-pairs are built from each newly inserted GB element and slotted into the working pool. make_spair promotes a pre_spair into a full spair with its LCM and sugar degree. A std::priority_queue ordered by SPairCompare keeps the next degree at the top. MemoryBlocks back the monomial storage so pair construction stays bump-pointer cheap, and the held mtbb::task_arena& lets the queue share the scheduler F4GB uses for Gauss elimination.
Definition at line 67 of file f4-spairs.hpp.