3
0
Fork 0
mirror of https://github.com/Z3Prover/z3 synced 2025-04-22 16:45:31 +00:00

in get_modele do not return values for terms

Signed-off-by: Lev <levnach@hotmail.com>
This commit is contained in:
Lev 2018-09-07 15:56:36 -07:00 committed by Lev Nachmanson
parent 2b18627fa1
commit 822b0c1d5c

View file

@ -1253,7 +1253,7 @@ void lar_solver::get_infeasibility_explanation_for_inf_sign(
void lar_solver::get_model(std::unordered_map<var_index, mpq> & variable_values) const {
lp_assert(m_mpq_lar_core_solver.m_r_solver.calc_current_x_is_feasible_include_non_basis());
mpq delta = mpq(1, 2); // start from 0.5 to have less clashes
unsigned i;
unsigned j;
unsigned n = m_mpq_lar_core_solver.m_r_x.size();
variable_values.resize(n);
do {
@ -1261,8 +1261,9 @@ void lar_solver::get_model(std::unordered_map<var_index, mpq> & variable_values)
std::unordered_set<impq> set_of_different_pairs;
std::unordered_set<mpq> set_of_different_singles;
delta = m_mpq_lar_core_solver.find_delta_for_strict_bounds(delta);
for (i = 0; i < n; i++ ) {
const numeric_pair<mpq> & rp = m_mpq_lar_core_solver.m_r_x[i];
for (j = 0; j < n; j++ ) {
const numeric_pair<mpq> & rp = m_mpq_lar_core_solver.m_r_x[j];
set_of_different_pairs.insert(rp);
mpq x = rp.x + delta * rp.y;
set_of_different_singles.insert(x);
@ -1271,11 +1272,11 @@ void lar_solver::get_model(std::unordered_map<var_index, mpq> & variable_values)
delta /= mpq(2);
break;
}
TRACE("get_model", tout << get_column_name(i) << " := " << x << "\n";);
variable_values[i] = x;
if (!column_corresponds_to_term(j))
variable_values[j] = x;
}
} while (i != m_mpq_lar_core_solver.m_r_x.size());
} while (j != m_mpq_lar_core_solver.m_r_x.size());
}
void lar_solver::get_model_do_not_care_about_diff_vars(std::unordered_map<var_index, mpq> & variable_values) const {