diff --git a/src/api/python/z3rcf.py b/src/api/python/z3rcf.py index 66a6890c3..84c724910 100644 --- a/src/api/python/z3rcf.py +++ b/src/api/python/z3rcf.py @@ -51,7 +51,6 @@ def MkRoots(p, ctx=None): return r class RCFNum: - html = False def __init__(self, num, ctx=None): # TODO: add support for converting AST numeral values into RCFNum if isinstance(num, RCFNumObj): @@ -68,10 +67,10 @@ class RCFNum: return self.ctx.ref() def __repr__(self): - return Z3_rcf_num_to_string(self.ctx_ref(), self.num, False, RCFNum.html) + return Z3_rcf_num_to_string(self.ctx_ref(), self.num, False, in_html_mode()) def compact_str(self): - return Z3_rcf_num_to_string(self.ctx_ref(), self.num, True, RCFNum.html) + return Z3_rcf_num_to_string(self.ctx_ref(), self.num, True, in_html_mode()) def __add__(self, other): v = _to_rcfnum(other, self.ctx) diff --git a/src/math/realclosure/realclosure.cpp b/src/math/realclosure/realclosure.cpp index 8c6a1d232..87b1ef8a4 100644 --- a/src/math/realclosure/realclosure.cpp +++ b/src/math/realclosure/realclosure.cpp @@ -1300,7 +1300,7 @@ namespace realclosure { } void mk_infinitesimal(numeral & r) { - mk_infinitesimal(symbol(next_infinitesimal_idx()), symbol(next_infinitesimal_idx()), r); + mk_infinitesimal(symbol(next_infinitesimal_idx()+1), symbol(next_infinitesimal_idx()+1), r); } void refine_transcendental_interval(transcendental * t) { @@ -1352,7 +1352,7 @@ namespace realclosure { } void mk_transcendental(mk_interval & proc, numeral & r) { - mk_transcendental(symbol(next_transcendental_idx()), symbol(next_transcendental_idx()), proc, r); + mk_transcendental(symbol(next_transcendental_idx()+1), symbol(next_transcendental_idx()+1), proc, r); } void mk_pi(numeral & r) { diff --git a/src/util/ext_numeral.h b/src/util/ext_numeral.h index 83d326243..03a364bdb 100644 --- a/src/util/ext_numeral.h +++ b/src/util/ext_numeral.h @@ -339,7 +339,7 @@ void display_pp(std::ostream & out, ext_numeral_kind ak) { switch (ak) { case EN_MINUS_INFINITY: out << "-∞"; break; - case EN_NUMERAL: m.display(out, a); break; + case EN_NUMERAL: m.display_pp(out, a); break; case EN_PLUS_INFINITY: out << "+∞"; break; } } diff --git a/src/util/mpbq.cpp b/src/util/mpbq.cpp index ad2eae770..1ff7fb04d 100644 --- a/src/util/mpbq.cpp +++ b/src/util/mpbq.cpp @@ -399,6 +399,14 @@ void mpbq_manager::display(std::ostream & out, mpbq const & a) { out << "^" << a.m_k; } +void mpbq_manager::display_pp(std::ostream & out, mpbq const & a) { + out << m_manager.to_string(a.m_num); + if (a.m_k > 0) + out << "/2"; + if (a.m_k > 1) + out << "" << a.m_k << ""; +} + void mpbq_manager::display_smt2(std::ostream & out, mpbq const & a, bool decimal) { if (a.m_k == 0) { m_manager.display_smt2(out, a.m_num, decimal); diff --git a/src/util/mpbq.h b/src/util/mpbq.h index 3427ab59f..85332d02f 100644 --- a/src/util/mpbq.h +++ b/src/util/mpbq.h @@ -260,6 +260,7 @@ public: void display(std::ostream & out, mpbq const & a); + void display_pp(std::ostream & out, mpbq const & a); void display_decimal(std::ostream & out, mpbq const & a, unsigned prec = 8); /** \brief Display a in decimal while its digits match b digits. diff --git a/src/util/mpff.h b/src/util/mpff.h index 0295901c4..de71ec75e 100644 --- a/src/util/mpff.h +++ b/src/util/mpff.h @@ -464,6 +464,7 @@ public: void display_raw(std::ostream & out, mpff const & n) const; void display(std::ostream & out, mpff const & n) const; + void display_pp(std::ostream & out, mpff const & n) const { display(out, n); } void display_decimal(std::ostream & out, mpff const & n, unsigned prec=32, unsigned max_power=128) const; void display_smt2(std::ostream & out, mpff const & n, bool decimal=true) const; diff --git a/src/util/mpfx.h b/src/util/mpfx.h index 476da79e3..b4eeaebe6 100644 --- a/src/util/mpfx.h +++ b/src/util/mpfx.h @@ -382,6 +382,7 @@ public: unsigned prev_power_of_two(mpfx const & a); void display(std::ostream & out, mpfx const & n) const; + void display_pp(std::ostream & out, mpfx const & n) const { display(out, n); } void display_smt2(std::ostream & out, mpfx const & n) const; void display_decimal(std::ostream & out, mpfx const & n, unsigned prec = UINT_MAX) const; void display_raw(std::ostream & out, mpfx const & n) const; diff --git a/src/util/mpq.h b/src/util/mpq.h index 26a34aff6..0c94936ba 100644 --- a/src/util/mpq.h +++ b/src/util/mpq.h @@ -259,6 +259,7 @@ public: void display(std::ostream & out, mpz const & a) const { return mpz_manager::display(out, a); } void display(std::ostream & out, mpq const & a) const; + void display_pp(std::ostream & out, mpq const & a) const { display(out, a); } void display_smt2(std::ostream & out, mpz const & a, bool decimal) const { return mpz_manager::display_smt2(out, a, decimal); }