3
0
Fork 0
mirror of https://github.com/Z3Prover/z3 synced 2026-02-20 07:24:40 +00:00

track rounded columns in lar_solver

Signed-off-by: Lev Nachmanson <levnach@hotmail.com>
This commit is contained in:
Lev Nachmanson 2020-01-23 12:59:45 -08:00 committed by Nikolaj Bjorner
parent f9917edf6c
commit 4ba4d41346
5 changed files with 47 additions and 27 deletions

View file

@ -144,19 +144,18 @@ lia_move int_solver::mk_gomory_cut( unsigned inf_col, const row_strip<mpq> & row
lia_move int_solver::proceed_with_gomory_cut(unsigned j) {
const row_strip<mpq>& row = m_lar_solver->get_row(row_of_basic_column(j));
SASSERT(m_lar_solver->row_is_correct(row_of_basic_column(j)));
if (!is_gomory_cut_target(row))
return create_branch_on_column(j);
if (!m_lar_solver->row_is_correct(row_of_basic_column(j)))
return lia_move::undef;
m_upper = true;
return mk_gomory_cut(j, row);
}
unsigned int_solver::row_of_basic_column(unsigned j) const {
return m_lar_solver->m_mpq_lar_core_solver.m_r_heading[j];
return m_lar_solver->row_of_basic_column(j);
}
// template <typename T>
@ -406,6 +405,9 @@ lia_move int_solver::hnf_cut() {
}
lia_move int_solver::check() {
++m_number_of_calls;
m_lar_solver->restore_rounded_columns();
SASSERT(m_lar_solver->ax_is_correct());
if (!has_inf_int()) return lia_move::sat;
#define CHECK_RET(fn) \