3
0
Fork 0
mirror of https://github.com/Z3Prover/z3 synced 2025-04-10 19:27:06 +00:00

Add support of the SunOS platform (Solaris, OpenSolaris, OpenIndiana) ()

* Add support of the SunOS plateform (OpenSolaris, OpenIndiana) in scripts/mk_util.py

* Add missing casts for the SunOS plateform (OpenSolaris, OpenIndiana) for the pow function
This commit is contained in:
Pierre Bouvier 2020-10-27 19:39:21 +01:00 committed by GitHub
parent 9e9963d765
commit 24321e311b
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
7 changed files with 34 additions and 17 deletions

View file

@ -72,6 +72,7 @@ IS_OSX=False
IS_FREEBSD=False
IS_NETBSD=False
IS_OPENBSD=False
IS_SUNOS=False
IS_CYGWIN=False
IS_CYGWIN_MINGW=False
IS_MSYS2=False
@ -154,6 +155,9 @@ def is_netbsd():
def is_openbsd():
return IS_OPENBSD
def is_sunos():
return IS_SUNOS
def is_osx():
return IS_OSX
@ -488,7 +492,10 @@ def find_ml_lib():
def is64():
global LINUX_X64
return LINUX_X64 and sys.maxsize >= 2**32
if is_sunos() and sys.version_info.major < 3:
return LINUX_X64
else:
return LINUX_X64 and sys.maxsize >= 2**32
def check_ar():
if is_verbose():
@ -598,6 +605,8 @@ elif os.name == 'posix':
IS_NETBSD=True
elif os.uname()[0] == 'OpenBSD':
IS_OPENBSD=True
elif os.uname()[0] == 'SunOS':
IS_SUNOS=True
elif os.uname()[0][:6] == 'CYGWIN':
IS_CYGWIN=True
if (CC != None and "mingw" in CC):
@ -1768,6 +1777,8 @@ class JavaDLLComponent(Component):
t = t.replace('PLATFORM', 'netbsd')
elif IS_OPENBSD:
t = t.replace('PLATFORM', 'openbsd')
elif IS_SUNOS:
t = t.replace('PLATFORM', 'SunOS')
elif IS_CYGWIN:
t = t.replace('PLATFORM', 'cygwin')
elif IS_MSYS2:
@ -2514,6 +2525,12 @@ def mk_config():
OS_DEFINES = '-D_OPENBSD_'
SO_EXT = '.so'
SLIBFLAGS = '-shared'
elif sysname == 'SunOS':
CXXFLAGS = '%s -D_SUNOS_' % CXXFLAGS
OS_DEFINES = '-D_SUNOS_'
SO_EXT = '.so'
SLIBFLAGS = '-shared'
SLIBEXTRAFLAGS = '%s -mimpure-text' % SLIBEXTRAFLAGS
elif sysname.startswith('CYGWIN'):
CXXFLAGS = '%s -D_CYGWIN' % CXXFLAGS
OS_DEFINES = '-D_CYGWIN'

View file

@ -31,7 +31,7 @@
bigger (and only equal for values 0, 1).
*/
static void inverse_cantor(unsigned z, unsigned& x, unsigned& y) {
unsigned w = ((unsigned)sqrt(8*z + 1) - 1)/2;
unsigned w = ((unsigned)sqrt(static_cast<double>(8*z + 1)) - 1)/2;
unsigned t = (unsigned)(w*w + w)/2;
y = z - t;
x = w - y;

View file

@ -553,7 +553,7 @@ namespace sat {
}
}
unsigned len = n->size();
sum += pow(0.5, len) * to_add / len;
sum += pow(0.5, static_cast<double>(len)) * to_add / len;
}
return sum;
}
@ -575,7 +575,7 @@ namespace sat {
unsigned sz = m_nary_count[(~l).index()];
for (nary * n : m_nary[(~l).index()]) {
if (sz-- == 0) break;
sum += pow(0.5, n->size());
sum += pow(0.5, static_cast<double>(n->size()));
}
return sum;
}
@ -1490,14 +1490,14 @@ namespace sat {
to_add += literal_occs(lit);
}
}
m_lookahead_reward += pow(0.5, nonfixed) * to_add / nonfixed;
m_lookahead_reward += pow(0.5, static_cast<double>(nonfixed)) * to_add / nonfixed;
break;
}
case heule_unit_reward:
m_lookahead_reward += pow(0.5, nonfixed);
m_lookahead_reward += pow(0.5, static_cast<double>(nonfixed));
break;
case march_cu_reward:
m_lookahead_reward += nonfixed >= 2 ? 3.3 * pow(0.5, nonfixed - 2) : 0.0;
m_lookahead_reward += nonfixed >= 2 ? 3.3 * pow(0.5, static_cast<double>(nonfixed - 2)) : 0.0;
break;
case ternary_reward:
UNREACHABLE();
@ -1615,14 +1615,14 @@ namespace sat {
to_add += literal_occs(l);
}
}
m_lookahead_reward += pow(0.5, sz) * to_add / sz;
m_lookahead_reward += pow(0.5, static_cast<double>(sz)) * to_add / sz;
break;
}
case heule_unit_reward:
m_lookahead_reward += pow(0.5, sz);
m_lookahead_reward += pow(0.5, static_cast<double>(sz));
break;
case march_cu_reward:
m_lookahead_reward += 3.3 * pow(0.5, sz - 2);
m_lookahead_reward += 3.3 * pow(0.5, static_cast<double>(sz - 2));
break;
case ternary_reward:
m_lookahead_reward = (double)0.001;
@ -2125,7 +2125,7 @@ namespace sat {
}
}
for (nary * n : m_nary_clauses) {
h += 1.0 / pow(m_config.m_cube_psat_clause_base, n->size() - 1);
h += 1.0 / pow(m_config.m_cube_psat_clause_base, static_cast<double>(n->size() - 1));
}
h /= pow(m_freevars.size(), m_config.m_cube_psat_var_exp);
IF_VERBOSE(10, verbose_stream() << "(sat-cube-psat :val " << h << ")\n";);
@ -2189,7 +2189,7 @@ namespace sat {
backtrack_level = UINT_MAX;
depth = m_cube_state.m_cube.size();
if (should_cutoff(depth)) {
double dec = (1.0 - pow(m_config.m_cube_fraction, depth));
double dec = (1.0 - pow(m_config.m_cube_fraction, static_cast<double>(depth)));
m_cube_state.m_freevars_threshold *= dec;
m_cube_state.m_psat_threshold *= 2.0 - dec;
set_conflict();

View file

@ -958,7 +958,7 @@ namespace sat {
if (m_config.m_anti_exploration) {
uint64_t age = m_stats.m_conflict - m_canceled[v];
if (age > 0) {
double decay = pow(0.95, age);
double decay = pow(0.95, static_cast<double>(age));
set_activity(v, static_cast<unsigned>(m_activity[v] * decay));
// NB. MapleSAT does not update canceled.
m_canceled[v] = m_stats.m_conflict;
@ -1640,7 +1640,7 @@ namespace sat {
next = m_case_split_queue.min_var();
auto age = m_stats.m_conflict - m_canceled[next];
while (age > 0) {
set_activity(next, static_cast<unsigned>(m_activity[next] * pow(0.95, age)));
set_activity(next, static_cast<unsigned>(m_activity[next] * pow(0.95, static_cast<double>(age))));
m_canceled[next] = m_stats.m_conflict;
next = m_case_split_queue.min_var();
age = m_stats.m_conflict - m_canceled[next];

View file

@ -78,7 +78,7 @@ namespace ba {
}
}
if (k >= slack) return 1;
return pow(0.5, slack - k + 1) * to_add;
return pow(0.5, static_cast<double>(slack - k + 1)) * to_add;
}
std::ostream& card::display(std::ostream& out) const {

View file

@ -49,7 +49,7 @@ namespace smt {
}
}
if (!is_taut && nf > 0) {
score += pow(0.5, nu);
score += pow(0.5, static_cast<double>(nu));
}
}
return score;

View file

@ -327,7 +327,7 @@ class parallel_tactic : public tactic {
p.copy(m_params);
double exp = pp.simplify_exp();
exp = std::max(exp, 1.0);
unsigned mult = static_cast<unsigned>(pow(exp, m_depth - 1));
unsigned mult = static_cast<unsigned>(pow(exp, static_cast<double>(m_depth - 1)));
unsigned max_conflicts = pp.simplify_max_conflicts();
if (max_conflicts < 1000000)
max_conflicts *= std::max(m_depth, 1u);