3
0
Fork 0
mirror of https://github.com/Z3Prover/z3 synced 2025-07-19 10:52:02 +00:00

fixing local search

Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
This commit is contained in:
Nikolaj Bjorner 2017-04-17 13:04:57 -07:00
parent 41e1b9f3fe
commit 352f8b6cb9
5 changed files with 32 additions and 23 deletions

View file

@ -115,12 +115,16 @@ namespace sat {
m_solvers[i] = alloc(sat::solver, s.m_params, m_limits[i]);
m_solvers[i]->copy(s);
m_solvers[i]->set_par(this, i);
m_scoped_rlimit.push_child(&m_solvers[i]->rlimit());
push_child(m_solvers[i]->rlimit());
}
s.set_par(this, num_extra_solvers);
s.m_params.set_sym("phase", saved_phase);
}
void parallel::push_child(reslimit& rl) {
m_scoped_rlimit.push_child(&rl);
}
void parallel::exchange(solver& s, literal_vector const& in, unsigned& limit, literal_vector& out) {
if (s.m_par_syncing_clauses) return;
@ -268,12 +272,6 @@ namespace sat {
{
if (m_solver_copy && s.num_non_binary_clauses() > m_solver_copy->m_clauses.size()) {
s.import(*m_solver_copy.get(), true);
m_num_clauses = s.num_non_binary_clauses();
SASSERT(s.num_non_binary_clauses() == m_solver_copy->m_clauses.size());
m_solver_copy = 0;
}
if (m_num_clauses < s.num_non_binary_clauses()) {
m_num_clauses = s.num_non_binary_clauses();
}
for (unsigned i = 0; i < m_phase.size(); ++i) {
s.set_phase(i, m_phase[i]);