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

◆ mult_by_term_left() [1/2]

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

Definition at line 563 of file FreeAlgebra.cpp.

567{
568 // return (c*m)*f
569 auto& outcoeff = result.getCoeffInserter();
570 auto& outmonom = result.getMonomInserter();
571 for(auto i=f.cbegin(); i != f.cend(); i++)
572 {
573 ring_elem d = coefficientRing()->mult(c, i.coeff());
574 if (coefficientRing()->is_zero(d))
575 continue;
576
577 outcoeff.push_back(d);
578 monoid().mult(m, i.monom(), outmonom);
579 }
580}
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_left(), and TEST().