mirror of
https://github.com/Z3Prover/z3
synced 2025-04-08 18:31:49 +00:00
Merge branch 'unstable' of https://git01.codeplex.com/z3 into unstable
This commit is contained in:
commit
47b81d2ec0
|
@ -4117,7 +4117,6 @@ namespace polynomial {
|
|||
polynomial_ref H(m_wrapper), C(m_wrapper);
|
||||
polynomial_ref lc_H(m_wrapper);
|
||||
unsigned min_deg_q = UINT_MAX;
|
||||
var next_x = vars[idx+1];
|
||||
unsigned counter = 0;
|
||||
|
||||
for (;; counter++) {
|
||||
|
@ -4137,7 +4136,7 @@ namespace polynomial {
|
|||
var q_var = max_var(q);
|
||||
unsigned deg_q = q_var == null_var ? 0 : degree(q, q_var);
|
||||
TRACE("mgcd_detail", tout << "counter: " << counter << "\nidx: " << idx << "\nq: " << q << "\ndeg_q: " << deg_q << "\nmin_deg_q: " <<
|
||||
min_deg_q << "\nnext_x: x" << next_x << "\nmax_var(q): " << q_var << "\n";);
|
||||
min_deg_q << "\nnext_x: x" << vars[idx+1] << "\nmax_var(q): " << q_var << "\n";);
|
||||
if (deg_q < min_deg_q) {
|
||||
TRACE("mgcd_detail", tout << "reseting...\n";);
|
||||
counter = 0;
|
||||
|
@ -5113,10 +5112,9 @@ namespace polynomial {
|
|||
monomial const * m_r = R.m(max_R);
|
||||
numeral const & a_r = R.a(max_R);
|
||||
monomial * m_r_q = 0;
|
||||
bool q_div_r = div(m_r, m_q, m_r_q);
|
||||
VERIFY(div(m_r, m_q, m_r_q));
|
||||
TRACE("polynomial", tout << "m_r: "; m_r->display(tout); tout << "\nm_q: "; m_q->display(tout); tout << "\n";
|
||||
if (m_r_q) { tout << "m_r_q: "; m_r_q->display(tout); tout << "\n"; });
|
||||
SASSERT(q_div_r);
|
||||
m_r_q_ref = m_r_q;
|
||||
m_manager.div(a_r, a_q, a_r_q);
|
||||
C.add(a_r_q, m_r_q); // C <- C + (a_r/a_q)*(m_r/m_q)
|
||||
|
|
|
@ -983,11 +983,8 @@ template<typename Ext>
|
|||
void theory_diff_logic<Ext>::get_eq_antecedents(
|
||||
theory_var v1, theory_var v2, unsigned timestamp, conflict_resolution & cr) {
|
||||
imp_functor functor(cr);
|
||||
bool r;
|
||||
r = m_graph.find_shortest_zero_edge_path(v1, v2, timestamp, functor);
|
||||
SASSERT(r);
|
||||
r = m_graph.find_shortest_zero_edge_path(v2, v1, timestamp, functor);
|
||||
SASSERT(r);
|
||||
VERIFY(m_graph.find_shortest_zero_edge_path(v1, v2, timestamp, functor));
|
||||
VERIFY(m_graph.find_shortest_zero_edge_path(v2, v1, timestamp, functor));
|
||||
}
|
||||
|
||||
template<typename Ext>
|
||||
|
|
|
@ -138,9 +138,8 @@ bool bit_vector::operator==(bit_vector const & source) const {
|
|||
bit_vector & bit_vector::operator|=(bit_vector const & source) {
|
||||
if (size() < source.size())
|
||||
resize(source.size(), false);
|
||||
unsigned n1 = num_words();
|
||||
unsigned n2 = source.num_words();
|
||||
SASSERT(n2 <= n1);
|
||||
SASSERT(n2 <= num_words());
|
||||
unsigned bit_rest = source.m_num_bits % 32;
|
||||
if (bit_rest == 0) {
|
||||
unsigned i = 0;
|
||||
|
|
|
@ -120,7 +120,8 @@ void mpf_manager::set(mpf & o, unsigned ebits, unsigned sbits, double value) {
|
|||
// double === mpf(11, 53)
|
||||
COMPILE_TIME_ASSERT(sizeof(double) == 8);
|
||||
|
||||
uint64 raw = *reinterpret_cast<uint64*>(&value);
|
||||
uint64 raw;
|
||||
memcpy(&raw, &value, sizeof(double));
|
||||
bool sign = (raw >> 63) != 0;
|
||||
int64 e = ((raw & 0x7FF0000000000000ull) >> 52) - 1023;
|
||||
uint64 s = raw & 0x000FFFFFFFFFFFFFull;
|
||||
|
@ -155,7 +156,8 @@ void mpf_manager::set(mpf & o, unsigned ebits, unsigned sbits, float value) {
|
|||
// single === mpf(8, 24)
|
||||
COMPILE_TIME_ASSERT(sizeof(float) == 4);
|
||||
|
||||
unsigned int raw = *reinterpret_cast<unsigned int*>(&value);
|
||||
unsigned int raw;
|
||||
memcpy(&raw, &value, sizeof(float));
|
||||
bool sign = (raw >> 31) != 0;
|
||||
signed int e = ((raw & 0x7F800000) >> 23) - 127;
|
||||
unsigned int s = raw & 0x007FFFFF;
|
||||
|
@ -1288,7 +1290,9 @@ double mpf_manager::to_double(mpf const & x) {
|
|||
if (x.sign)
|
||||
raw = raw | 0x8000000000000000ull;
|
||||
|
||||
return *reinterpret_cast<double*>(&raw);
|
||||
double ret;
|
||||
memcpy(&ret, &raw, sizeof(double));
|
||||
return ret;
|
||||
}
|
||||
|
||||
float mpf_manager::to_float(mpf const & x) {
|
||||
|
@ -1318,7 +1322,9 @@ float mpf_manager::to_float(mpf const & x) {
|
|||
if (x.sign)
|
||||
raw = raw | 0x80000000;
|
||||
|
||||
return *reinterpret_cast<float*>(&raw);
|
||||
float ret;
|
||||
memcpy(&ret, &raw, sizeof(float));
|
||||
return ret;
|
||||
}
|
||||
|
||||
bool mpf_manager::is_nan(mpf const & x) {
|
||||
|
@ -1679,7 +1685,7 @@ void mpf_manager::round(mpf_rounding_mode rm, mpf & o) {
|
|||
TRACE("mpf_dbg", tout << "OVF2 = " << OVF2 << std::endl;);
|
||||
TRACE("mpf_dbg", tout << "o_has_max_exp = " << o_has_max_exp << std::endl;);
|
||||
|
||||
if (!OVFen && SIGovf && o_has_max_exp)
|
||||
if (!OVFen && OVF2)
|
||||
mk_round_inf(rm, o);
|
||||
else {
|
||||
const mpz & p = m_powers2(o.sbits-1);
|
||||
|
|
|
@ -43,8 +43,7 @@ mpff_manager::mpff_manager(unsigned prec, unsigned initial_capacity) {
|
|||
for (unsigned i = 0; i < MPFF_NUM_BUFFERS; i++)
|
||||
m_buffers[i].resize(2 * prec, 0);
|
||||
// Reserve space for zero
|
||||
unsigned zero_sig_idx = m_id_gen.mk();
|
||||
SASSERT(zero_sig_idx == 0);
|
||||
VERIFY(m_id_gen.mk() == 0);
|
||||
set(m_one, 1);
|
||||
}
|
||||
|
||||
|
|
|
@ -38,8 +38,7 @@ mpfx_manager::mpfx_manager(unsigned int_sz, unsigned frac_sz, unsigned initial_c
|
|||
m_buffer0.resize(2*m_total_sz, 0);
|
||||
m_buffer1.resize(2*m_total_sz, 0);
|
||||
m_buffer2.resize(2*m_total_sz, 0);
|
||||
unsigned zero_sig_idx = m_id_gen.mk();
|
||||
SASSERT(zero_sig_idx == 0);
|
||||
VERIFY(m_id_gen.mk() == 0);
|
||||
set(m_one, 1);
|
||||
}
|
||||
|
||||
|
|
|
@ -24,9 +24,6 @@ Revision History:
|
|||
#include<iostream>
|
||||
#include<climits>
|
||||
#include<limits>
|
||||
#ifdef _MSC_VER
|
||||
#include<intrin.h>
|
||||
#endif
|
||||
|
||||
#ifndef SIZE_MAX
|
||||
#define SIZE_MAX std::numeric_limits<std::size_t>::max()
|
||||
|
@ -99,9 +96,7 @@ COMPILE_TIME_ASSERT(sizeof(unsigned) == 4);
|
|||
|
||||
// Return the number of 1 bits in v.
|
||||
static inline unsigned get_num_1bits(unsigned v) {
|
||||
#ifdef _MSC_VER
|
||||
return __popcnt(v);
|
||||
#elif defined(__GNUC__)
|
||||
#ifdef __GNUC__
|
||||
return __builtin_popcount(v);
|
||||
#else
|
||||
#ifdef Z3DEBUG
|
||||
|
|
Loading…
Reference in a new issue