mirror of
https://github.com/Z3Prover/z3
synced 2025-04-23 17:15:31 +00:00
delay evaluation of model, throttle propagation, introduce LUT results into cutset
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
This commit is contained in:
parent
7b2f6791bc
commit
2d59b81353
14 changed files with 112 additions and 84 deletions
|
@ -1525,12 +1525,12 @@ void mpz_manager<SYNCH>::big_set(mpz & target, mpz const & source) {
|
|||
template<bool SYNCH>
|
||||
int mpz_manager<SYNCH>::big_compare(mpz const & a, mpz const & b) {
|
||||
#ifndef _MP_GMP
|
||||
sign_cell ca(*this, a), cb(*this, b);
|
||||
|
||||
if (ca.sign() > 0) {
|
||||
if (sign(a) > 0) {
|
||||
// a is positive
|
||||
if (cb.sign() > 0) {
|
||||
if (sign(b) > 0) {
|
||||
// a & b are positive
|
||||
sign_cell ca(*this, a), cb(*this, b);
|
||||
return m_mpn_manager.compare(ca.cell()->m_digits, ca.cell()->m_size,
|
||||
cb.cell()->m_digits, cb.cell()->m_size);
|
||||
}
|
||||
|
@ -1541,12 +1541,13 @@ int mpz_manager<SYNCH>::big_compare(mpz const & a, mpz const & b) {
|
|||
}
|
||||
else {
|
||||
// a is negative
|
||||
if (cb.sign() > 0) {
|
||||
if (sign(b) > 0) {
|
||||
// b is positive
|
||||
return -1; // a < b
|
||||
}
|
||||
else {
|
||||
// a & b are negative
|
||||
sign_cell ca(*this, a), cb(*this, b);
|
||||
return m_mpn_manager.compare(cb.cell()->m_digits, cb.cell()->m_size,
|
||||
ca.cell()->m_digits, ca.cell()->m_size);
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue