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

◆ mult_by_term_right() [1/2]

void FreeAlgebra::mult_by_term_right ( Poly & result,
const Poly & f,
const ring_elem c,
const Monom m ) const

Definition at line 530 of file FreeAlgebra.cpp.

534 {
535 // return f*c*m
536 auto& outcoeff = result.getCoeffInserter();
537 auto& outmonom = result.getMonomInserter();
538 for(auto i=f.cbegin(); i != f.cend(); i++)
539 {
540 // multiply the coefficients
541 ring_elem d = coefficientRing()->mult(i.coeff(),c);
542 if (coefficientRing()->is_zero(d))
543 continue;
544
545 outcoeff.push_back(d);
546 monoid().mult(i.monom(), m, outmonom);
547 }
548}
const Ring * coefficientRing() const
const FreeMonoid & monoid() const
bool is_zero(const Poly &f) const
void mult(const Monom &m1, const Monom &m2, MonomialInserter &result) const
virtual ring_elem mult(const ring_elem f, const ring_elem g) const =0
VALGRIND_MAKE_MEM_DEFINED & result(result)

References coefficientRing(), is_zero(), monoid(), FreeMonoid::mult(), Ring::mult(), and result().

Referenced by mult(), mult_by_term_right(), and TEST().