mirror of
https://github.com/Z3Prover/z3
synced 2025-04-22 16:45:31 +00:00
roll back changes in get_model
Signed-off-by: Lev Nachmanson <levnach@hotmail.com>
This commit is contained in:
parent
0dbe8982ce
commit
b6f07e2a23
4 changed files with 6 additions and 8 deletions
|
@ -97,7 +97,7 @@ add_subdirectory(tactic/portfolio)
|
|||
add_subdirectory(opt)
|
||||
add_subdirectory(api)
|
||||
add_subdirectory(api/dll)
|
||||
|
||||
add_definitions(-DDUMP_ARGS)
|
||||
################################################################################
|
||||
# libz3
|
||||
################################################################################
|
||||
|
|
|
@ -1489,7 +1489,7 @@ public:
|
|||
}
|
||||
|
||||
lp::var_index vi = m_theory_var2var_index[v];
|
||||
if (vi < m_variable_values.size())
|
||||
if (m_variable_values.count(vi) > 0)
|
||||
return m_variable_values[vi];
|
||||
|
||||
if (!m_solver->is_term(vi)) {
|
||||
|
@ -1505,7 +1505,7 @@ public:
|
|||
if (m_solver->is_term(wi)) {
|
||||
const lp::lar_term& term = m_solver->get_term(wi);
|
||||
for (const auto & i : term) {
|
||||
if (i.var() < m_variable_values.size()) {
|
||||
if (m_variable_values.count(i.var()) > 0) {
|
||||
result += m_variable_values[i.var()] * coeff * i.coeff();
|
||||
}
|
||||
else {
|
||||
|
@ -1517,7 +1517,7 @@ public:
|
|||
result += m_variable_values[wi] * coeff;
|
||||
}
|
||||
}
|
||||
m_term_values[vi] = result;
|
||||
m_variable_values[vi] = result;
|
||||
return result;
|
||||
}
|
||||
|
||||
|
|
|
@ -1252,8 +1252,6 @@ 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());
|
||||
if (m_status != lp_status::OPTIMAL)
|
||||
return;
|
||||
mpq delta = mpq(1, 2); // start from 0.5 to have less clashes
|
||||
unsigned i;
|
||||
unsigned n = m_mpq_lar_core_solver.m_r_x.size();
|
||||
|
|
|
@ -29,8 +29,8 @@ namespace nra {
|
|||
scoped_ptr<scoped_anum> m_zero;
|
||||
vector<mon_eq> m_monomials;
|
||||
unsigned_vector m_monomials_lim;
|
||||
mutable vector<rational> m_variable_values; // current model
|
||||
mutable std::unordered_map<lp::var_index, rational> m_term_values;
|
||||
mutable std::unordered_map<lp::var_index, rational> m_variable_values; // current model
|
||||
|
||||
imp(lp::lar_solver& s, reslimit& lim, params_ref const& p):
|
||||
s(s),
|
||||
m_limit(lim),
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue