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

◆ mult_row()

void Ring::mult_row ( vec & v,
const ring_elem r,
int i,
bool opposite_mult ) const

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

441{
442 vecterm head;
443 head.next = v;
444 for (vec p = &head; p->next != nullptr; p = p->next)
445 if (p->next->comp < i)
446 break;
447 else if (p->next->comp == i)
448 {
449 ring_elem c;
450 if (opposite_mult)
451 c = mult(p->next->coeff, r);
452 else
453 c = mult(r, p->next->coeff);
454 p->next->coeff = c;
455 if (this->is_zero(p->next->coeff))
456 {
457 vec tmp = p->next;
458 p->next = tmp->next;
459 remove_vec_node(tmp);
460 }
461 break;
462 }
463 v = head.next;
464}
void remove_vec_node(vec n) const
Definition ring-vecs.cpp:55
virtual bool is_zero(const ring_elem f) const =0
virtual ring_elem mult(const ring_elem f, const ring_elem g) const =0
int p

References is_zero(), mult(), vec::next, p, and remove_vec_node().