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

add debugging facilities for github issues #384 #367

Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
This commit is contained in:
Nikolaj Bjorner 2015-12-22 10:43:18 -08:00
parent 65da0f9f3a
commit 9c6271dded
14 changed files with 529 additions and 479 deletions

View file

@ -239,16 +239,26 @@ void mpf_manager::set(mpf & o, unsigned ebits, unsigned sbits, mpf_rounding_mode
else {
scoped_mpq sig(m_mpq_manager);
scoped_mpz exp(m_mpq_manager);
scoped_mpq pow(m_mpq_manager);
m_mpq_manager.set(sig, significand);
m_mpq_manager.abs(sig);
m_mpz_manager.set(exp, exponent);
m_mpq_manager.set(pow, mpq(2));
// Normalize
while (m_mpq_manager.ge(sig, 2)) {
m_mpq_manager.div(sig, mpq(2), sig);
unsigned loop = 0;
while (m_mpq_manager.ge(sig, pow)) {
m_mpq_manager.mul(pow, 2, pow);
m_mpz_manager.inc(exp);
++loop;
if (loop % 1000 == 0) std::cout << loop << "\n";
}
std::cout << loop << "\n";
if (loop > 0) {
m_mpq_manager.div(sig, pow, sig);
}
std::cout << loop << "\n";
while (m_mpq_manager.lt(sig, 1)) {
m_mpq_manager.mul(sig, 2, sig);