diff --git a/src/math/lp/dioph_eq.cpp b/src/math/lp/dioph_eq.cpp index 64309d31b..e857a728c 100644 --- a/src/math/lp/dioph_eq.cpp +++ b/src/math/lp/dioph_eq.cpp @@ -1377,15 +1377,11 @@ namespace lp { std_vector cleanup; m_tightened_columns.reset(); for (unsigned j : m_changed_terms) { - if ( - j >= lra.column_count() || + if (j >= lra.column_count() || !lra.column_has_term(j) || lra.column_is_free(j) || - is_fixed(j) || - !lia.column_is_int(j) - || - !term_has_int_inv_vars(j) - ) { + !lia.column_is_int(j) || + !term_has_int_inv_vars(j)) { cleanup.push_back(j); continue; } diff --git a/src/math/lp/int_solver.cpp b/src/math/lp/int_solver.cpp index c7424fc1e..0060e2e8a 100644 --- a/src/math/lp/int_solver.cpp +++ b/src/math/lp/int_solver.cpp @@ -188,7 +188,7 @@ namespace lp { } bool should_gomory_cut() { - return (!settings().dio_eqs() || settings().dio_enable_gomory_cuts()) + return (!all_columns_are_integral() ||(!settings().dio_eqs() || settings().dio_enable_gomory_cuts())) && m_number_of_calls % settings().m_int_gomory_cut_period == 0; }