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

◆ vec_diff()

vec Ring::vec_diff ( vec v,
int rankFw,
vec w,
int use_coeff ) const

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

716{
717 vec result = nullptr;
718 for (; v != nullptr; v = v->next)
719 for (vecterm *p = w; p != nullptr; p = p->next)
720 {
721 ring_elem a = diff(v->coeff, p->coeff, use_coeff);
722 if (is_zero(a))
723 {
724 remove(a);
725 continue;
726 }
727 vecterm *t = new_vec();
728 t->comp = rankFw * v->comp + p->comp;
729 t->coeff = a;
730 t->next = result;
731 result = t;
732 }
734 return result;
735}
virtual void remove(ring_elem &f) const =0
void vec_sort(vecterm *&f) const
virtual bool is_zero(const ring_elem f) const =0
virtual ring_elem diff(ring_elem a, ring_elem b, int use_coeff) const
Definition ring.cpp:355
vec new_vec() const
vector operations ////////////////////
Definition ring-vecs.cpp:54
int p
VALGRIND_MAKE_MEM_DEFINED & result(result)
ring_elem coeff
Definition ringelem.hpp:172

References vec::coeff, vec::comp, diff(), is_zero(), new_vec(), vec::next, p, remove(), result(), and vec_sort().

Referenced by Matrix::diff().