3
0
Fork 0
mirror of https://github.com/Z3Prover/z3 synced 2025-04-13 20:38:43 +00:00

improve tracing

Signed-off-by: Lev Nachmanson <levnach@hotmail.com>
This commit is contained in:
Lev Nachmanson 2019-07-29 11:06:47 -07:00
parent 9dbd8d3d46
commit b9483d0aff
3 changed files with 19 additions and 10 deletions

View file

@ -165,10 +165,10 @@ interv horner::interval_of_mul(const nex& e) {
interv c;
m_intervals.mul(a, b, c, comb_rule);
m_intervals.combine_deps(a, b, comb_rule, c);
TRACE("nla_horner_details", tout << "a "; m_intervals.display(tout, a) << "\n";);
TRACE("nla_horner_details", tout << "c "; m_intervals.display(tout, c) << "\n";);
TRACE("nla_horner_details", tout << "a "; m_intervals.display(tout, a););
TRACE("nla_horner_details", tout << "c "; m_intervals.display(tout, c););
m_intervals.set(a, c);
TRACE("nla_horner_details", tout << "part mult "; m_intervals.display(tout, a) << "\n";);
TRACE("nla_horner_details", tout << "part mult "; m_intervals.display(tout, a););
}
TRACE("nla_horner_details", tout << "e=" << e << "\n";
tout << " return "; m_intervals.display(tout, a););

View file

@ -275,14 +275,15 @@ std::ostream& core::print_monomial_with_vars(const monomial& m, std::ostream& ou
std::ostream& core::print_explanation(const lp::explanation& exp, std::ostream& out) const {
out << "expl: ";
unsigned i = 0;
for (auto &p : exp) {
out << "(" << p.second << ")";
m_lar_solver.print_constraint_indices_only_customized(p.second,
[this](lpvar j) { return var_str(j);},
out);
out << " ";
if (++i < exp.size())
out << " ";
}
out << "\n";
return out;
}

View file

@ -92,15 +92,23 @@ std::ostream& intervals::display(std::ostream& out, const interval& i) const {
m_dep_manager.linearize(i.m_lower_dep, expl);
{
lp::explanation e(expl);
out << "\nlower constraints\n";
m_core->print_explanation(e, out);
expl.clear();
if (!expl.empty()) {
out << "\nlower constraints\n";
m_core->print_explanation(e, out);
expl.clear();
} else {
out << "\nno lower constraints\n";
}
}
m_dep_manager.linearize(i.m_upper_dep, expl);
{
lp::explanation e(expl);
out << "upper constraints\n";
m_core->print_explanation(e, out);
if (!expl.empty()) {
out << "upper constraints\n";
m_core->print_explanation(e, out);
}else {
out << "no upper constraints\n";
}
}
return out;
}