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

◆ wordProductAsMonom() [1/3]

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

Definition at line 397 of file FreeMonoid.cpp.

401{
402 int monomOffset = numWeights() + 1;
403 int sz = left.size() + mid.size() + right.size();
404 auto rg = memBlock.allocateArray<int>(sz);
405 rg.first[0] = sz;
406 std::copy(left.begin(), left.end(), rg.first + monomOffset);
407 std::copy(mid.begin()+monomOffset, mid.end(), rg.first + left.size() + monomOffset);
408 std::copy(right.begin(), right.end(), rg.first + left.size() + mid.size());
409 Monom newmon = Monom(rg.first);
410 setWeights(newmon);
411 return newmon;
412}
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
const int * end() const
const int * begin() const
int size() const

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