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

◆ fromSmallIntegerCoefficients()

ring_elem PolyRing::fromSmallIntegerCoefficients ( const std::vector< long > & coeffs,
int var ) const

Definition at line 2249 of file poly.cpp.

2252{
2253 // create a poly
2254 SumCollector *H = make_SumCollector();
2256 n_vars())); // deallocates automatically at end of block
2257 exponents::one(n_vars(), exp);
2258 for (long i = 0; i < coeffs.size(); i++)
2259 {
2260 exp[var] = static_cast<int>(i);
2261 ring_elem c = K_->from_long(coeffs[i]);
2262 if (K_->is_zero(c)) continue;
2263 Nterm *t = new_term();
2264 t->coeff = c;
2265 t->next = nullptr;
2266 M_->from_expvector(exp, t->monom);
2267 H->add(t);
2268 }
2269 ring_elem result = H->getValue();
2270 delete H;
2271 return result;
2272}
exponents::Exponents exponents_t
static void one(int nvars, Exponents result)
virtual ring_elem var(int v) const
Definition poly.cpp:299
Nterm * new_term() const
Definition poly.cpp:146
const Ring * K_
Definition polyring.hpp:123
const Monoid * M_
Definition polyring.hpp:124
SumCollector * make_SumCollector() const
Definition polyring.cpp:209
int n_vars() const
Definition polyring.hpp:196
virtual ring_elem getValue()=0
virtual void add(ring_elem f)=0
VALGRIND_MAKE_MEM_DEFINED & result(result)
#define ALLOCATE_EXPONENTS(byte_len)
Definition monoid.hpp:62
#define EXPONENT_BYTE_SIZE(nvars)
Definition monoid.hpp:63
const mpreal exp(const mpreal &x, mp_rnd_t r=mpreal::get_default_rnd())
Definition mpreal.h:2298
Nterm * next
Definition ringelem.hpp:157
ring_elem coeff
Definition ringelem.hpp:158
int monom[1]
Definition ringelem.hpp:160

References SumCollector::add(), ALLOCATE_EXPONENTS, Nterm::coeff, EXPONENT_BYTE_SIZE, SumCollector::getValue(), PolynomialRing::K_, PolynomialRing::M_, PolynomialRing::make_SumCollector(), Nterm::monom, PolynomialRing::n_vars(), new_term(), Nterm::next, ExponentVector< int, true >::one(), result(), and var().

Referenced by M2::ARingGFFlint::lift_to_original_ring(), and M2::ARingGFFlintBig::lift_to_original_ring().