Macaulay2 Engine
Loading...
Searching...
No Matches

◆ processWordInPreRow()

void NCF4::processWordInPreRow ( Word & w,
PreRowFeeder * feeder )
private

Definition at line 678 of file NCF4.cpp.

680{
681 const auto it = mColumnMonomials.find(w);
682 if (it == mColumnMonomials.end())
683 {
684 // if we are here, this monomial is not yet accounted for in the matrix
685 // so, check if the monomial is a multiple of a lead term of a gb element
686
687 // insert column information into mColumnMonomials,
688 // which provides us search (and eventually) indexing of columns
689 mColumnMonomials.emplace(w,std::make_pair(-1,-1));
690 auto divresult = findDivisor(w);
691 if (divresult.first)
692 {
693 // if m is a divisor of a gb element (or a left/right
694 // variable multiple of a previous reducer), add that
695 // multiple of the GB element to mReducersToDo for
696 // processing
697
698 // if feeder is nullptr, then this is a computation on a list
699 // not being added to during the loop.
700 // e.g. either F4 serial or overlaps processing
701 // otherwise, we must use the feeder to add more work.
702 if (feeder == nullptr)
703 mReducersTodo.push_back(divresult.second);
704 else
705 feeder->add(divresult.second);
706 }
707 }
708}
MonomialHash mColumnMonomials
Definition NCF4.hpp:235
std::pair< bool, PreRow > findDivisor(Word w)
Definition NCF4.cpp:710
std::vector< PreRow > mReducersTodo
Definition NCF4.hpp:238

References findDivisor(), mColumnMonomials, and mReducersTodo.

Referenced by processPreRow().