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

◆ mult_by_term()

ring_elem SchurRing::mult_by_term ( const ring_elem f,
const ring_elem c,
const int * m ) const
virtual

Reimplemented from PolyRing.

Definition at line 266 of file schur.cpp.

269{
270 // return c*m*f
271 ring_elem result = ZERO_RINGELEM;
272 for (Nterm& t : f)
273 {
274 ring_elem a = K_->mult(c, t.coeff);
275 ring_elem g = const_cast<SchurRing *>(this)->mult_monomials(t.monom, m);
276 for (Nterm& s : g)
277 {
278 ring_elem b = K_->mult(a, s.coeff);
279 s.coeff = b;
280 }
281 Nterm *gt = g;
282 sort(gt);
283 g = gt;
284 add_to(result, g);
285 }
286 return result;
287}
void sort(Nterm *&f) const
Definition poly.cpp:2077
const Ring * K_
Definition polyring.hpp:123
void add_to(ring_elem &f, const ring_elem &g) const
Definition ring.cpp:205
ring_elem mult_monomials(const int *m, const int *n)
Definition schur.cpp:233
SchurRing()
Definition schur.hpp:103
void size_t s
Definition m2-mem.cpp:271
VALGRIND_MAKE_MEM_DEFINED & result(result)
#define ZERO_RINGELEM
Definition ring.hpp:677

References Ring::add_to(), PolynomialRing::K_, mult_monomials(), result(), s, SchurRing(), PolyRing::sort(), and ZERO_RINGELEM.