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

◆ multi_degree()

void FreeMonoid::multi_degree ( const Monom & m,
monomial already_allocated_degree_vector ) const

Definition at line 168 of file FreeMonoid.cpp.

169{
170 int* result = already_allocated_degree_vector; // just to use a smaller name...
171 degreeMonoid().one(result); // reset value
172
173 auto word_length = wordLength(m);
174 auto word_ptr = m + mNumWeights+1;
175 for (auto j = 0; j < word_length; j++)
176 {
177 degreeMonoid().mult(result, mDegreeOfVar[word_ptr[j]], result);
178 }
179}
const Monoid & degreeMonoid() const
const int mNumWeights
gc_vector< const int * > mDegreeOfVar
int wordLength(const Monom &m) const
void one(monomial result) const
Definition monoid.cpp:470
void mult(const_monomial m, const_monomial n, monomial result) const
Definition monoid.cpp:363
VALGRIND_MAKE_MEM_DEFINED & result(result)

References degreeMonoid(), mDegreeOfVar, mNumWeights, Monoid::mult(), Monoid::one(), result(), and wordLength().

Referenced by FreeAlgebra::is_homogeneous(), and FreeAlgebra::multi_degree().