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

◆ translate()

ring_elem Tower::translate ( const PolynomialRing * R,
ring_elem fR ) const

Definition at line 471 of file tower.cpp.

472{
473 // create a TowerPolynomial in the Tower T, return it.
474
475 const Monoid *M = R->getMonoid();
476 const Ring *K = R->getCoefficients();
477 int nvars = R->n_vars();
478 TowerPolynomial result = nullptr;
479 exponents_t exp = new int[nvars];
480 for (Nterm& t : fR)
481 {
482 M->to_expvector(t.monom, exp);
483 std::pair<bool, long> res = K->coerceToLongInteger(t.coeff);
484 assert(res.first);
485 int c1 = static_cast<int>(res.second);
486
487 D->add_term(result, c1, exp);
488 }
489 delete[] exp;
490 return TOWER_RINGELEM(result);
491}
exponents::Exponents exponents_t
void to_expvector(const_monomial m, exponents_t result_exp) const
Definition monoid.cpp:747
virtual const Monoid * getMonoid() const
Definition polyring.hpp:282
virtual const Ring * getCoefficients() const
Definition polyring.hpp:277
int n_vars() const
Definition polyring.hpp:196
virtual std::pair< bool, long > coerceToLongInteger(ring_elem a) const
Definition ring.cpp:236
Ring()
Definition ring.hpp:136
DRing * D
Definition tower.hpp:66
int nvars
Definition tower.hpp:62
VALGRIND_MAKE_MEM_DEFINED & result(result)
const mpreal exp(const mpreal &x, mp_rnd_t r=mpreal::get_default_rnd())
Definition mpreal.h:2298
#define TOWER_RINGELEM(a)
Definition ringelem.hpp:214

References Ring::coerceToLongInteger(), D, PolynomialRing::getCoefficients(), PolynomialRing::getMonoid(), PolynomialRing::n_vars(), nvars, result(), Ring::Ring(), Monoid::to_expvector(), and TOWER_RINGELEM.