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

◆ reduce() [1/3]

void GaussElimComputation::reduce ( gm_elem *& p,
gm_elem * q )
private

Definition at line 130 of file gauss.cpp.

131{
132 // MES: rewrite.
133 // Reduce q by p. This is a single step reduction.
134 // The element is then inserted further down.
135
136 ring_elem c1 = p->f->coeff;
137 ring_elem c2 = q->f->coeff;
138 ring_elem d2 = R->negate(c2);
139 vec v1 = R->mult_vec(c1, q->f);
140 vec v2 = R->mult_vec(d2, p->f);
141 vec s1 = R->mult_vec(c1, q->fsyz);
142 vec s2 = R->mult_vec(d2, p->fsyz);
143 R->remove_vec(q->f);
144 R->remove_vec(q->fsyz);
145 R->remove(d2);
146 R->add_vec_to(v1, v2);
147 R->add_vec_to(s1, s2);
148 q->f = v1;
149 q->fsyz = s1;
150}
const Ring * R
Definition gauss.hpp:66
int p
vec fsyz
Definition gauss.hpp:46
vec f
Definition gauss.hpp:45

References gm_elem::f, gm_elem::fsyz, p, and R.

Referenced by contains(), matrix_lift(), matrix_remainder(), and start_computation().