mirror of
https://github.com/Z3Prover/z3
synced 2026-07-03 22:06:11 +00:00
Standardize for-loop increments to prefix form (++i) (#8199)
* Initial plan * Convert postfix to prefix increment in for loops Co-authored-by: NikolajBjorner <3085284+NikolajBjorner@users.noreply.github.com> * Fix member variable increment conversion bug Co-authored-by: NikolajBjorner <3085284+NikolajBjorner@users.noreply.github.com> * Update API generator to produce prefix increments Co-authored-by: NikolajBjorner <3085284+NikolajBjorner@users.noreply.github.com> --------- Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com> Co-authored-by: NikolajBjorner <3085284+NikolajBjorner@users.noreply.github.com>
This commit is contained in:
parent
1bf463d77a
commit
2436943794
475 changed files with 3237 additions and 3237 deletions
|
|
@ -41,7 +41,7 @@ bvsls_opt_engine::optimization_result bvsls_opt_engine::optimize(
|
|||
|
||||
if (initial_model.get() != nullptr) {
|
||||
TRACE(sls_opt, tout << "Initial model provided: " << std::endl;
|
||||
for (unsigned i = 0; i < initial_model->get_num_constants(); i++) {
|
||||
for (unsigned i = 0; i < initial_model->get_num_constants(); ++i) {
|
||||
func_decl * fd = initial_model->get_constant(i);
|
||||
expr * val = initial_model->get_const_interp(fd);
|
||||
tout << fd->get_name() << " := " << mk_ismt2_pp(val, m()) << std::endl;
|
||||
|
|
@ -57,7 +57,7 @@ bvsls_opt_engine::optimization_result bvsls_opt_engine::optimize(
|
|||
|
||||
for (m_stats.m_restarts = 0;
|
||||
m_stats.m_restarts < m_max_restarts;
|
||||
m_stats.m_restarts++)
|
||||
++m_stats.m_restarts)
|
||||
{
|
||||
mpz old_best;
|
||||
m_mpz_manager.set(old_best, m_best_model_score);
|
||||
|
|
@ -178,7 +178,7 @@ void bvsls_opt_engine::save_model(mpz const & score) {
|
|||
model_ref mdl = m_hard_tracker.get_model();
|
||||
model_ref obj_mdl = m_obj_tracker.get_model();
|
||||
|
||||
for (unsigned i = 0; i < obj_mdl->get_num_constants(); i++) {
|
||||
for (unsigned i = 0; i < obj_mdl->get_num_constants(); ++i) {
|
||||
func_decl * fd = obj_mdl->get_constant(i);
|
||||
expr * val = obj_mdl->get_const_interp(fd);
|
||||
if (mdl->has_interpretation(fd)) {
|
||||
|
|
@ -252,14 +252,14 @@ mpz bvsls_opt_engine::find_best_move(
|
|||
mpz new_score;
|
||||
m_mpz_manager.set(new_score, score);
|
||||
|
||||
for (unsigned i = 0; i < to_evaluate.size() && m_mpz_manager.lt(new_score, max_score); i++) {
|
||||
for (unsigned i = 0; i < to_evaluate.size() && m_mpz_manager.lt(new_score, max_score); ++i) {
|
||||
func_decl * fd = to_evaluate[i];
|
||||
sort * srt = fd->get_range();
|
||||
bv_sz = (m_manager.is_bool(srt)) ? 1 : m_bv_util.get_bv_size(srt);
|
||||
m_mpz_manager.set(old_value, m_obj_tracker.get_value(fd));
|
||||
|
||||
// first try to flip every bit
|
||||
for (unsigned j = 0; j < bv_sz && m_mpz_manager.lt(new_score, max_score); j++) {
|
||||
for (unsigned j = 0; j < bv_sz && m_mpz_manager.lt(new_score, max_score); ++j) {
|
||||
// What would happen if we flipped bit #i ?
|
||||
mk_flip(srt, old_value, j, temp);
|
||||
|
||||
|
|
|
|||
|
|
@ -59,7 +59,7 @@ protected:
|
|||
obj_hashtable<expr> const & top_exprs = m_obj_tracker.get_top_exprs();
|
||||
for (obj_hashtable<expr>::iterator it = top_exprs.begin();
|
||||
it != top_exprs.end();
|
||||
it++)
|
||||
++it)
|
||||
m_mpz_manager.add(res, m_obj_tracker.get_value(*it), res);
|
||||
return res;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -269,7 +269,7 @@ void sls_engine::mk_random_move(ptr_vector<func_decl> & unsat_constants)
|
|||
}
|
||||
|
||||
TRACE(sls, tout << "Randomization candidates: ";
|
||||
for (unsigned i = 0; i < unsat_constants.size(); i++)
|
||||
for (unsigned i = 0; i < unsat_constants.size(); ++i)
|
||||
tout << unsat_constants[i]->get_name() << ", ";
|
||||
tout << std::endl;
|
||||
tout << "Random move: ";
|
||||
|
|
@ -302,17 +302,17 @@ double sls_engine::find_best_move(
|
|||
// Andreas: Introducting a bit of randomization by using a random offset and a random direction to go through the candidate list.
|
||||
unsigned sz = to_evaluate.size();
|
||||
unsigned offset = (m_random_offset) ? m_tracker.get_random_uint(16) % sz : 0;
|
||||
for (unsigned j = 0; j < sz; j++) {
|
||||
for (unsigned j = 0; j < sz; ++j) {
|
||||
unsigned i = j + offset;
|
||||
if (i >= sz) i -= sz;
|
||||
//for (unsigned i = 0; i < to_evaluate.size(); i++) {
|
||||
//for (unsigned i = 0; i < to_evaluate.size(); ++i) {
|
||||
func_decl * fd = to_evaluate[i];
|
||||
sort * srt = fd->get_range();
|
||||
bv_sz = (m_manager.is_bool(srt)) ? 1 : m_bv_util.get_bv_size(srt);
|
||||
m_mpz_manager.set(old_value, m_tracker.get_value(fd));
|
||||
|
||||
// first try to flip every bit
|
||||
for (unsigned j = 0; j < bv_sz; j++) {
|
||||
for (unsigned j = 0; j < bv_sz; ++j) {
|
||||
// What would happen if we flipped bit #i ?
|
||||
mk_flip(srt, old_value, j, temp);
|
||||
|
||||
|
|
@ -360,19 +360,19 @@ double sls_engine::find_best_move_mc(ptr_vector<func_decl> & to_evaluate, double
|
|||
// Andreas: Introducting a bit of randomization by using a random offset and a random direction to go through the candidate list.
|
||||
unsigned sz = to_evaluate.size();
|
||||
unsigned offset = (m_random_offset) ? m_tracker.get_random_uint(16) % sz : 0;
|
||||
for (unsigned j = 0; j < sz; j++) {
|
||||
for (unsigned j = 0; j < sz; ++j) {
|
||||
unsigned i = j + offset;
|
||||
if (i >= sz) i -= sz;
|
||||
//for (unsigned i = 0; i < to_evaluate.size(); i++) {
|
||||
//for (unsigned i = 0; i < to_evaluate.size(); ++i) {
|
||||
func_decl * fd = to_evaluate[i];
|
||||
sort * srt = fd->get_range();
|
||||
bv_sz = (m_manager.is_bool(srt)) ? 1 : m_bv_util.get_bv_size(srt);
|
||||
m_mpz_manager.set(old_value, m_tracker.get_value(fd));
|
||||
|
||||
if (m_bv_util.is_bv_sort(srt) && bv_sz > 2) {
|
||||
for (unsigned j = 0; j < bv_sz; j++) {
|
||||
for (unsigned j = 0; j < bv_sz; ++j) {
|
||||
mk_flip(srt, old_value, j, temp);
|
||||
for (unsigned l = 0; l < m_vns_mc && l < bv_sz / 2; l++)
|
||||
for (unsigned l = 0; l < m_vns_mc && l < bv_sz / 2; ++l)
|
||||
{
|
||||
unsigned k = m_tracker.get_random_uint(16) % bv_sz;
|
||||
while (k == j)
|
||||
|
|
|
|||
|
|
@ -76,7 +76,7 @@ public:
|
|||
switch (n->get_decl_kind()) {
|
||||
case OP_AND: {
|
||||
m_mpz_manager.set(result, m_one);
|
||||
for (unsigned i = 0; i < n_args; i++)
|
||||
for (unsigned i = 0; i < n_args; ++i)
|
||||
if (m_mpz_manager.neq(m_tracker.get_value(args[i]), result)) {
|
||||
m_mpz_manager.set(result, m_zero);
|
||||
break;
|
||||
|
|
@ -84,7 +84,7 @@ public:
|
|||
break;
|
||||
}
|
||||
case OP_OR: {
|
||||
for (unsigned i = 0; i < n_args; i++)
|
||||
for (unsigned i = 0; i < n_args; ++i)
|
||||
if (m_mpz_manager.neq(m_tracker.get_value(args[i]), result)) {
|
||||
m_mpz_manager.set(result, m_one);
|
||||
break;
|
||||
|
|
@ -102,7 +102,7 @@ public:
|
|||
SASSERT(n_args >= 2);
|
||||
m_mpz_manager.set(result, m_one);
|
||||
const mpz & first = m_tracker.get_value(args[0]);
|
||||
for (unsigned i = 1; i < n_args; i++)
|
||||
for (unsigned i = 1; i < n_args; ++i)
|
||||
if (m_mpz_manager.neq(m_tracker.get_value(args[i]), first)) {
|
||||
m_mpz_manager.set(result, m_zero);
|
||||
break;
|
||||
|
|
@ -111,8 +111,8 @@ public:
|
|||
}
|
||||
case OP_DISTINCT: {
|
||||
m_mpz_manager.set(result, m_one);
|
||||
for (unsigned i = 0; i < n_args && m_mpz_manager.is_one(result); i++) {
|
||||
for (unsigned j = i+1; j < n_args && m_mpz_manager.is_one(result); j++) {
|
||||
for (unsigned i = 0; i < n_args && m_mpz_manager.is_one(result); ++i) {
|
||||
for (unsigned j = i+1; j < n_args && m_mpz_manager.is_one(result); ++j) {
|
||||
if (m_mpz_manager.eq(m_tracker.get_value(args[i]), m_tracker.get_value(args[j])))
|
||||
m_mpz_manager.set(result, m_zero);
|
||||
}
|
||||
|
|
@ -136,7 +136,7 @@ public:
|
|||
switch(k) {
|
||||
case OP_CONCAT: {
|
||||
SASSERT(n_args >= 2);
|
||||
for (unsigned i = 0; i < n_args; i++) {
|
||||
for (unsigned i = 0; i < n_args; ++i) {
|
||||
if (i != 0) {
|
||||
const mpz & p = m_powers(m_bv_util.get_bv_size(args[i]));
|
||||
m_mpz_manager.mul(result, p, result);
|
||||
|
|
@ -157,7 +157,7 @@ public:
|
|||
}
|
||||
case OP_BADD: {
|
||||
SASSERT(n_args >= 2);
|
||||
for (unsigned i = 0; i < n_args; i++) {
|
||||
for (unsigned i = 0; i < n_args; ++i) {
|
||||
const mpz & next = m_tracker.get_value(args[i]);
|
||||
m_mpz_manager.add(result, next, result);
|
||||
}
|
||||
|
|
@ -177,7 +177,7 @@ public:
|
|||
case OP_BMUL: {
|
||||
SASSERT(n_args >= 2);
|
||||
m_mpz_manager.set(result, m_tracker.get_value(args[0]));
|
||||
for (unsigned i = 1; i < n_args; i++) {
|
||||
for (unsigned i = 1; i < n_args; ++i) {
|
||||
const mpz & next = m_tracker.get_value(args[i]);
|
||||
m_mpz_manager.mul(result, next, result);
|
||||
}
|
||||
|
|
@ -341,14 +341,14 @@ public:
|
|||
case OP_BAND: {
|
||||
SASSERT(n_args >= 2);
|
||||
m_mpz_manager.set(result, m_tracker.get_value(args[0]));
|
||||
for (unsigned i = 1; i < n_args; i++)
|
||||
for (unsigned i = 1; i < n_args; ++i)
|
||||
m_mpz_manager.bitwise_and(result, m_tracker.get_value(args[i]), result);
|
||||
break;
|
||||
}
|
||||
case OP_BOR: {
|
||||
SASSERT(n_args >= 2);
|
||||
m_mpz_manager.set(result, m_tracker.get_value(args[0]));
|
||||
for (unsigned i = 1; i < n_args; i++) {
|
||||
for (unsigned i = 1; i < n_args; ++i) {
|
||||
m_mpz_manager.bitwise_or(result, m_tracker.get_value(args[i]), result);
|
||||
}
|
||||
break;
|
||||
|
|
@ -356,7 +356,7 @@ public:
|
|||
case OP_BXOR: {
|
||||
SASSERT(n_args >= 2);
|
||||
m_mpz_manager.set(result, m_tracker.get_value(args[0]));
|
||||
for (unsigned i = 1; i < n_args; i++)
|
||||
for (unsigned i = 1; i < n_args; ++i)
|
||||
m_mpz_manager.bitwise_xor(result, m_tracker.get_value(args[i]), result);
|
||||
break;
|
||||
}
|
||||
|
|
@ -365,7 +365,7 @@ public:
|
|||
mpz temp;
|
||||
unsigned bv_sz = m_bv_util.get_bv_size(n);
|
||||
m_mpz_manager.set(result, m_tracker.get_value(args[0]));
|
||||
for (unsigned i = 1; i < n_args; i++) {
|
||||
for (unsigned i = 1; i < n_args; ++i) {
|
||||
m_mpz_manager.bitwise_and(result, m_tracker.get_value(args[i]), temp);
|
||||
m_mpz_manager.bitwise_not(bv_sz, temp, result);
|
||||
}
|
||||
|
|
@ -377,7 +377,7 @@ public:
|
|||
mpz temp;
|
||||
unsigned bv_sz = m_bv_util.get_bv_size(n);
|
||||
m_mpz_manager.set(result, m_tracker.get_value(args[0]));
|
||||
for (unsigned i = 1; i < n_args; i++) {
|
||||
for (unsigned i = 1; i < n_args; ++i) {
|
||||
m_mpz_manager.bitwise_or(result, m_tracker.get_value(args[i]), temp);
|
||||
m_mpz_manager.bitwise_not(bv_sz, temp, result);
|
||||
}
|
||||
|
|
@ -495,7 +495,7 @@ public:
|
|||
}
|
||||
|
||||
TRACE(sls_eval, tout << "(" << fd->get_name();
|
||||
for (unsigned i = 0; i < n_args; i++)
|
||||
for (unsigned i = 0; i < n_args; ++i)
|
||||
tout << " " << m_mpz_manager.to_string(m_tracker.get_value(args[i]));
|
||||
tout << ") ---> " << m_mpz_manager.to_string(result);
|
||||
if (m_manager.is_bool(fd->get_range())) tout << " [Boolean]";
|
||||
|
|
@ -513,7 +513,7 @@ public:
|
|||
|
||||
unsigned n_args = a->get_num_args();
|
||||
m_temp_exprs.reset();
|
||||
for (unsigned i = 0; i < n_args; i++) {
|
||||
for (unsigned i = 0; i < n_args; ++i) {
|
||||
expr * arg = a->get_arg(i);
|
||||
const mpz & v = m_tracker.get_value(arg);
|
||||
m_temp_exprs.push_back(m_tracker.mpz2value(arg->get_sort(), v));
|
||||
|
|
@ -549,7 +549,7 @@ public:
|
|||
while (cur_depth != static_cast<unsigned>(-1)) {
|
||||
ptr_vector<expr> & cur_depth_exprs = m_traversal_stack[cur_depth];
|
||||
|
||||
for (unsigned i = 0; i < cur_depth_exprs.size(); i++) {
|
||||
for (unsigned i = 0; i < cur_depth_exprs.size(); ++i) {
|
||||
expr * cur = cur_depth_exprs[i];
|
||||
|
||||
(*this)(to_app(cur), new_value);
|
||||
|
|
@ -570,7 +570,7 @@ public:
|
|||
|
||||
if (m_tracker.has_uplinks(cur)) {
|
||||
ptr_vector<expr> & ups = m_tracker.get_uplinks(cur);
|
||||
for (unsigned j = 0; j < ups.size(); j++) {
|
||||
for (unsigned j = 0; j < ups.size(); ++j) {
|
||||
expr * next = ups[j];
|
||||
unsigned next_d = m_tracker.get_distance(next);
|
||||
SASSERT(next_d < cur_depth);
|
||||
|
|
@ -600,7 +600,7 @@ public:
|
|||
while (cur_depth != static_cast<unsigned>(-1)) {
|
||||
ptr_vector<expr> & cur_depth_exprs = m_traversal_stack[cur_depth];
|
||||
|
||||
for (unsigned i = 0; i < cur_depth_exprs.size(); i++) {
|
||||
for (unsigned i = 0; i < cur_depth_exprs.size(); ++i) {
|
||||
expr * cur = cur_depth_exprs[i];
|
||||
|
||||
(*this)(to_app(cur), new_value);
|
||||
|
|
@ -611,7 +611,7 @@ public:
|
|||
m_tracker.set_score(cur, new_score);
|
||||
if (m_tracker.has_uplinks(cur)) {
|
||||
ptr_vector<expr> & ups = m_tracker.get_uplinks(cur);
|
||||
for (unsigned j = 0; j < ups.size(); j++) {
|
||||
for (unsigned j = 0; j < ups.size(); ++j) {
|
||||
expr * next = ups[j];
|
||||
unsigned next_d = m_tracker.get_distance(next);
|
||||
SASSERT(next_d < cur_depth);
|
||||
|
|
@ -672,7 +672,7 @@ public:
|
|||
|
||||
ptr_vector<expr> & cur_depth_exprs = m_traversal_stack_bool[cur_depth];
|
||||
|
||||
for (unsigned i = 0; i < cur_depth_exprs.size(); i++) {
|
||||
for (unsigned i = 0; i < cur_depth_exprs.size(); ++i) {
|
||||
expr * cur = cur_depth_exprs[i];
|
||||
|
||||
new_score = m_tracker.score(cur);
|
||||
|
|
@ -689,7 +689,7 @@ public:
|
|||
|
||||
if (m_tracker.has_uplinks(cur)) {
|
||||
ptr_vector<expr> & ups = m_tracker.get_uplinks(cur);
|
||||
for (unsigned j = 0; j < ups.size(); j++) {
|
||||
for (unsigned j = 0; j < ups.size(); ++j) {
|
||||
expr * next = ups[j];
|
||||
unsigned next_d = m_tracker.get_distance(next);
|
||||
SASSERT(next_d < cur_depth);
|
||||
|
|
@ -709,7 +709,7 @@ public:
|
|||
if (pot_benefits)
|
||||
{
|
||||
unsigned cur_size = cur_depth_exprs.size();
|
||||
for (unsigned i = 0; i < cur_size; i++) {
|
||||
for (unsigned i = 0; i < cur_size; ++i) {
|
||||
expr * cur = cur_depth_exprs[i];
|
||||
|
||||
new_score = m_tracker.score(cur);
|
||||
|
|
@ -719,7 +719,7 @@ public:
|
|||
|
||||
if (m_tracker.has_uplinks(cur)) {
|
||||
ptr_vector<expr> & ups = m_tracker.get_uplinks(cur);
|
||||
for (unsigned j = 0; j < ups.size(); j++) {
|
||||
for (unsigned j = 0; j < ups.size(); ++j) {
|
||||
expr * next = ups[j];
|
||||
unsigned next_d = m_tracker.get_distance(next);
|
||||
SASSERT(next_d < cur_depth);
|
||||
|
|
@ -748,7 +748,7 @@ public:
|
|||
while (cur_depth != static_cast<unsigned>(-1)) {
|
||||
ptr_vector<expr> & cur_depth_exprs = m_traversal_stack[cur_depth];
|
||||
|
||||
for (unsigned i = 0; i < cur_depth_exprs.size(); i++) {
|
||||
for (unsigned i = 0; i < cur_depth_exprs.size(); ++i) {
|
||||
expr * cur = cur_depth_exprs[i];
|
||||
|
||||
(*this)(to_app(cur), new_value);
|
||||
|
|
@ -756,7 +756,7 @@ public:
|
|||
// Andreas: Should actually always have uplinks ...
|
||||
if (m_tracker.has_uplinks(cur)) {
|
||||
ptr_vector<expr> & ups = m_tracker.get_uplinks(cur);
|
||||
for (unsigned j = 0; j < ups.size(); j++) {
|
||||
for (unsigned j = 0; j < ups.size(); ++j) {
|
||||
expr * next = ups[j];
|
||||
unsigned next_d = m_tracker.get_distance(next);
|
||||
SASSERT(next_d < cur_depth);
|
||||
|
|
|
|||
|
|
@ -155,12 +155,12 @@ public:
|
|||
double sum = 0.0;
|
||||
unsigned count = 0;
|
||||
|
||||
for (unsigned i = 0; i < g->size(); i++)
|
||||
for (unsigned i = 0; i < g->size(); ++i)
|
||||
{
|
||||
m_temp_constants.reset();
|
||||
ptr_vector<func_decl> const & this_decls = m_constants_occ.find(g->form(i));
|
||||
unsigned sz = this_decls.size();
|
||||
for (unsigned i = 0; i < sz; i++) {
|
||||
for (unsigned i = 0; i < sz; ++i) {
|
||||
func_decl * fd = this_decls[i];
|
||||
m_temp_constants.push_back(fd);
|
||||
sort * srt = fd->get_range();
|
||||
|
|
@ -294,7 +294,7 @@ public:
|
|||
expr * e;
|
||||
unsigned touched_old, touched_new;
|
||||
|
||||
for (unsigned i = 0; i < as.size(); i++)
|
||||
for (unsigned i = 0; i < as.size(); ++i)
|
||||
{
|
||||
e = as[i];
|
||||
touched_old = m_scores.find(e).touched;
|
||||
|
|
@ -380,7 +380,7 @@ public:
|
|||
// precondition: m_scores is set up.
|
||||
unsigned sz = as.size();
|
||||
ptr_vector<app> stack;
|
||||
for (unsigned i = 0; i < sz; i++)
|
||||
for (unsigned i = 0; i < sz; ++i)
|
||||
stack.push_back(to_app(as[i]));
|
||||
while (!stack.empty()) {
|
||||
app * cur = stack.back();
|
||||
|
|
@ -388,7 +388,7 @@ public:
|
|||
|
||||
unsigned d = get_distance(cur);
|
||||
|
||||
for (unsigned i = 0; i < cur->get_num_args(); i++) {
|
||||
for (unsigned i = 0; i < cur->get_num_args(); ++i) {
|
||||
app * child = to_app(cur->get_arg(i));
|
||||
unsigned d_child = get_distance(child);
|
||||
if (d >= d_child) {
|
||||
|
|
@ -406,7 +406,7 @@ public:
|
|||
app * a = to_app(e);
|
||||
expr * const * args = a->get_args();
|
||||
unsigned int sz = a->get_num_args();
|
||||
for (unsigned int i = 0; i < sz; i++) {
|
||||
for (unsigned int i = 0; i < sz; ++i) {
|
||||
expr * q = args[i];
|
||||
initialize_recursive(proc, visited, q);
|
||||
}
|
||||
|
|
@ -419,7 +419,7 @@ public:
|
|||
app * a = to_app(e);
|
||||
expr * const * args = a->get_args();
|
||||
unsigned int sz = a->get_num_args();
|
||||
for (unsigned int i = 0; i < sz; i++) {
|
||||
for (unsigned int i = 0; i < sz; ++i) {
|
||||
expr * q = args[i];
|
||||
initialize_recursive(q);
|
||||
}
|
||||
|
|
@ -458,7 +458,7 @@ public:
|
|||
if (m_track_unsat)
|
||||
{
|
||||
m_list_false = new expr*[sz];
|
||||
for (unsigned i = 0; i < sz; i++)
|
||||
for (unsigned i = 0; i < sz; ++i)
|
||||
{
|
||||
if (m_mpz_manager.eq(get_value(as[i]), m_zero))
|
||||
break_assertion(as[i]);
|
||||
|
|
@ -529,14 +529,14 @@ public:
|
|||
|
||||
void show_model(std::ostream & out) {
|
||||
unsigned sz = get_num_constants();
|
||||
for (unsigned i = 0; i < sz; i++) {
|
||||
for (unsigned i = 0; i < sz; ++i) {
|
||||
func_decl * fd = get_constant(i);
|
||||
out << fd->get_name() << " = " << m_mpz_manager.to_string(get_value(fd)) << std::endl;
|
||||
}
|
||||
}
|
||||
|
||||
void set_model(model_ref const & mdl) {
|
||||
for (unsigned i = 0; i < mdl->get_num_constants(); i++) {
|
||||
for (unsigned i = 0; i < mdl->get_num_constants(); ++i) {
|
||||
func_decl * fd = mdl->get_constant(i);
|
||||
expr * val = mdl->get_const_interp(fd);
|
||||
if (m_entry_points.contains(fd)) {
|
||||
|
|
@ -560,7 +560,7 @@ public:
|
|||
model_ref get_model() {
|
||||
model_ref res = alloc(model, m_manager);
|
||||
unsigned sz = get_num_constants();
|
||||
for (unsigned i = 0; i < sz; i++) {
|
||||
for (unsigned i = 0; i < sz; ++i) {
|
||||
func_decl * fd = get_constant(i);
|
||||
res->register_decl(fd, mpz2value(fd->get_range(), get_value(fd)));
|
||||
}
|
||||
|
|
@ -648,7 +648,7 @@ public:
|
|||
void randomize(ptr_vector<expr> const & as) {
|
||||
TRACE(sls_verbose, tout << "Abandoned model:" << std::endl; show_model(tout); );
|
||||
|
||||
for (entry_point_type::iterator it = m_entry_points.begin(); it != m_entry_points.end(); it++) {
|
||||
for (entry_point_type::iterator it = m_entry_points.begin(); it != m_entry_points.end(); ++it) {
|
||||
func_decl * fd = it->m_key;
|
||||
sort * s = fd->get_range();
|
||||
mpz temp = get_random(s);
|
||||
|
|
@ -662,7 +662,7 @@ public:
|
|||
void reset(ptr_vector<expr> const & as) {
|
||||
TRACE(sls_verbose, tout << "Abandoned model:" << std::endl; show_model(tout); );
|
||||
|
||||
for (entry_point_type::iterator it = m_entry_points.begin(); it != m_entry_points.end(); it++) {
|
||||
for (entry_point_type::iterator it = m_entry_points.begin(); it != m_entry_points.end(); ++it) {
|
||||
set_value(it->m_value, m_zero);
|
||||
}
|
||||
}
|
||||
|
|
@ -720,7 +720,7 @@ public:
|
|||
else if (m_manager.is_and(n) && !negated) {
|
||||
/* Andreas: Seems to have no effect. But maybe you want to try it again at some point.
|
||||
double sum = 0.0;
|
||||
for (unsigned i = 0; i < a->get_num_args(); i++)
|
||||
for (unsigned i = 0; i < a->get_num_args(); ++i)
|
||||
sum += get_score(args[i]);
|
||||
res = sum / (double) a->get_num_args(); */
|
||||
double min = 1.0;
|
||||
|
|
@ -892,8 +892,8 @@ public:
|
|||
app * a = to_app(n);
|
||||
unsigned pairs = 0, distinct_pairs = 0;
|
||||
unsigned sz = a->get_num_args();
|
||||
for (unsigned i = 0; i < sz; i++) {
|
||||
for (unsigned j = i+1; j < sz; j++) {
|
||||
for (unsigned i = 0; i < sz; ++i) {
|
||||
for (unsigned j = i+1; j < sz; ++j) {
|
||||
// pair i/j
|
||||
const mpz & v0 = get_value(a->get_arg(0));
|
||||
const mpz & v1 = get_value(a->get_arg(1));
|
||||
|
|
@ -970,7 +970,7 @@ public:
|
|||
ptr_vector<func_decl> & get_constants(expr * e) {
|
||||
ptr_vector<func_decl> const & this_decls = m_constants_occ.find(e);
|
||||
unsigned sz = this_decls.size();
|
||||
for (unsigned i = 0; i < sz; i++) {
|
||||
for (unsigned i = 0; i < sz; ++i) {
|
||||
func_decl * fd = this_decls[i];
|
||||
if (!m_temp_constants.contains(fd))
|
||||
m_temp_constants.push_back(fd);
|
||||
|
|
@ -1043,9 +1043,9 @@ public:
|
|||
{
|
||||
double max = -1.0;
|
||||
// Andreas: Commented things here might be used for track_unsat data structures as done in SLS for SAT. But seems to have no benefit.
|
||||
/* for (unsigned i = 0; i < m_where_false.size(); i++) {
|
||||
/* for (unsigned i = 0; i < m_where_false.size(); ++i) {
|
||||
expr * e = m_list_false[i]; */
|
||||
for (unsigned i = 0; i < sz; i++) {
|
||||
for (unsigned i = 0; i < sz; ++i) {
|
||||
expr * e = as[i];
|
||||
if (m_mpz_manager.neq(get_value(e), m_one))
|
||||
{
|
||||
|
|
@ -1075,7 +1075,7 @@ public:
|
|||
return m_list_false[get_random_uint(16) % sz]; */
|
||||
|
||||
unsigned cnt_unsat = 0;
|
||||
for (unsigned i = 0; i < sz; i++)
|
||||
for (unsigned i = 0; i < sz; ++i)
|
||||
if (m_mpz_manager.neq(get_value(as[i]), m_one) && (get_random_uint(16) % ++cnt_unsat == 0)) pos = i;
|
||||
if (pos == static_cast<unsigned>(-1))
|
||||
return nullptr;
|
||||
|
|
@ -1092,7 +1092,7 @@ public:
|
|||
m_temp_constants.reset();
|
||||
|
||||
unsigned cnt_unsat = 0, pos = -1;
|
||||
for (unsigned i = 0; i < sz; i++)
|
||||
for (unsigned i = 0; i < sz; ++i)
|
||||
if ((i != m_last_pos) && m_mpz_manager.neq(get_value(as[i]), m_one) && (get_random_uint(16) % ++cnt_unsat == 0)) pos = i;
|
||||
|
||||
if (pos == static_cast<unsigned>(-1))
|
||||
|
|
|
|||
|
|
@ -27,7 +27,7 @@ class powers : public u_map<mpz*> {
|
|||
public:
|
||||
powers(unsynch_mpz_manager & m) : m(m) {}
|
||||
~powers() {
|
||||
for (iterator it = begin(); it != end(); it++) {
|
||||
for (iterator it = begin(); it != end(); ++it) {
|
||||
m.del(*it->m_value);
|
||||
dealloc(it->m_value);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1624,13 +1624,13 @@ namespace sls {
|
|||
|
||||
if (offset_val.is_neg() || offset_val.get_unsigned() >= r.length()) {
|
||||
has_empty = true;
|
||||
for (unsigned i = 0; i < r.length(); i++)
|
||||
for (unsigned i = 0; i < r.length(); ++i)
|
||||
m_int_updates.push_back({ offset, rational(i), 1 });
|
||||
}
|
||||
|
||||
if (!len_val.is_pos()) {
|
||||
has_empty = true;
|
||||
for (unsigned i = 1; i + offset_u < r.length(); i++)
|
||||
for (unsigned i = 1; i + offset_u < r.length(); ++i)
|
||||
m_int_updates.push_back({ len, rational(i), 1 });
|
||||
}
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue