3
0
Fork 0
mirror of https://github.com/Z3Prover/z3 synced 2025-04-25 10:05:32 +00:00
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
This commit is contained in:
Nikolaj Bjorner 2021-05-03 11:44:44 -07:00
parent 2c97799564
commit 60cf482cea
5 changed files with 18 additions and 6 deletions

View file

@ -61,7 +61,7 @@ namespace lp {
return true;
const lar_term* t = lra.terms()[i];
impq delta = get_cube_delta_for_term(*t);
TRACE("cube", lra.print_term_as_indices(*t, tout); tout << ", delta = " << delta;);
TRACE("cube", lra.print_term_as_indices(*t, tout); tout << ", delta = " << delta << "\n";);
if (is_zero(delta))
return true;
return lra.tighten_term_bounds_by_delta(tv::term(i), delta);

View file

@ -2331,15 +2331,19 @@ namespace lp {
v = flv;
}
m_incorrect_columns.insert(j);
TRACE("cube", tout << "new val = " << v << "\n";);
TRACE("cube", tout << "new val = " << v << " column: " << j << "\n";);
}
if (m_incorrect_columns.size()) {
if (!m_incorrect_columns.empty()) {
fix_terms_with_rounded_columns();
m_incorrect_columns.clear();
}
}
void lar_solver::fix_terms_with_rounded_columns() {
TRACE("cube",
for (unsigned i = 0; i < m_terms.size(); i++)
tout << i << " " << term_is_used_as_row(i) << "\n";);
for (unsigned i = 0; i < m_terms.size(); i++) {
if (!term_is_used_as_row(i))
continue;
@ -2357,6 +2361,9 @@ namespace lp {
m_mpq_lar_core_solver.m_r_solver.update_x(j, v);
}
}
for (unsigned i = 0; i < A_r().row_count(); i++)
row_is_correct(i);
SASSERT(ax_is_correct());
}
// return true if all y coords are zeroes