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

◆ wordProductAsMonom() [2/3]

Monom FreeMonoid::wordProductAsMonom ( const Word & left,
const Word & mid,
const Word & right,
MemoryBlock & memBlock ) const

Definition at line 369 of file FreeMonoid.cpp.

370{
371 int monomOffset = numWeights() + 1;
372 int sz = left.size() + mid.size() + right.size() + monomOffset;
373 auto rg = memBlock.allocateArray<int>(sz);
374 rg.first[0] = sz;
375 std::copy(left.begin(), left.end(), rg.first + monomOffset);
376 std::copy(mid.begin(), mid.end(), rg.first + left.size() + monomOffset);
377 std::copy(right.begin(), right.end(), rg.first + left.size() + mid.size() + monomOffset);
378 Monom newmon = Monom(rg.first);
379 setWeights(newmon);
380 return newmon;
381}
void setWeights(Monom &m) const
unsigned int numWeights() const
std::pair< T *, T * > allocateArray(size_t nelems)
const int * begin() const
Definition Word.hpp:72
const int * end() const
Definition Word.hpp:73
int size() const
Definition Word.hpp:74

References MemoryBlock::allocateArray(), Word::begin(), Word::end(), numWeights(), setWeights(), and Word::size().