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

◆ eval()

void M2::ARingGFFlintBig::eval ( const RingMap * map,
const ElementType & f,
int first_var,
ring_elem & result ) const

Definition at line 154 of file aring-gf-flint-big.cpp.

158{
159 const Ring* R = map->get_ring(); // the target ring
160 result = R->from_long(0);
161 if (is_zero(f)) return;
162
163 ring_elem a = map->elem(first_var);
164 std::vector<long> poly;
166 for (long i = poly.size() - 1; i >= 0; i--)
167 {
168 if (!R->is_zero(result)) result = R->mult(a, result);
169 if (poly[i] != 0)
170 {
171 ring_elem c = R->from_long(poly[i]);
172 result = R->add(result, c);
173 }
174 }
175}
bool is_zero(const ElementType &f) const
void getSmallIntegerCoefficients(const ElementType &a, std::vector< long > &poly) const
virtual ring_elem add(const ring_elem f, const ring_elem g) const =0
virtual ring_elem from_long(long n) const =0
virtual bool is_zero(const ring_elem f) const =0
virtual ring_elem mult(const ring_elem f, const ring_elem g) const =0
const ring_elem elem(int i) const
Definition ringmap.hpp:114
const Ring * get_ring() const
Definition ringmap.hpp:111
VALGRIND_MAKE_MEM_DEFINED & result(result)

References Ring::add(), RingMap::elem(), Ring::from_long(), RingMap::get_ring(), getSmallIntegerCoefficients(), is_zero(), Ring::is_zero(), Ring::mult(), and result().