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

◆ wordProductAsMonom() [3/3]

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

Definition at line 346 of file FreeMonoid.cpp.

347{
348 int monomOffset = numWeights() + 1;
349 int sz = left.size() + right.size() + numWeights() + 1;
350 auto rg = memBlock.allocateArray<int>(sz);
351 rg.first[0] = sz;
352 std::copy(left.begin(), left.end(), rg.first + monomOffset);
353 std::copy(right.begin(), right.end(), rg.first + monomOffset + left.size());
354 Monom newmon = Monom(rg.first);
355 setWeights(newmon);
356 return newmon;
357}
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().