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

◆ lift_coeffs()

bool SchurRing2::lift_coeffs ( const SchurRing2 * Sg,
const ring_elem f,
ring_elem & resultRE ) const
protected

Definition at line 407 of file schur2.cpp.

410{
411 const schur_poly *f1 = f.get_schur_poly();
412 schur_poly *result = new schur_poly;
413
414 for (schur_poly::iterator i = f1->begin(); i != f1->end(); ++i)
415 {
416 if (i.getMonomial()[0] - 1 > Sg->n_vars()) continue;
417 ring_elem a;
418 if (!coefficientRing->lift(
419 Sg->getCoefficientRing(), i.getCoefficient(), a))
420 {
421 delete result;
422 resultRE = from_long(0);
423 return false;
424 }
425 result->appendTerm(a, i.getMonomial());
426 }
427 resultRE = ring_elem(result);
428 return true;
429}
int n_vars() const
Definition schur2.hpp:174
virtual ring_elem from_long(long n) const
Definition schur2.cpp:291
const Ring * getCoefficientRing() const
Definition schur2.hpp:175
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(), n_vars(), result(), and SchurRing2().

Referenced by lift().