3
0
Fork 0
mirror of https://github.com/Z3Prover/z3 synced 2025-10-09 09:21:56 +00:00

better tracking changinc rows and monomials

This commit is contained in:
Lev Nachmanson 2023-09-29 15:27:22 -07:00
parent f30a2c13be
commit b64fdef41f
6 changed files with 35 additions and 38 deletions

View file

@ -200,16 +200,10 @@ namespace lp {
}
lp_status lar_solver::solve() {
if (m_status == lp_status::INFEASIBLE) {
if (m_status == lp_status::INFEASIBLE)
return m_status;
}
solve_with_core_solver();
if (m_status != lp_status::INFEASIBLE) {
if (m_settings.bound_propagation())
detect_rows_with_changed_bounds();
}
clear_columns_with_changed_bounds();
return m_status;
}
@ -789,8 +783,7 @@ namespace lp {
void lar_solver::detect_rows_with_changed_bounds() {
for (auto j : m_columns_with_changed_bounds)
detect_rows_with_changed_bounds_for_column(j);
if (m_find_monics_with_changed_bounds_func)
m_find_monics_with_changed_bounds_func(m_columns_with_changed_bounds);
}
void lar_solver::update_x_and_inf_costs_for_columns_with_changed_bounds_tableau() {
@ -1623,10 +1616,9 @@ namespace lp {
SASSERT(m_terms.size() == m_term_register.size());
unsigned adjusted_term_index = m_terms.size() - 1;
var_index ret = tv::mask_term(adjusted_term_index);
if (!coeffs.empty()) {
if (!coeffs.empty())
add_row_from_term_no_constraint(m_terms.back(), ret);
add_touched_row(A_r().row_count() - 1);
}
lp_assert(m_var_register.size() == A_r().column_count());
if (m_need_register_terms)
register_normalized_term(*t, A_r().column_count() - 1);