mirror of
https://github.com/Z3Prover/z3
synced 2025-06-27 08:28:44 +00:00
more readable intervals
This commit is contained in:
parent
9f1f949d9d
commit
eda6534453
3 changed files with 4 additions and 8 deletions
|
@ -1335,12 +1335,7 @@ namespace polysat {
|
||||||
}
|
}
|
||||||
|
|
||||||
std::ostream& num_pp::display(std::ostream& out) const {
|
std::ostream& num_pp::display(std::ostream& out) const {
|
||||||
rational const& p = rational::power_of_two(s.size(var));
|
return out << dd::val_pp(s.var2pdd(var), val, require_parens);
|
||||||
if (val > mod(-val, p))
|
|
||||||
out << -mod(-val, p);
|
|
||||||
else
|
|
||||||
out << val;
|
|
||||||
return out;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void solver::collect_statistics(statistics& st) const {
|
void solver::collect_statistics(statistics& st) const {
|
||||||
|
|
|
@ -542,8 +542,9 @@ namespace polysat {
|
||||||
solver const& s;
|
solver const& s;
|
||||||
pvar var;
|
pvar var;
|
||||||
rational const& val;
|
rational const& val;
|
||||||
|
bool require_parens;
|
||||||
public:
|
public:
|
||||||
num_pp(solver const& s, pvar var, rational const& val): s(s), var(var), val(val) {}
|
num_pp(solver const& s, pvar var, rational const& val, bool require_parens = false): s(s), var(var), val(val), require_parens(require_parens) {}
|
||||||
std::ostream& display(std::ostream& out) const;
|
std::ostream& display(std::ostream& out) const;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
|
@ -376,7 +376,7 @@ namespace polysat {
|
||||||
lo = val - lambda_l;
|
lo = val - lambda_l;
|
||||||
increase_hi(hi);
|
increase_hi(hi);
|
||||||
}
|
}
|
||||||
LOG("forbidden interval v" << v << " " << val << " " << e->coeff << " * " << e->interval << " [" << lo << ", " << hi << "[");
|
LOG("forbidden interval v" << v << " " << num_pp(s, v, val) << " " << num_pp(s, v, e->coeff, true) << " * " << e->interval << " [" << num_pp(s, v, lo) << ", " << num_pp(s, v, hi) << "[");
|
||||||
SASSERT(hi <= mod_value);
|
SASSERT(hi <= mod_value);
|
||||||
bool full = (lo == 0 && hi == mod_value);
|
bool full = (lo == 0 && hi == mod_value);
|
||||||
if (hi == mod_value)
|
if (hi == mod_value)
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue