3
0
Fork 0
mirror of https://github.com/Z3Prover/z3 synced 2025-06-28 08:58:44 +00:00
Signed-off-by: Lev Nachmanson <levnach@hotmail.com>
This commit is contained in:
Lev Nachmanson 2020-05-26 14:15:20 -07:00
parent c424165d94
commit 18016a7100
2 changed files with 6 additions and 6 deletions

View file

@ -1332,7 +1332,7 @@ bool core::to_refine_is_correct() const {
} }
// looking for any real var to patch // looking for any real var to patch
void core::patch_monomial_with_real_var(lpvar j) { void core::patch_monomial(lpvar j) {
const monic& m = emons()[j]; const monic& m = emons()[j];
TRACE("nla_solver", tout << "m = "; print_monic(m, tout) << "\n";); TRACE("nla_solver", tout << "m = "; print_monic(m, tout) << "\n";);
rational v = mul_val(m); rational v = mul_val(m);
@ -1379,14 +1379,14 @@ void core::patch_monomial_with_real_var(lpvar j) {
} }
} }
void core::patch_monomials_with_real_vars() { void core::patch_monomials() {
auto to_refine = m_to_refine.index(); auto to_refine = m_to_refine.index();
// the rest of the function might change m_to_refine, so have to copy // the rest of the function might change m_to_refine, so have to copy
unsigned sz = to_refine.size(); unsigned sz = to_refine.size();
TRACE("nla_solver", tout << "sz = " << sz << "\n";); TRACE("nla_solver", tout << "sz = " << sz << "\n";);
unsigned start = random(); unsigned start = random();
for (unsigned i = 0; i < sz; i++) { for (unsigned i = 0; i < sz; i++) {
patch_monomial_with_real_var(to_refine[(start + i) % sz]); patch_monomial(to_refine[(start + i) % sz]);
if (m_to_refine.size() == 0) if (m_to_refine.size() == 0)
break; break;
} }
@ -1406,7 +1406,7 @@ lbool core::check(vector<lemma>& l_vec) {
} }
init_to_refine(); init_to_refine();
patch_monomials_with_real_vars(); patch_monomials();
if (m_to_refine.is_empty()) { return l_true; } if (m_to_refine.is_empty()) { return l_true; }
init_search(); init_search();

View file

@ -464,8 +464,8 @@ public:
bool influences_nl_var(lpvar) const; bool influences_nl_var(lpvar) const;
bool is_nl_var(lpvar) const; bool is_nl_var(lpvar) const;
bool is_used_in_monic(lpvar) const; bool is_used_in_monic(lpvar) const;
void patch_monomials_with_real_vars(); void patch_monomials();
void patch_monomial_with_real_var(lpvar); void patch_monomial(lpvar);
bool var_breaks_correct_monic(lpvar) const; bool var_breaks_correct_monic(lpvar) const;
bool var_breaks_correct_monic_as_factor(lpvar, const monic&) const; bool var_breaks_correct_monic_as_factor(lpvar, const monic&) const;
void update_to_refine_of_var(lpvar j); void update_to_refine_of_var(lpvar j);