3
0
Fork 0
mirror of https://github.com/Z3Prover/z3 synced 2025-04-16 05:48:44 +00:00

use a faster version of get_model in debug checks

Signed-off-by: Lev Nachmanson <levnach@microsoft.com>
This commit is contained in:
Lev Nachmanson 2017-07-10 11:57:33 -07:00
parent 86ed01a63b
commit 9dc7ba73eb
2 changed files with 10 additions and 1 deletions

View file

@ -897,7 +897,7 @@ bool lar_solver::all_constraints_hold() const {
if (m_settings.get_cancel_flag()) if (m_settings.get_cancel_flag())
return true; return true;
std::unordered_map<var_index, mpq> var_map; std::unordered_map<var_index, mpq> var_map;
get_model(var_map); get_model_do_not_care_about_diff_vars(var_map);
for (unsigned i = 0; i < m_constraints.size(); i++) { for (unsigned i = 0; i < m_constraints.size(); i++) {
if (!constraint_holds(*m_constraints[i], var_map)) { if (!constraint_holds(*m_constraints[i], var_map)) {
@ -1137,6 +1137,14 @@ void lar_solver::get_model(std::unordered_map<var_index, mpq> & variable_values)
} while (i != m_mpq_lar_core_solver.m_r_x.size()); } while (i != 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 {
for (unsigned i = 0; i < m_mpq_lar_core_solver.m_r_x.size(); i++ ) {
const impq & rp = m_mpq_lar_core_solver.m_r_x[i];
variable_values[i] = rp.x + rp.y;
}
}
std::string lar_solver::get_variable_name(var_index vi) const { std::string lar_solver::get_variable_name(var_index vi) const {
return get_column_name(vi); return get_column_name(vi);
} }

View file

@ -372,6 +372,7 @@ public:
void get_model(std::unordered_map<var_index, mpq> & variable_values) const; void get_model(std::unordered_map<var_index, mpq> & variable_values) const;
void get_model_do_not_care_about_diff_vars(std::unordered_map<var_index, mpq> & variable_values) const;
std::string get_variable_name(var_index vi) const; std::string get_variable_name(var_index vi) const;