3
0
Fork 0
mirror of https://github.com/Z3Prover/z3 synced 2025-04-08 10:25:18 +00:00

merge fixes

Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
This commit is contained in:
Nikolaj Bjorner 2016-01-03 14:12:45 -08:00
parent 0c03a87c82
commit 8e80fb830b

View file

@ -239,22 +239,15 @@ 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
unsigned loop = 0;
while (m_mpq_manager.ge(sig, pow)) {
m_mpq_manager.mul(pow, 2, pow);
while (m_mpq_manager.ge(sig, 2)) {
m_mpq_manager.div(sig, mpq(2), sig);
m_mpz_manager.inc(exp);
++loop;
}
if (loop > 0) {
m_mpq_manager.div(sig, pow, sig);
}
while (m_mpq_manager.lt(sig, 1)) {