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

◆ buildF4Matrix()

void NCF4::buildF4Matrix ( const std::deque< Overlap > & overlapsToProcess)
private

Definition at line 468 of file NCF4.cpp.

469{
470 matrixReset();
471
473
474 for (auto o : overlapsToProcess)
475 {
476 auto stillValid = std::get<3>(o);
477 if (stillValid) preRowsFromOverlap(o);
478 }
479
480 // can't do this loop as a range-based for loop since we are adding to it
481 // during the for loop
482 // process each element in mReducersTodo (false indicates a reducer row)
483 for (int i=0 ; i < mReducersTodo.size(); ++i)
484 processPreRow(mReducersTodo[i],mRows); // this often adds new elements to mReducersTodo
485
486 int numReducersAtFirst = mReducersTodo.size();
487
488 // process the overlap rows (true indicates an overlap row)
489 for (auto over : mOverlapsTodo)
490 processPreRow(over,mOverlaps); // this often adds new elements to mReducersTodo
491
492 // can't do this loop as a range-based for loop since we are adding
493 // to mReducersTodo during the for loop
494 for (int i=numReducersAtFirst ; i < mReducersTodo.size(); ++i)
495 processPreRow(mReducersTodo[i],mRows); // this often adds new elements to mReducersTodo
496
497 // Now we move the overlaps into mRows, and set mFirstOverlap.
498 // double range, so use a for loop
499 mFirstOverlap = mRows.size();
500 for (int i=0; i < mOverlapsTodo.size(); ++i)
501 {
502 mRows.emplace_back(mOverlaps[i]);
503 mReducersTodo.emplace_back(mOverlapsTodo[i]);
504 }
505}
void matrixReset()
Definition NCF4.cpp:375
std::vector< PreRow > mOverlapsTodo
Definition NCF4.hpp:239
void processPreRow(PreRow r, RowsVector &rowsVector, MemoryBlock &memoryBlock, PreRowFeeder *feeder)
Definition NCF4.cpp:583
MonomialHash mColumnMonomials
Definition NCF4.hpp:235
void preRowsFromOverlap(const Overlap &o)
Definition NCF4.cpp:393
int mFirstOverlap
Definition NCF4.hpp:247
RowsVector mRows
Definition NCF4.hpp:243
std::vector< PreRow > mReducersTodo
Definition NCF4.hpp:238
RowsVector mOverlaps
Definition NCF4.hpp:245
MonomialHash mPreviousColumnMonomials
Definition NCF4.hpp:236
const mpreal ceil(const mpreal &v)
Definition mpreal.h:2726
const mpreal log2(const mpreal &x, mp_rnd_t r=mpreal::get_default_rnd())
Definition mpreal.h:2296
const mpreal pow(const mpreal &a, const unsigned int b, mp_rnd_t rnd_mode=mpreal::get_default_rnd())
Definition mpreal.h:2962

References matrixReset(), mColumnMonomials, mFirstOverlap, mOverlaps, mOverlapsTodo, mPreviousColumnMonomials, mReducersTodo, mRows, preRowsFromOverlap(), and processPreRow().

Referenced by process().