587{
588
589
590 Word left = r.left;
591 int gbIndex = r.preRowIndex;
592 Word right = r.right;
594
596 std::cout << "Processing PreRow: ("
597 << left << "," << gbIndex << "," << right << ")"
598 << std::endl;
599
600
601
602
603
604
608 {
609
610
611
614 elem = tempelem;
615 }
616 else
617 {
618 if (gbIndex < 0)
619 elem =
mInput[-gbIndex-1];
620 else
622 }
623
624
625
626
627
628
629
630
631
632
633
634
635 int numTerms = elem->numTerms();
636
639
640
641
642
643 Word* nextColWord = wordRange.first;
644
645 for (auto i = elem->cbegin(); i != elem->cend(); ++i)
646 {
647 Word mid;
651 *nextColWord = w;
652 ++nextColWord;
653 }
654
655
656 ElementArray coeffs =
mVectorArithmetic->elementArrayFromContainer(elem->getElementArray());
657
658
660 {
662 delete tempelem;
663 }
664
665
666 rowsVector.emplace_back(
Row {coeffs, columnRange, wordRange});
667}
Polynomial< CoefficientRingType > Poly
const FreeMonoid & monoid() const
Word wordProductAsWord(const Word &left, const Word &right, MemoryBlock &memBlock) const
void wordFromMonom(Word &result, const Monom &m) const
std::pair< T *, T * > allocateArray(size_t nelems)
ColumnsVector mPreviousColumns
const ConstPolyList mInput
void reducedRowToPoly(Poly *result, const RowsVector &rows, const ColumnsVector &cols, int i) const
const FreeAlgebra & mFreeAlgebra
void processWordInPreRow(Word &w, PreRowFeeder *feeder)
const VectorArithmetic * mVectorArithmetic
const FreeAlgebra & freeAlgebra() const
A materialised row of the Macaulay matrix: parallel coefficient and monomial arrays.