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

◆ vec_eval()

vec Ring::vec_eval ( const RingMap * map,
const FreeModule * F,
const vec v ) const

Definition at line 354 of file ring-vecs.cpp.

356{
357 (void) F;
358 const Ring *targetRing = map->get_ring();
359
360 vecterm head;
361 vec result = &head;
362
363 for (vec t = v; t != nullptr; t = t->next)
364 {
365 ring_elem a = eval(map, t->coeff, 0); // a is now in the target ring
366 if (!targetRing->is_zero(a))
367 {
368 result->next = targetRing->make_vec(t->comp, a);
369 result = result->next;
370 }
371 }
372 result->next = nullptr;
373 return head.next;
374}
vec make_vec(int r, ring_elem a) const
Definition ring-vecs.cpp:60
virtual bool is_zero(const ring_elem f) const =0
virtual ring_elem eval(const RingMap *map, const ring_elem f, int first_var) const =0
Ring()
Definition ring.hpp:136
const Ring * get_ring() const
Definition ringmap.hpp:111
VALGRIND_MAKE_MEM_DEFINED & result(result)

References eval(), is_zero(), make_vec(), vec::next, result(), and Ring().

Referenced by RingMap::eval().