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

◆ reduceF4Matrix()

void NCF4::reduceF4Matrix ( )
private

Definition at line 1039 of file NCF4.cpp.

1040{
1041 NCF4Stats ncF4Stats;
1042
1043 auto denseVector = mVectorArithmetic->allocateElementArray(mColumnMonomials.size());
1044
1045 // reduce each overlap row by mRows.
1046 for (auto i = mFirstOverlap; i < mRows.size(); ++i)
1047 reduceF4Row(i,
1048 mRows[i].columnIndices[0],
1049 -1,
1050 ncF4Stats,
1051 denseVector);
1052
1053 // interreduce the matrix with respect to these overlaps.
1054 for (auto i = mRows.size(); i > mFirstOverlap; --i)
1055 reduceF4Row(i-1,
1056 mRows[i-1].columnIndices[1],
1057 mRows[i-1].columnIndices[0],
1058 ncF4Stats,
1059 denseVector);
1060
1061 mVectorArithmetic->deallocateElementArray(denseVector);
1062
1063 //std::cout << "Number of cancellations: " << ncF4Stats.numCancellations << std::endl;
1064}
void reduceF4Row(int index, int first, int firstcol, NCF4Stats &ncF4Stats, ElementArray &dense)
Definition NCF4.hpp:357
MonomialHash mColumnMonomials
Definition NCF4.hpp:235
int mFirstOverlap
Definition NCF4.hpp:247
RowsVector mRows
Definition NCF4.hpp:243
const VectorArithmetic * mVectorArithmetic
Definition NCF4.hpp:250
Per-thread counters tracking how much work the F4 reduction did.
Definition NCF4.hpp:209

References mColumnMonomials, mFirstOverlap, mRows, mVectorArithmetic, and reduceF4Row().

Referenced by process().