mirror of
https://github.com/Z3Prover/z3
synced 2025-04-28 19:35:50 +00:00
remove spurious copies and inc_refs around ref_vector
This commit is contained in:
parent
eabe91cdef
commit
5de6628a5d
16 changed files with 49 additions and 53 deletions
|
@ -35,7 +35,7 @@ public:
|
|||
fail_if_proof_generation("ackermannize", g);
|
||||
TRACE("ackermannize", g->display(tout << "in\n"););
|
||||
|
||||
expr_ref_vector flas(m);
|
||||
ptr_vector<expr> flas;
|
||||
const unsigned sz = g->size();
|
||||
for (unsigned i = 0; i < sz; i++) flas.push_back(g->form(i));
|
||||
lackr lackr(m, m_p, m_st, flas, nullptr);
|
||||
|
|
|
@ -134,7 +134,7 @@ void ackr_model_converter::add_entry(model_evaluator & evaluator,
|
|||
info->abstract(arg, aarg);
|
||||
expr_ref arg_value(m);
|
||||
evaluator(aarg, arg_value);
|
||||
args.push_back(arg_value);
|
||||
args.push_back(std::move(arg_value));
|
||||
}
|
||||
if (fi->get_entry(args.c_ptr()) == nullptr) {
|
||||
TRACE("ackr_model",
|
||||
|
|
|
@ -23,8 +23,8 @@
|
|||
#include "ast/for_each_expr.h"
|
||||
#include "model/model_smt2_pp.h"
|
||||
|
||||
lackr::lackr(ast_manager& m, params_ref p, lackr_stats& st, expr_ref_vector& formulas,
|
||||
solver * uffree_solver)
|
||||
lackr::lackr(ast_manager& m, const params_ref& p, lackr_stats& st,
|
||||
const ptr_vector<expr>& formulas, solver * uffree_solver)
|
||||
: m_m(m)
|
||||
, m_p(p)
|
||||
, m_formulas(formulas)
|
||||
|
@ -173,11 +173,10 @@ void lackr::abstract() {
|
|||
}
|
||||
m_info->seal();
|
||||
// perform abstraction of the formulas
|
||||
const unsigned sz = m_formulas.size();
|
||||
for (unsigned i = 0; i < sz; ++i) {
|
||||
for (expr * f : m_formulas) {
|
||||
expr_ref a(m_m);
|
||||
m_info->abstract(m_formulas.get(i), a);
|
||||
m_abstr.push_back(a);
|
||||
m_info->abstract(f, a);
|
||||
m_abstr.push_back(std::move(a));
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -249,13 +248,9 @@ lbool lackr::lazy() {
|
|||
// Collect all uninterpreted terms, skipping 0-arity.
|
||||
//
|
||||
bool lackr::collect_terms() {
|
||||
ptr_vector<expr> stack;
|
||||
ptr_vector<expr> stack = m_formulas;
|
||||
expr * curr;
|
||||
expr_mark visited;
|
||||
for(unsigned i = 0; i < m_formulas.size(); ++i) {
|
||||
stack.push_back(m_formulas.get(i));
|
||||
TRACE("lackr", tout << "infla: " <<mk_ismt2_pp(m_formulas.get(i), m_m, 2) << "\n";);
|
||||
}
|
||||
|
||||
while (!stack.empty()) {
|
||||
curr = stack.back();
|
||||
|
|
|
@ -42,8 +42,8 @@ struct lackr_stats {
|
|||
**/
|
||||
class lackr {
|
||||
public:
|
||||
lackr(ast_manager& m, params_ref p, lackr_stats& st,
|
||||
expr_ref_vector& formulas, solver * uffree_solver);
|
||||
lackr(ast_manager& m, const params_ref& p, lackr_stats& st,
|
||||
const ptr_vector<expr>& formulas, solver * uffree_solver);
|
||||
~lackr();
|
||||
void updt_params(params_ref const & _p);
|
||||
|
||||
|
@ -82,7 +82,7 @@ class lackr {
|
|||
typedef ackr_helper::app_set app_set;
|
||||
ast_manager& m_m;
|
||||
params_ref m_p;
|
||||
expr_ref_vector m_formulas;
|
||||
const ptr_vector<expr>& m_formulas;
|
||||
expr_ref_vector m_abstr;
|
||||
fun2terms_map m_fun2terms;
|
||||
ackr_info_ref m_info;
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue