mirror of
https://github.com/Z3Prover/z3
synced 2025-06-06 22:23:22 +00:00
move some functionality from nla_solver to rooted_mons
Signed-off-by: Lev <levnach@hotmail.com>
This commit is contained in:
parent
64a7231079
commit
00acf408bf
2 changed files with 22 additions and 22 deletions
|
@ -845,34 +845,13 @@ struct solver::imp {
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
void register_rooted_monomial_containing_vars(unsigned i_rm) {
|
|
||||||
TRACE("nla_solver", print_rooted_monomial(m_rm_table.vec()[i_rm], tout););
|
|
||||||
for (lpvar j_var : m_rm_table.vec()[i_rm].vars()) {
|
|
||||||
TRACE("nla_solver", print_var(j_var, tout););
|
|
||||||
auto it = m_rm_table.var_map().find(j_var);
|
|
||||||
if (it == m_rm_table.var_map().end()) {
|
|
||||||
std::unordered_set<unsigned> s;
|
|
||||||
s.insert(i_rm);
|
|
||||||
m_rm_table.var_map()[j_var] = s;
|
|
||||||
} else {
|
|
||||||
it->second.insert(i_rm);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
void fill_rooted_monomials_containing_var() {
|
|
||||||
for (unsigned i = 0; i < m_rm_table.vec().size(); i++) {
|
|
||||||
register_rooted_monomial_containing_vars(i);
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
void register_monomials_in_tables() {
|
void register_monomials_in_tables() {
|
||||||
m_vars_equivalence.clear_monomials_by_abs_vals();
|
m_vars_equivalence.clear_monomials_by_abs_vals();
|
||||||
for (unsigned i = 0; i < m_monomials.size(); i++)
|
for (unsigned i = 0; i < m_monomials.size(); i++)
|
||||||
register_monomial_in_tables(i);
|
register_monomial_in_tables(i);
|
||||||
|
|
||||||
fill_rooted_monomials_containing_var();
|
m_rm_table.fill_rooted_monomials_containing_var();
|
||||||
m_rm_table.fill_rooted_factor_to_product();
|
m_rm_table.fill_rooted_factor_to_product();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -136,5 +136,26 @@ struct rooted_mon_table {
|
||||||
find_rooted_monomials_containing_rm(i);
|
find_rooted_monomials_containing_rm(i);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void register_rooted_monomial_containing_vars(unsigned i_rm) {
|
||||||
|
for (lpvar j_var : vec()[i_rm].vars()) {
|
||||||
|
auto it = var_map().find(j_var);
|
||||||
|
if (it == var_map().end()) {
|
||||||
|
std::unordered_set<unsigned> s;
|
||||||
|
s.insert(i_rm);
|
||||||
|
var_map()[j_var] = s;
|
||||||
|
} else {
|
||||||
|
it->second.insert(i_rm);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
void fill_rooted_monomials_containing_var() {
|
||||||
|
for (unsigned i = 0; i < vec().size(); i++) {
|
||||||
|
register_rooted_monomial_containing_vars(i);
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue