3
0
Fork 0
mirror of https://github.com/Z3Prover/z3 synced 2025-04-23 09:05:31 +00:00

fixup tabu checks to revised representation

This commit is contained in:
Nikolaj Bjorner 2025-01-05 14:24:41 -08:00
parent 71a4801c1d
commit b3e410b5e4
2 changed files with 9 additions and 18 deletions

View file

@ -217,10 +217,9 @@ namespace sls {
SASSERT(!has_overflow(src));
src.copy_to(nw, dst);
sup_feasible(dst);
if (in_range(dst)) {
SASSERT(can_set(dst));
if (can_set(dst))
return true;
}
if (dst < m_lo && m_lo < m_hi) // dst < lo < hi
return false;
if (is_zero(m_hi))
@ -238,10 +237,8 @@ namespace sls {
src.copy_to(nw, dst);
dst.set_bw(bw);
inf_feasible(dst);
if (in_range(dst)) {
SASSERT(can_set(dst));
return true;
}
if (can_set(dst))
return true;
if (dst > m_lo)
return false;
@ -350,10 +347,8 @@ namespace sls {
dst[i] = (~m_is_fixed[i] & dst[i]) | (m_is_fixed[i] & m_bits[i]);
clear_overflow_bits(dst);
repair_sign_bits(dst);
if (in_range(dst)) {
set(eval, dst);
if (try_set(dst))
return true;
}
bool repaired = false;
dst.set_bw(bw);
if (m_lo < m_hi) {
@ -373,10 +368,7 @@ namespace sls {
dst.set(i, false);
}
repair_sign_bits(dst);
if (in_range(dst)) {
set(eval, dst);
repaired = true;
}
repaired = try_set(dst);
dst.set_bw(0);
return repaired;
}
@ -450,10 +442,9 @@ namespace sls {
bool bv_valuation::set_random(random_gen& r) {
get_variant(m_tmp, r);
repair_sign_bits(m_tmp);
if (in_range(m_tmp)) {
set(eval, m_tmp);
if (try_set(m_tmp))
return true;
}
for (unsigned i = 0; i < nw; ++i)
m_tmp[i] = random_bits(r);
clear_overflow_bits(m_tmp);

View file

@ -336,7 +336,7 @@ namespace sls {
out << m_bits;
out << " ev: " << eval;
if (!is_zero(m_is_fixed))
out << " fix:" << m_is_fixed << " " << m_fixed_values;
out << " fixed bits: " << m_is_fixed << " fixed value: " << m_fixed_values;
if (m_lo != m_hi)
out << " [" << m_lo << ", " << m_hi << "[";
return out;