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

◆ promote_coeffs()

bool SchurRing2::promote_coeffs ( const SchurRing2 * Sf,
const ring_elem f,
ring_elem & resultRE ) const
protected

Definition at line 383 of file schur2.cpp.

386{
387 // Assumption in use: Rf (ring of f) is a Schur ring, with coeff ring coeffRf
388 const schur_poly *f1 = f.get_schur_poly();
389 schur_poly *result = new schur_poly;
390
391 for (schur_poly::iterator i = f1->begin(); i != f1->end(); ++i)
392 {
393 if (i.getMonomial()[0] - 1 > nvars) continue;
394 ring_elem a;
395 if (!coefficientRing->promote(
396 Rf->getCoefficientRing(), i.getCoefficient(), a))
397 {
398 delete result;
399 resultRE = from_long(0);
400 return false;
401 }
402 result->appendTerm(a, i.getMonomial());
403 }
404 resultRE = ring_elem(result);
405 return true;
406}
virtual ring_elem from_long(long n) const
Definition schur2.cpp:291
const Ring * coefficientRing
Definition schur2.hpp:154
schur_poly_iterator iterator
Definition schur2.hpp:90
iterator begin() const
Definition schur2.hpp:128
iterator end() const
Definition schur2.hpp:132
VALGRIND_MAKE_MEM_DEFINED & result(result)
const schur_poly * get_schur_poly() const
Definition ringelem.hpp:137

References schur_poly::begin(), coefficientRing, schur_poly::end(), from_long(), ring_elem::get_schur_poly(), getCoefficientRing(), nvars, result(), and SchurRing2().

Referenced by promote().