3
0
Fork 0
mirror of https://github.com/Z3Prover/z3 synced 2025-04-24 17:45:32 +00:00

hide flag on registering variables

Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
This commit is contained in:
Nikolaj Bjorner 2020-03-12 19:57:57 -07:00 committed by Lev Nachmanson
parent 3e84d04719
commit b67d136849
3 changed files with 9 additions and 9 deletions

View file

@ -2344,11 +2344,14 @@ void lar_solver::deregister_normalized_term(const lar_term& t) {
}
void lar_solver::register_existing_terms() {
TRACE("nla_solver", tout << "registering " << m_terms.size() << " terms\n";);
for (unsigned k = 0; k < m_terms.size(); k++) {
lpvar j = m_var_register.external_to_local(k + m_terms_start_index);
register_normalized_term(*m_terms[k], j);
if (!m_need_register_terms) {
TRACE("nla_solver", tout << "registering " << m_terms.size() << " terms\n";);
for (unsigned k = 0; k < m_terms.size(); k++) {
lpvar j = m_var_register.external_to_local(k + m_terms_start_index);
register_normalized_term(*m_terms[k], j);
}
}
m_need_register_terms = true;
}
// a_j.first gives the normalised coefficient,
// a_j.second givis the column

View file

@ -87,6 +87,7 @@ public:
lar_core_solver m_mpq_lar_core_solver;
private:
int_solver * m_int_solver;
bool m_need_register_terms;
public:
const var_index m_terms_start_index;
var_register m_var_register;
@ -104,7 +105,6 @@ public:
stacked_value<unsigned> m_term_count;
vector<lar_term*> m_terms;
indexed_vector<mpq> m_column_buffer;
bool m_need_register_terms;
std::unordered_map<lar_term, std::pair<mpq, unsigned>, term_hasher, term_comparer>
m_normalized_terms_to_columns;
// end of fields

View file

@ -690,10 +690,7 @@ class theory_lra::imp {
TRACE("arith", tout << "v" << v << " := " << mk_pp(t, m) << "\n";);
if (!_has_var) {
if (m_solver->m_need_register_terms == false) {
m_solver->m_need_register_terms = true;
m_solver->register_existing_terms();
}
m_solver->register_existing_terms();
m_switcher.add_monic(register_theory_var_in_lar_solver(v), vars.size(), vars.c_ptr());
}
}