mirror of
https://github.com/Z3Prover/z3
synced 2025-04-12 12:08:18 +00:00
fix #4110
This commit is contained in:
parent
d3094291d3
commit
dc852a6f83
|
@ -292,7 +292,7 @@ namespace algebraic_numbers {
|
||||||
return false; // we know for sure a is not a rational
|
return false; // we know for sure a is not a rational
|
||||||
TRACE("algebraic_bug", tout << "is_rational(a):\n"; display_root(tout, a); tout << "\n"; display_interval(tout, a); tout << "\n";);
|
TRACE("algebraic_bug", tout << "is_rational(a):\n"; display_root(tout, a); tout << "\n"; display_interval(tout, a); tout << "\n";);
|
||||||
algebraic_cell * c = a.to_algebraic();
|
algebraic_cell * c = a.to_algebraic();
|
||||||
save_intervals saved_a(*this, c);
|
save_intervals saved_a(*this, a);
|
||||||
mpz & a_n = c->m_p[c->m_p_sz - 1];
|
mpz & a_n = c->m_p[c->m_p_sz - 1];
|
||||||
scoped_mpz & abs_a_n = m_is_rational_tmp;
|
scoped_mpz & abs_a_n = m_is_rational_tmp;
|
||||||
qm().set(abs_a_n, a_n);
|
qm().set(abs_a_n, a_n);
|
||||||
|
@ -965,6 +965,7 @@ namespace algebraic_numbers {
|
||||||
if (m_num.is_basic())
|
if (m_num.is_basic())
|
||||||
return; // m_num is not algebraic anymore
|
return; // m_num is not algebraic anymore
|
||||||
algebraic_cell * cell = m_num.to_algebraic();
|
algebraic_cell * cell = m_num.to_algebraic();
|
||||||
|
|
||||||
if (m_owner.magnitude(cell) < m_owner.m_min_magnitude) {
|
if (m_owner.magnitude(cell) < m_owner.m_min_magnitude) {
|
||||||
// restore old interval
|
// restore old interval
|
||||||
m_owner.bqim().swap(cell->m_interval, m_old_interval);
|
m_owner.bqim().swap(cell->m_interval, m_old_interval);
|
||||||
|
|
Loading…
Reference in a new issue