diff --git a/modcc/symge.cpp b/modcc/symge.cpp index 704936c3af718a6524a1fa01a5f247aa2c1ea053..0968b0406f9ce171e50b8fa18f315771596cb214 100644 --- a/modcc/symge.cpp +++ b/modcc/symge.cpp @@ -94,10 +94,14 @@ std::vector<std::vector<symge::symbol>> gj_reduce(sym_matrix& A, symbol_table& t pivot p; p.row = r; const sym_row &row = A[r]; - for (unsigned c = 0; c < A.nrow(); ++c) { - if (row[c]) { - p.col = c; - break; + if (row[r]) { + p.col = r; + } else { + for (unsigned c = 0; c < A.nrow(); ++c) { + if (row[c]) { + p.col = c; + break; + } } } pivots.push_back(std::move(p));