diff --git a/src/util/lp/bound_analyzer_on_row.h b/src/util/lp/bound_analyzer_on_row.h index b6c3c4ef2..508692e5a 100644 --- a/src/util/lp/bound_analyzer_on_row.h +++ b/src/util/lp/bound_analyzer_on_row.h @@ -253,7 +253,6 @@ public : if (str) strict = true; } - bound /= l_coeff; if (is_pos(l_coeff)) { limit_j(m_column_of_l, bound, true, false, strict); diff --git a/src/util/lp/lar_core_solver.h b/src/util/lp/lar_core_solver.h index 58151c8be..ba5bbaa62 100644 --- a/src/util/lp/lar_core_solver.h +++ b/src/util/lp/lar_core_solver.h @@ -599,7 +599,7 @@ public: } if (no_r_lu()) { // it is the case where m_d_solver gives a degenerated basis, we need to roll back - std::cout << "no_r_lu" << std::endl; + // std::cout << "no_r_lu" << std::endl; catch_up_in_lu_in_reverse(changes_of_basis, m_r_solver); m_r_solver.find_feasible_solution(); m_d_basis = m_r_basis; diff --git a/src/util/lp/lp_core_solver_base.hpp b/src/util/lp/lp_core_solver_base.hpp index 6407aec07..7dae0535a 100644 --- a/src/util/lp/lp_core_solver_base.hpp +++ b/src/util/lp/lp_core_solver_base.hpp @@ -534,13 +534,19 @@ update_basis_and_x(int entering, int leaving, X const & tt) { init_factorization(m_factorization, m_A, m_basis, m_settings); if (!find_x_by_solving()) { restore_x(entering, tt); - lean_assert(!A_mult_x_is_off()); + if(A_mult_x_is_off()) { + m_status = FLOATING_POINT_ERROR; + m_iters_with_no_cost_growing++; + return false; + } + init_factorization(m_factorization, m_A, m_basis, m_settings); m_iters_with_no_cost_growing++; if (m_factorization->get_status() != LU_status::OK) { std::stringstream s; - s << "failing refactor on off_result for entering = " << entering << ", leaving = " << leaving << " total_iterations = " << total_iterations(); - throw_exception(s.str()); + // s << "failing refactor on off_result for entering = " << entering << ", leaving = " << leaving << " total_iterations = " << total_iterations(); + m_status = FLOATING_POINT_ERROR; + return false; } return false; } diff --git a/src/util/lp/lu.hpp b/src/util/lp/lu.hpp index b13583d17..2d2c7c7c4 100644 --- a/src/util/lp/lu.hpp +++ b/src/util/lp/lu.hpp @@ -605,13 +605,13 @@ void lu::process_column(int j) { unsigned pi, pj; bool success = m_U.get_pivot_for_column(pi, pj, m_settings.c_partial_pivoting, j); if (!success) { - LP_OUT(m_settings, "get_pivot returned false: cannot find the pivot for column " << j << std::endl); + // LP_OUT(m_settings, "get_pivot returned false: cannot find the pivot for column " << j << std::endl); m_failure = true; return; } if (static_cast(pi) == -1) { - LP_OUT(m_settings, "cannot find the pivot for column " << j << std::endl); + // LP_OUT(m_settings, "cannot find the pivot for column " << j << std::endl); m_failure = true; return; }