13 int ncols =
static_cast<int>(
M->n_cols());
17 for (
int i = 0; i < ncols; i++)
39 for (
int i = lo; i <= hi; i++)
41 int r1 =
static_cast<int>(
M->lead_row(i));
48 if (r == -1)
return false;
59 size_t pivot_row =
M->lead_row(
62 for (
int i = lo; i <= hi; i++)
65 size_t r =
M->lead_row(i, a);
72 M->column_op(i, a, pivotCol);
110 int ncols =
static_cast<int>(
M->n_cols());
119 if (!F.
calc())
return nullptr;
121 return col_permutation;
bool choose_pivot_column(int lo, int hi, int &result)
M2_arrayint get_column_permutation()
void do_pivots(int lo, int hi, int pivot_col)
FF_LUComputation(MutableMatrix *M)
static M2_arrayintOrNull DO(MutableMatrix *M)
Abstract base class for mutable matrices over an arbitrary engine Ring, the in-place counterpart of t...
FF_LUComputation — Bareiss-style fraction-free LU over an integral domain.
bool system_interrupted()
system_interrupted() — thread-safe polling predicate for Ctrl+C handling.
VALGRIND_MAKE_MEM_DEFINED & result(result)
M2_arrayint M2_makearrayint(int n)
M2_arrayint M2_arrayintOrNull
#define newarray_atomic(T, len)