#include <../../nrnconf.h> #include "lineq.h" subrow(pivot, rowsub) struct elm *pivot, *rowsub; { unsigned row; double r; register struct elm *el; r = rowsub->value / pivot->value; rhs[rowsub->row] -= rhs[pivot->row] * r; row = rowsub->row; rowsub = ELM0; for (el = rowst[pivot->row] ; el != ELM0 ; el = el->c_right) if (el != pivot) (rowsub = getelm(rowsub, row, el->col))->value -= el->value * r; } int remelm(el) struct elm *el; { if (el->c_right != ELM0) (el->c_right)->c_left = el->c_left; if (el->c_left != ELM0) (el->c_left)->c_right = el->c_right; else rowst[el->row] = el->c_right; if (el->r_down != ELM0) (el->r_down)->r_up = el->r_up; if (el->r_up != ELM0) (el->r_up)->r_down = el->r_down; else colst[el->col] = el->r_down; free((char *)el); }