3
0
Fork 0
mirror of https://github.com/Z3Prover/z3 synced 2025-04-23 17:15:31 +00:00

call it data instead of c_ptr for approaching C++11 std::vector convention.

This commit is contained in:
Nikolaj Bjorner 2021-04-13 18:17:10 -07:00
parent 524dcd35f9
commit 4a6083836a
456 changed files with 2802 additions and 2802 deletions

View file

@ -26,8 +26,8 @@ static void tst_shl(unsigned src_sz, unsigned const * src, unsigned k,
for (unsigned sz = 1; sz <= dst_sz; sz++) {
if (trace)
std::cout << " for sz = " << sz << std::endl;
shl(src_sz, src, k, sz, actual_dst.c_ptr());
ENSURE(!has_one_at_first_k_bits(sz, actual_dst.c_ptr(), k));
shl(src_sz, src, k, sz, actual_dst.data());
ENSURE(!has_one_at_first_k_bits(sz, actual_dst.data(), k));
for (unsigned i = 0; i < sz; i++) {
if (trace && dst[i] != actual_dst[i])
std::cout << "UNEXPECTED RESULT at [" << i << "]: " << actual_dst[i] << ", expected: " << dst[i] << "\n";
@ -36,7 +36,7 @@ static void tst_shl(unsigned src_sz, unsigned const * src, unsigned k,
if (sz == src_sz) {
unsigned nz1 = nlz(sz, src);
if (nz1 >= k && !is_zero(sz, src)) {
unsigned nz2 = nlz(sz, actual_dst.c_ptr());
unsigned nz2 = nlz(sz, actual_dst.data());
if (nz1 - k != nz2) {
if (trace)
std::cout << "nlz BUG, nlz1: " << nz1 << ", k: " << k << ", nlz2: " << nz2 << std::endl;
@ -47,7 +47,7 @@ static void tst_shl(unsigned src_sz, unsigned const * src, unsigned k,
if (sz >= src_sz + (k/32) + 1) {
svector<unsigned> new_src;
new_src.resize(sz, 0xAAAAAAAA);
shr(sz, actual_dst.c_ptr(), k, new_src.c_ptr());
shr(sz, actual_dst.data(), k, new_src.data());
for (unsigned i = 0; i < src_sz; i++) {
if (trace && src[i] != new_src[i]) {
std::cout << "shr BUG, inverting shl, at bit[" << i << "], " << new_src[i] << ", expected: " << src[i] << std::endl;
@ -58,9 +58,9 @@ static void tst_shl(unsigned src_sz, unsigned const * src, unsigned k,
}
if (trace)
std::cout << " shift by 1, k times" << std::endl;
copy(src_sz, src, dst_sz, actual_dst.c_ptr());
copy(src_sz, src, dst_sz, actual_dst.data());
for (unsigned i = 0; i < k; i++) {
shl(dst_sz, actual_dst.c_ptr(), 1, dst_sz, actual_dst.c_ptr());
shl(dst_sz, actual_dst.data(), 1, dst_sz, actual_dst.data());
}
for (unsigned i = 0; i < dst_sz; i++) {
if (trace && dst[i] != actual_dst[i])
@ -130,7 +130,7 @@ static void tst_shr(unsigned src_sz, unsigned const * src, unsigned k,
}
svector<unsigned> actual_dst;
actual_dst.resize(src_sz, 0xAAAAAAAA);
shr(src_sz, src, k, actual_dst.c_ptr());
shr(src_sz, src, k, actual_dst.data());
for (unsigned i = 0; i < src_sz; i++) {
if (trace && dst[i] != actual_dst[i])
std::cout << "UNEXPECTED RESULT at [" << i << "]: " << actual_dst[i] << ", expected: " << dst[i] << "\n";
@ -182,7 +182,7 @@ static void tst_shl_rand(unsynch_mpz_manager & m, unsigned sz, unsigned k, bool
unsigned word_shift = (k / 32);
for (unsigned i = 0; i < word_shift; i++)
dst.push_back(0);
tst_shl(src.size(), src.c_ptr(), k, dst.size(), dst.c_ptr(), trace);
tst_shl(src.size(), src.data(), k, dst.size(), dst.data(), trace);
}
static void tst_shl_rand(unsigned N, unsigned sz, unsigned k, bool trace = false) {

View file

@ -73,7 +73,7 @@ static void track_clause(sat::solver& dst,
sat::literal lit = sat::literal(dst.mk_var(true, false), false);
tracking_clauses.set(lit.var(), lits);
lits.push_back(~lit);
dst.mk_clause(lits.size(), lits.c_ptr());
dst.mk_clause(lits.size(), lits.data());
assumptions.push_back(lit);
}
@ -145,7 +145,7 @@ static void brute_force_consequences(sat::solver& s, sat::literal_vector const&
sat::literal nlit = ~gamma[i];
sat::literal_vector asms1(asms);
asms1.push_back(nlit);
lbool r = s.check(asms1.size(), asms1.c_ptr());
lbool r = s.check(asms1.size(), asms1.data());
if (r == l_false) {
backbones.push_back(gamma[i]);
}
@ -153,7 +153,7 @@ static void brute_force_consequences(sat::solver& s, sat::literal_vector const&
}
static lbool core_chunking(sat::solver& s, sat::bool_var_vector& vars, sat::literal_vector const& asms, vector<sat::literal_vector>& conseq, unsigned K) {
lbool r = s.check(asms.size(), asms.c_ptr());
lbool r = s.check(asms.size(), asms.data());
if (r != l_true) {
return r;
}
@ -174,7 +174,7 @@ static lbool core_chunking(sat::solver& s, sat::bool_var_vector& vars, sat::lite
while (true) {
sat::literal_vector asms1(asms);
asms1.append(omegaN);
r = s.check(asms1.size(), asms1.c_ptr());
r = s.check(asms1.size(), asms1.data());
if (r == l_true) {
IF_VERBOSE(1, verbose_stream() << "(sat) " << omegaN << "\n";);
prune_unfixed(lambda, s.get_model());

View file

@ -17,7 +17,7 @@ Copyright (c) 2015 Microsoft Corporation
using namespace datalog;
void dl_query_ask_ground_query(context & ctx, func_decl * pred, relation_fact & f, bool should_be_successful) {
expr * const * q_args = reinterpret_cast<expr * const *>(f.c_ptr());
expr * const * q_args = reinterpret_cast<expr * const *>(f.data());
app * query = ctx.get_manager().mk_app(pred, q_args);
lbool is_sat = ctx.query(query);
@ -36,7 +36,7 @@ void dl_query_ask_for_last_arg(context & ctx, func_decl * pred, relation_fact &
push_into_vector(query_args, f);
query_args.pop_back();
query_args.push_back(m.mk_var(0, pred->get_domain(query_args.size())));
app * query = ctx.get_manager().mk_app(pred, query_args.c_ptr());
app * query = ctx.get_manager().mk_app(pred, query_args.data());
lbool is_sat = ctx.query(query);
std::cerr << "@@ last arg query should succeed: " << should_be_successful << "\n";
@ -178,7 +178,7 @@ void dl_query_test_wpa(smt_params & fparams, params_ref& params) {
q_args.push_back(dl_util.mk_numeral(el1, var_sort));
q_args.push_back(dl_util.mk_numeral(el2, var_sort));
app_ref query_lit(m.mk_app(v_pred, q_args.c_ptr()), m);
app_ref query_lit(m.mk_app(v_pred, q_args.data()), m);
lbool is_sat = ctx.query(query_lit);
ENSURE(is_sat != l_undef);
bool found = is_sat == l_true;
@ -190,7 +190,7 @@ void dl_query_test_wpa(smt_params & fparams, params_ref& params) {
q_args.pop_back();
q_args.push_back(m.mk_var(0, var_sort));
query_lit = m.mk_app(v_pred, q_args.c_ptr());
query_lit = m.mk_app(v_pred, q_args.data());
is_sat = ctx.query(query_lit.get());
ENSURE(is_sat != l_false);
std::cerr<<"non-ground query finished\n";

View file

@ -173,7 +173,7 @@ class test_doc_cls {
default: break;
}
}
result = mk_and(m, conjs.size(), conjs.c_ptr());
result = mk_and(m, conjs.size(), conjs.data());
return result;
}
@ -197,7 +197,7 @@ class test_doc_cls {
break;
}
}
result = mk_and(m, conjs.size(), conjs.c_ptr());
result = mk_and(m, conjs.size(), conjs.data());
return result;
}
@ -208,7 +208,7 @@ class test_doc_cls {
for (unsigned i = 0; i < d.neg().size(); ++i) {
conjs.push_back(m.mk_not(to_formula(d.neg()[i], m2)));
}
result = mk_and(m, conjs.size(), conjs.c_ptr());
result = mk_and(m, conjs.size(), conjs.data());
return result;
}
@ -218,7 +218,7 @@ class test_doc_cls {
for (unsigned i = 0; i < ud.size(); ++i) {
disjs.push_back(to_formula(ud[i], m2));
}
result = mk_or(m, disjs.size(), disjs.c_ptr());
result = mk_or(m, disjs.size(), disjs.data());
return result;
}
@ -299,7 +299,7 @@ class test_doc_cls {
fmls.push_back(m.mk_not(mk_conj(*t)));
d->neg().push_back(t);
}
fml1 = mk_and(m, fmls.size(), fmls.c_ptr());
fml1 = mk_and(m, fmls.size(), fmls.data());
bool_vector to_merge(N, false);
bit_vector discard_cols;
discard_cols.resize(N, false);
@ -321,7 +321,7 @@ class test_doc_cls {
}
}
eqs.push_back(to_formula(*d, dm));
fml1 = mk_and(m, eqs.size(), eqs.c_ptr());
fml1 = mk_and(m, eqs.size(), eqs.data());
if (dm.merge(*d, lo, 1, equalities, discard_cols)) {
fml2 = to_formula(*d, dm);
}

View file

@ -14,7 +14,7 @@ void expr_delta::assert_cnstr(expr* n) {
}
bool expr_delta::delta_dfs(unsigned n, expr_ref_vector& result) {
return delta_dfs(n, m_exprs.size(), m_exprs.c_ptr(), result);
return delta_dfs(n, m_exprs.size(), m_exprs.data(), result);
}
bool expr_delta::delta_dfs(unsigned& n, unsigned sz, expr* const* exprs, expr_ref_vector& result) {
@ -38,7 +38,7 @@ bool expr_delta::delta_dfs(unsigned& n, unsigned sz, expr* const* exprs, expr_re
bool expr_delta::delta_dfs(unsigned& n, app* a, expr_ref& result) {
expr_ref_vector args(m_manager);
if (delta_dfs(n, a->get_num_args(), a->get_args(), args)) {
result = m_manager.mk_app(a->get_decl(), args.size(), args.c_ptr());
result = m_manager.mk_app(a->get_decl(), args.size(), args.data());
return true;
}
else {

View file

@ -55,7 +55,7 @@ void expr_rand::walk() {
for (unsigned i = 0; i < arity; ++i) {
args.push_back(choose_expr(f->get_domain(i)));
}
expr* r = m_manager.mk_app(f, args.size(), args.c_ptr());
expr* r = m_manager.mk_app(f, args.size(), args.data());
add_expr(r);
}

View file

@ -160,15 +160,15 @@ expr_ref hilbert_basis_validate::mk_validate(hilbert_basis& hb) {
for (unsigned k = 0; k < increments.size(); ++k) {
sum.push_back(increments[k][j].get());
}
eqs.push_back(m.mk_eq(xs[j].get(), a.mk_add(sum.size(), sum.c_ptr())));
eqs.push_back(m.mk_eq(xs[j].get(), a.mk_add(sum.size(), sum.data())));
}
fml = m.mk_and(eqs.size(), eqs.c_ptr());
fml = m.mk_and(eqs.size(), eqs.data());
if (!names.empty()) {
fml = m.mk_exists(names.size(), sorts.c_ptr(), names.c_ptr(), fml);
fml = m.mk_exists(names.size(), sorts.data(), names.data(), fml);
}
fmls.push_back(fml);
}
fml1 = m.mk_or(fmls.size(), fmls.c_ptr());
fml1 = m.mk_or(fmls.size(), fmls.data());
fmls.reset();
sz = hb.get_num_ineqs();
@ -184,7 +184,7 @@ expr_ref hilbert_basis_validate::mk_validate(hilbert_basis& hb) {
}
}
expr_ref lhs(m), rhs(m);
lhs = a.mk_add(sum.size(), sum.c_ptr());
lhs = a.mk_add(sum.size(), sum.data());
rhs = a.mk_numeral(bound, true);
if (is_eq) {
fmls.push_back(a.mk_eq(lhs, rhs));
@ -193,7 +193,7 @@ expr_ref hilbert_basis_validate::mk_validate(hilbert_basis& hb) {
fmls.push_back(a.mk_ge(lhs, rhs));
}
}
fml2 = m.mk_and(fmls.size(), fmls.c_ptr());
fml2 = m.mk_and(fmls.size(), fmls.data());
fml = m.mk_eq(fml1, fml2);
bounds.reset();
@ -203,7 +203,7 @@ expr_ref hilbert_basis_validate::mk_validate(hilbert_basis& hb) {
}
}
if (!bounds.empty()) {
fml = m.mk_implies(m.mk_and(bounds.size(), bounds.c_ptr()), fml);
fml = m.mk_implies(m.mk_and(bounds.size(), bounds.data()), fml);
}
return fml;

View file

@ -21,9 +21,9 @@ void tst_horn_subsume_model_converter() {
ints.push_back(a.mk_int());
func_decl_ref p(m), q(m), r(m);
p = m.mk_func_decl(symbol("p"), 2, ints.c_ptr(), m.mk_bool_sort());
q = m.mk_func_decl(symbol("q"), 2, ints.c_ptr(), m.mk_bool_sort());
r = m.mk_func_decl(symbol("r"), 2, ints.c_ptr(), m.mk_bool_sort());
p = m.mk_func_decl(symbol("p"), 2, ints.data(), m.mk_bool_sort());
q = m.mk_func_decl(symbol("q"), 2, ints.data(), m.mk_bool_sort());
r = m.mk_func_decl(symbol("r"), 2, ints.data(), m.mk_bool_sort());
ref<horn_subsume_model_converter> mc = alloc(horn_subsume_model_converter,m);
model_ref mr = alloc(model, m);

View file

@ -149,7 +149,7 @@ namespace karr {
TD.display(std::cout << "TD:\n");
for (unsigned i = 0; i < TD.size(); ++i) {
vector<rational> v;
v.append(src.size(), TD.A[i].c_ptr() + src.size());
v.append(src.size(), TD.A[i].data() + src.size());
dst.A.push_back(v);
dst.b.push_back(TD.b[i]);
}

View file

@ -21,8 +21,8 @@ void tst_model2expr() {
ints.push_back(a.mk_int());
func_decl_ref p(m), q(m), x(m);
p = m.mk_func_decl(symbol("p"), 2, ints.c_ptr(), a.mk_int());
q = m.mk_func_decl(symbol("q"), 2, ints.c_ptr(), a.mk_int());
p = m.mk_func_decl(symbol("p"), 2, ints.data(), a.mk_int());
q = m.mk_func_decl(symbol("q"), 2, ints.data(), a.mk_int());
x = m.mk_const_decl(symbol("x"), a.mk_int());
expr_ref n0(m), n1(m), n2(m);
n0 = a.mk_numeral(rational(0), true);
@ -35,12 +35,12 @@ void tst_model2expr() {
expr_ref_vector args(m);
args.push_back(n1);
args.push_back(n2);
fip->insert_entry(args.c_ptr(), n1);
fiq->insert_entry(args.c_ptr(), n1);
fip->insert_entry(args.data(), n1);
fiq->insert_entry(args.data(), n1);
args[0] = n0;
args[1] = n1;
fip->insert_entry(args.c_ptr(), n2);
fiq->insert_entry(args.c_ptr(), n2);
fip->insert_entry(args.data(), n2);
fiq->insert_entry(args.data(), n2);
fip->set_else(n0);

View file

@ -311,7 +311,7 @@ static void project(nlsat::solver& s, nlsat::explain& ex, nlsat::var x, unsigned
s.display(std::cout, num, lits);
nlsat::scoped_literal_vector result(s);
ex.project(x, num, lits, result);
s.display(std::cout << "\n==>\n", result.size(), result.c_ptr());
s.display(std::cout << "\n==>\n", result.size(), result.data());
std::cout << "\n";
}
@ -398,12 +398,12 @@ static void tst6() {
s.set_rvalues(as);
project(s, ex, x0, 2, lits.c_ptr());
project(s, ex, x1, 3, lits.c_ptr());
project(s, ex, x2, 3, lits.c_ptr());
project(s, ex, x2, 2, lits.c_ptr());
project(s, ex, x2, 4, lits.c_ptr());
project(s, ex, x2, 3, lits.c_ptr()+1);
project(s, ex, x0, 2, lits.data());
project(s, ex, x1, 3, lits.data());
project(s, ex, x2, 3, lits.data());
project(s, ex, x2, 2, lits.data());
project(s, ex, x2, 4, lits.data());
project(s, ex, x2, 3, lits.data()+1);
}
@ -441,7 +441,7 @@ static void tst7() {
lits.push_back(mk_gt(s, p2));
lits.push_back(mk_gt(s, p3));
nlsat::literal_vector litsv(lits.size(), lits.c_ptr());
nlsat::literal_vector litsv(lits.size(), lits.data());
lbool res = s.check(litsv);
VERIFY(res == l_false);
for (unsigned i = 0; i < litsv.size(); ++i) {
@ -451,7 +451,7 @@ static void tst7() {
std::cout << "\n";
litsv.reset();
litsv.append(2, lits.c_ptr());
litsv.append(2, lits.data());
res = s.check(litsv);
ENSURE(res == l_true);
s.display(std::cout);
@ -505,7 +505,7 @@ static void tst8() {
nlsat::scoped_literal_vector lits(s);
lits.push_back(mk_eq(s, (_a*_x2*_x2) - (_b*_x2) - _c));
project(s, ex, x2, 1, lits.c_ptr());
project(s, ex, x2, 1, lits.data());
}
@ -560,16 +560,16 @@ static void tst9() {
#define TEST_ON_OFF() \
std::cout << "Off "; \
ex.set_signed_project(false); \
project(s, ex, _x, lits.size()-1, lits.c_ptr()); \
project(s, ex, _x, lits.size()-1, lits.data()); \
std::cout << "On "; \
ex.set_signed_project(true); \
project(s, ex, _x, lits.size()-1, lits.c_ptr()); \
project(s, ex, _x, lits.size()-1, lits.data()); \
std::cout << "Off "; \
ex.set_signed_project(false); \
project(s, ex, _x, lits.size(), lits.c_ptr()); \
project(s, ex, _x, lits.size(), lits.data()); \
std::cout << "On "; \
ex.set_signed_project(true); \
project(s, ex, _x, lits.size(), lits.c_ptr()) \
project(s, ex, _x, lits.size(), lits.data()) \
TEST_ON_OFF();
@ -620,7 +620,7 @@ static void test_root_literal(nlsat::solver& s, nlsat::explain& ex, nlsat::var x
ex.test_root_literal(k, x, 1, p, result);
nlsat::bool_var b = s.mk_root_atom(k, x, i, p);
s.display(std::cout, nlsat::literal(b, false));
s.display(std::cout << " ==> ", result.size(), result.c_ptr());
s.display(std::cout << " ==> ", result.size(), result.data());
std::cout << "\n";
}
@ -748,7 +748,7 @@ static void tst11() {
lits.reset();
lits.push_back(mk_gt(s, p1));
lits.push_back(mk_eq(s, p2));
project_fa(s, ex, x, 2, lits.c_ptr());
project_fa(s, ex, x, 2, lits.data());
// return;
p1 = ((_x * _x) - (2 * _y * _x) - _z + (_y *_y));
@ -759,7 +759,7 @@ static void tst11() {
lits.reset();
lits.push_back(mk_lt(s, p1));
lits.push_back(mk_eq(s, p2));
project_fa(s, ex, x, 2, lits.c_ptr());
project_fa(s, ex, x, 2, lits.data());
return;
as.set(z, zero);
@ -770,7 +770,7 @@ static void tst11() {
lits.reset();
lits.push_back(mk_gt(s, p1));
lits.push_back(mk_eq(s, p2));
project_fa(s, ex, x, 2, lits.c_ptr());
project_fa(s, ex, x, 2, lits.data());
#if 0

View file

@ -37,7 +37,7 @@ static void test1() {
for (unsigned k = 1; k <= N; ++k) {
expr_ref fml(m), result(m);
proof_ref proof(m);
fml = pb.mk_at_least_k(vars.size(), vars.c_ptr(), k);
fml = pb.mk_at_least_k(vars.size(), vars.data(), k);
rw(true, fml, result, proof);
std::cout << fml << " |-> " << result << "\n";
}
@ -57,9 +57,9 @@ static void test_semantics(ast_manager& m, expr_ref_vector const& vars, vector<r
th_rewriter th_rw(m);
switch (kind) {
case 0: fml1 = pb.mk_ge(vars.size(), coeffs.c_ptr(), vars.c_ptr(), rational(k)); break;
case 1: fml1 = pb.mk_le(vars.size(), coeffs.c_ptr(), vars.c_ptr(), rational(k)); break;
default: fml1 = pb.mk_eq(vars.size(), coeffs.c_ptr(), vars.c_ptr(), rational(k)); break;
case 0: fml1 = pb.mk_ge(vars.size(), coeffs.data(), vars.data(), rational(k)); break;
case 1: fml1 = pb.mk_le(vars.size(), coeffs.data(), vars.data(), rational(k)); break;
default: fml1 = pb.mk_eq(vars.size(), coeffs.data(), vars.data(), rational(k)); break;
}
rw(true, fml1, result1, proof);
rw.flush_side_constraints(lemmas);
@ -77,9 +77,9 @@ static void test_semantics(ast_manager& m, expr_ref_vector const& vars, vector<r
solver.assert_expr(lemmas);
switch (kind) {
case 0: fml2 = pb.mk_ge(tf.size(), coeffs.c_ptr(), tf.c_ptr(), rational(k)); break;
case 1: fml2 = pb.mk_le(tf.size(), coeffs.c_ptr(), tf.c_ptr(), rational(k)); break;
default: fml2 = pb.mk_eq(tf.size(), coeffs.c_ptr(), tf.c_ptr(), rational(k)); break;
case 0: fml2 = pb.mk_ge(tf.size(), coeffs.data(), tf.data(), rational(k)); break;
case 1: fml2 = pb.mk_le(tf.size(), coeffs.data(), tf.data(), rational(k)); break;
default: fml2 = pb.mk_eq(tf.size(), coeffs.data(), tf.data(), rational(k)); break;
}
std::cout << fml1 << " " << fml2 << "\n";
th_rw(fml2, result2, proof);
@ -136,9 +136,9 @@ static void test_solver_semantics(ast_manager& m, expr_ref_vector const& vars, v
th_rewriter th_rw(m);
switch (kind) {
case 0: fml1 = pb.mk_ge(vars.size(), coeffs.c_ptr(), vars.c_ptr(), rational(k)); break;
case 1: fml1 = pb.mk_le(vars.size(), coeffs.c_ptr(), vars.c_ptr(), rational(k)); break;
default: fml1 = pb.mk_eq(vars.size(), coeffs.c_ptr(), vars.c_ptr(), rational(k)); break;
case 0: fml1 = pb.mk_ge(vars.size(), coeffs.data(), vars.data(), rational(k)); break;
case 1: fml1 = pb.mk_le(vars.size(), coeffs.data(), vars.data(), rational(k)); break;
default: fml1 = pb.mk_eq(vars.size(), coeffs.data(), vars.data(), rational(k)); break;
}
result1 = m.mk_fresh_const("xx", m.mk_bool_sort());
for (unsigned values = 0; values < static_cast<unsigned>(1 << N); ++values) {
@ -152,9 +152,9 @@ static void test_solver_semantics(ast_manager& m, expr_ref_vector const& vars, v
slv->assert_expr(m.mk_eq(result1, fml1));
switch (kind) {
case 0: fml2 = pb.mk_ge(tf.size(), coeffs.c_ptr(), tf.c_ptr(), rational(k)); break;
case 1: fml2 = pb.mk_le(tf.size(), coeffs.c_ptr(), tf.c_ptr(), rational(k)); break;
default: fml2 = pb.mk_eq(tf.size(), coeffs.c_ptr(), tf.c_ptr(), rational(k)); break;
case 0: fml2 = pb.mk_ge(tf.size(), coeffs.data(), tf.data(), rational(k)); break;
case 1: fml2 = pb.mk_le(tf.size(), coeffs.data(), tf.data(), rational(k)); break;
default: fml2 = pb.mk_eq(tf.size(), coeffs.data(), tf.data(), rational(k)); break;
}
std::cout << fml1 << " " << fml2 << "\n";
th_rw(fml2, result2, proof);

View file

@ -111,10 +111,10 @@ namespace dd {
for (unsigned i = 0; i < args.size(); ++i) {
args[i] = mk_not(m, args.get(i));
}
g = m.mk_not(m.mk_and(args.size(), args.c_ptr()));
g = m.mk_not(m.mk_and(args.size(), args.data()));
}
else if (m.is_and(a)) {
g = m.mk_and(args.size(), args.c_ptr());
g = m.mk_and(args.size(), args.data());
trail.push_back(g);
}
else if (m.is_eq(a)) {
@ -134,7 +134,7 @@ namespace dd {
g = mk_not(m, args.get(0));
}
else {
g = m.mk_app(a->get_decl(), args.size(), args.c_ptr());
g = m.mk_app(a->get_decl(), args.size(), args.data());
}
trail.push_back(g);
cache.insert(a, g);

View file

@ -928,7 +928,7 @@ static void tst_substitute(polynomial_ref const & p,
std::cout << "---------------\n";
std::cout << "p: " << p << std::endl;
polynomial_ref r(p.m());
r = p.m().substitute(p, 2, xs, vs.c_ptr());
r = p.m().substitute(p, 2, xs, vs.data());
std::cout << "r: " << r << std::endl;
std::cout << "expected: " << expected << std::endl;
ENSURE(eq(r, expected));
@ -969,7 +969,7 @@ static void tst_qsubstitute(polynomial_ref const & p,
std::cout << "---------------\n";
std::cout << "p: " << p << std::endl;
polynomial_ref r(p.m());
r = p.m().substitute(p, 2, xs, vs.c_ptr());
r = p.m().substitute(p, 2, xs, vs.data());
std::cout << "r: " << r << std::endl;
std::cout << "expected (modulo a constant): " << expected << std::endl;
ENSURE(eq(r, normalize(expected)));
@ -1666,7 +1666,7 @@ static void tst_newton_interpolation() {
polynomial_ref r(m);
{
polynomial::scoped_set_zp setZ97(m, 97);
m.newton_interpolation(0, 2, ins.c_ptr(), outs, r);
m.newton_interpolation(0, 2, ins.data(), outs, r);
}
std::cout << "interpolation result: " << r << "\n";
ENSURE(m.eq((x^2)*y + 5*x*y + 41*x - 9*y - 21, r));
@ -1721,17 +1721,17 @@ void tst_linear_solver() {
as.reset();
as.push_back(mpq(2)); as.push_back(mpq(1)); as.push_back(mpq(-1)); qm.set(b, 8);
solver.add(0, as.c_ptr(), b);
solver.add(0, as.data(), b);
as.reset();
as.push_back(mpq(-3)); as.push_back(mpq(-1)); as.push_back(mpq(2)); qm.set(b, -11);
solver.add(1, as.c_ptr(), b);
solver.add(1, as.data(), b);
as.reset();
as.push_back(mpq(-2)); as.push_back(mpq(1)); as.push_back(mpq(2)); qm.set(b, -3);
solver.add(2, as.c_ptr(), b);
solver.add(2, as.data(), b);
VERIFY(solver.solve(xs.c_ptr()));
VERIFY(solver.solve(xs.data()));
ENSURE(qm.eq(xs[0], mpq(2)));
ENSURE(qm.eq(xs[1], mpq(3)));
ENSURE(qm.eq(xs[2], mpq(-1)));

View file

@ -192,7 +192,7 @@ static app_ref generate_ineqs(ast_manager& m, sort* s, vector<expr_ref_vector>&
static void test_c(app* x, expr_ref_vector const& c) {
ast_manager& m = c.get_manager();
expr_ref fml(m);
fml = m.mk_and(c.size(), c.c_ptr());
fml = m.mk_and(c.size(), c.data());
test(x, fml);
}
@ -261,8 +261,8 @@ static void test2(char const *ex) {
names.push_back(vars[i]->get_decl()->get_name());
sorts.push_back(vars[i]->get_sort());
}
expr_abstract(m, 0, bound.size(), bound.c_ptr(), fml, fml2);
fml2 = m.mk_exists(bound.size(), sorts.c_ptr(), names.c_ptr(), fml2);
expr_abstract(m, 0, bound.size(), bound.data(), fml, fml2);
fml2 = m.mk_exists(bound.size(), sorts.data(), names.data(), fml2);
qe::expr_quant_elim qe(m, params);
for (unsigned i = 0; i < vars.size(); ++i) {
VERIFY(mbp::arith_project(*md, vars[i].get(), lits));
@ -303,7 +303,7 @@ static void mk_term(vector<var_t> const& vars, rational const& coeff, app_ref& t
ts.push_back(a.mk_mul(a.mk_numeral(coeff, false), var));
}
ts.push_back(a.mk_numeral(coeff, a.mk_real()));
term = a.mk_add(ts.size(), ts.c_ptr());
term = a.mk_add(ts.size(), ts.data());
}
static void add_random_ineq(
@ -466,9 +466,9 @@ static void test_project() {
nums.push_back(a.mk_int(0));
nums.push_back(a.mk_int(1));
nums.push_back(a.mk_int(2));
fi->insert_new_entry(nums.c_ptr(), a.mk_int(1));
fi->insert_new_entry(nums.c_ptr()+1, a.mk_int(2));
fi->insert_new_entry(nums.c_ptr()+2, a.mk_int(3));
fi->insert_new_entry(nums.data(), a.mk_int(1));
fi->insert_new_entry(nums.data()+1, a.mk_int(2));
fi->insert_new_entry(nums.data()+2, a.mk_int(3));
fi->set_else(a.mk_int(10));
mdl.register_decl(f, fi);
vars.reset();
@ -502,7 +502,7 @@ static void test_project() {
ds.push_back(z + 2);
ds.push_back(u);
ds.push_back(z);
lits.push_back(m.mk_not(m.mk_distinct(ds.size(), ds.c_ptr())));
lits.push_back(m.mk_not(m.mk_distinct(ds.size(), ds.data())));
plugin(mdl, vars, lits);
std::cout << lits << "\n";
@ -522,7 +522,7 @@ static void test_project() {
ds.push_back(u);
ds.push_back(z + 10);
ds.push_back(u + 4);
lits.push_back(m.mk_not(m.mk_distinct(ds.size(), ds.c_ptr())));
lits.push_back(m.mk_not(m.mk_distinct(ds.size(), ds.data())));
plugin(mdl, vars, lits);
std::cout << lits << "\n";
@ -541,7 +541,7 @@ static void test_project() {
ds.push_back(y);
ds.push_back(z + 2);
ds.push_back(u);
lits.push_back(m.mk_distinct(ds.size(), ds.c_ptr()));
lits.push_back(m.mk_distinct(ds.size(), ds.data()));
plugin(mdl, vars, lits);
std::cout << lits << "\n";

View file

@ -146,7 +146,7 @@ static void parse_fml(char const* str, app_ref_vector& vars, expr_ref& fml) {
}
fml = q->get_expr();
var_subst vs(m, true);
fml = vs(fml, vars.size(), (expr*const*)vars.c_ptr());
fml = vs(fml, vars.size(), (expr*const*)vars.data());
}
}
@ -164,7 +164,7 @@ static void test_quant_solver(ast_manager& m, char const* str, bool validate = t
expr_ref fml(m);
app_ref_vector vars(m);
parse_fml(str, vars, fml);
test_quant_solver(m, vars.size(), vars.c_ptr(), fml, validate);
test_quant_solver(m, vars.size(), vars.data(), fml, validate);
}

View file

@ -115,7 +115,7 @@ static void tst_solve(unsigned n, int _A[], int _b[], int _c[], bool solved) {
A.set(i, j, _A[i*n + j]);
svector<int> b;
b.resize(n, 0);
if (mm.solve(A, b.c_ptr(), _c)) {
if (mm.solve(A, b.data(), _c)) {
ENSURE(solved);
for (unsigned i = 0; i < n; i++) {
ENSURE(b[i] == _b[i]);
@ -138,7 +138,7 @@ static void tst_lin_indep(unsigned m, unsigned n, int _A[], unsigned ex_sz, unsi
unsigned_vector r;
r.resize(A.n());
scoped_mpz_matrix B(mm);
mm.linear_independent_rows(A, r.c_ptr(), B);
mm.linear_independent_rows(A, r.data(), B);
for (unsigned i = 0; i < ex_sz; i++) {
ENSURE(r[i] == ex_r[i]);
}

View file

@ -58,7 +58,7 @@ static bool build_instance(char const * filename, sat::solver& s, sat::local_sea
}
infile >> k;
//local_search.add_cardinality(lits.size(), lits.c_ptr(), static_cast<unsigned>(lits.size() - k));
local_search.add_cardinality(lits.size(), lits.c_ptr(), static_cast<unsigned>(k));
local_search.add_cardinality(lits.size(), lits.data(), static_cast<unsigned>(k));
}
infile.close();

View file

@ -31,7 +31,7 @@ static void add_clause(sat::solver& s, random_gen& r, trail_t& t) {
for (unsigned i = 0; i < 3; ++i) {
add_literal(r, cls);
}
s.mk_clause(cls.size(), cls.c_ptr());
s.mk_clause(cls.size(), cls.data());
}
static void pop_user_scope(sat::solver& s, trail_t& t) {
@ -63,7 +63,7 @@ static void check_coherence(sat::solver& s1, trail_t& t) {
for (unsigned j = 0; j < clss.size(); ++j) {
cls.reset();
cls.append(clss[j]);
s2.mk_clause(cls.size(), cls.c_ptr());
s2.mk_clause(cls.size(), cls.data());
}
}
lbool is_sat1 = s1.check();

View file

@ -88,7 +88,7 @@ void add_row(Simplex& S, vector<R> const& _v, R const& _b, bool is_eq = false) {
if (is_eq) S.set_upper(nv, zero);
S.set_lower(nv+1, one);
S.set_upper(nv+1, one);
S.add_row(nv, coeffs.size(), vars.c_ptr(), coeffs.c_ptr());
S.add_row(nv, coeffs.size(), vars.data(), coeffs.data());
}
static void feas(Simplex& S) {

View file

@ -30,7 +30,7 @@ void tst_smt_context()
ptr_vector<expr> assumptions;
assumptions.push_back(nc.get());
ctx.check(assumptions.size(), assumptions.c_ptr());
ctx.check(assumptions.size(), assumptions.data());
}
ctx.check();

View file

@ -196,7 +196,7 @@ static void test_eq1(unsigned n, sorting_network_encoding enc) {
// equality:
solver.push();
result1 = sn.eq(true, 1, in.size(), in.c_ptr());
result1 = sn.eq(true, 1, in.size(), in.data());
for (expr* cls : ext.m_clauses) {
solver.assert_expr(cls);
}
@ -242,7 +242,7 @@ static void test_sorting_eq(unsigned n, unsigned k, sorting_network_encoding enc
// equality:
std::cout << "eq " << k << " out of " << n << " for encoding " << enc << "\n";
solver.push();
result = sn.eq(false, k, in.size(), in.c_ptr());
result = sn.eq(false, k, in.size(), in.data());
solver.assert_expr(result);
for (expr* cl : ext.m_clauses) {
solver.assert_expr(cl);
@ -297,7 +297,7 @@ static void test_sorting_le(unsigned n, unsigned k, sorting_network_encoding enc
// B <= k
std::cout << "le " << k << "\n";
solver.push();
result = sn.le(false, k, in.size(), in.c_ptr());
result = sn.le(false, k, in.size(), in.data());
solver.assert_expr(result);
for (expr* cls : ext.m_clauses) {
solver.assert_expr(cls);
@ -355,7 +355,7 @@ void test_sorting_ge(unsigned n, unsigned k, sorting_network_encoding enc) {
// k <= B
std::cout << "ge " << k << "\n";
solver.push();
result = sn.ge(false, k, in.size(), in.c_ptr());
result = sn.ge(false, k, in.size(), in.data());
solver.assert_expr(result);
for (expr* cls : ext.m_clauses) {
solver.assert_expr(cls);
@ -416,7 +416,7 @@ void test_at_most_1(unsigned n, bool full, sorting_network_encoding enc) {
psort_nw<ast_ext2> sn(ext);
sn.cfg().m_encoding = enc;
expr_ref result1(m), result2(m);
result1 = sn.le(full, 1, in.size(), in.c_ptr());
result1 = sn.le(full, 1, in.size(), in.data());
result2 = naive_at_most1(in);
@ -494,7 +494,7 @@ static void test_at_most1(sorting_network_encoding enc) {
psort_nw<ast_ext2> sn(ext);
sn.cfg().m_encoding = enc;
expr_ref result(m);
result = sn.le(true, 1, in.size(), in.c_ptr());
result = sn.le(true, 1, in.size(), in.data());
//std::cout << result << "\n";
//std::cout << ext.m_clauses << "\n";
}
@ -557,7 +557,7 @@ static void test_pb(unsigned max_w, unsigned sz, unsigned_vector& ws) {
solver.push();
//std::cout << "bound: " << k << "\n";
//std::cout << ws << " " << xs << "\n";
ge = sn.ge(k, sz, ws.c_ptr(), xs.c_ptr());
ge = sn.ge(k, sz, ws.data(), xs.data());
//std::cout << "ge: " << ge << "\n";
for (expr* cls : ext.m_clauses) {
solver.assert_expr(cls);
@ -606,7 +606,7 @@ static void test_pb(unsigned max_w, unsigned sz, unsigned_vector& ws) {
solver.pop(1);
solver.push();
eq = sn.eq(k, sz, ws.c_ptr(), xs.c_ptr());
eq = sn.eq(k, sz, ws.data(), xs.data());
for (expr* cls : ext.m_clauses) {
solver.assert_expr(cls);

View file

@ -52,7 +52,7 @@ void tst_substitution()
sorts.push_back(m.mk_bool_sort());
names.push_back(symbol("dude"));
body = m.mk_and(m.mk_eq(v1,v2), m.mk_eq(v3,v4));
q = m.mk_forall(sorts.size(), sorts.c_ptr(), names.c_ptr(), body);
q = m.mk_forall(sorts.size(), sorts.data(), names.data(), body);
subst.apply(q, res);
TRACE("substitution", tout << mk_pp(q, m) << "\n->\n" << mk_pp(res, m) << "\n";);

View file

@ -72,7 +72,7 @@ private:
k += coeffs[i];
}
}
fml = pb.mk_ge(args.size(), coeffs.c_ptr(), args.c_ptr(), k);
fml = pb.mk_ge(args.size(), coeffs.data(), args.data(), k);
rw(fml, tmp);
rw(tmp, tmp);
if (pb.is_ge(tmp)) {
@ -142,7 +142,7 @@ void tst_theory_pb() {
{
smt::context ctx(m, params);
ctx.push();
smt::literal l = smt::theory_pb::assert_ge(ctx, k+1, lits.size(), lits.c_ptr());
smt::literal l = smt::theory_pb::assert_ge(ctx, k+1, lits.size(), lits.data());
if (l != smt::false_literal) {
ctx.assign(l, nullptr, false);
TRACE("pb", tout << "assign: " << l << "\n";
@ -154,7 +154,7 @@ void tst_theory_pb() {
{
smt::context ctx(m, params);
ctx.push();
smt::literal l = smt::theory_pb::assert_ge(ctx, k, lits.size(), lits.c_ptr());
smt::literal l = smt::theory_pb::assert_ge(ctx, k, lits.size(), lits.data());
ENSURE(l != smt::false_literal);
ctx.assign(l, nullptr, false);
TRACE("pb", ctx.display(tout););

View file

@ -128,7 +128,7 @@ public:
udoc_relation* mk_full(relation_signature const& sig) {
func_decl_ref fn(m);
fn = m.mk_func_decl(symbol("full"), sig.size(), sig.c_ptr(), m.mk_bool_sort());
fn = m.mk_func_decl(symbol("full"), sig.size(), sig.data(), m.mk_bool_sort());
relation_base* full = p.mk_full(fn, sig);
return dynamic_cast<udoc_relation*>(full);
}
@ -209,7 +209,7 @@ public:
unsigned_vector jc1, jc2;
jc1.push_back(1);
jc2.push_back(1);
datalog::relation_join_fn* join_fn = p.mk_join_fn(*t1, *t2, jc1.size(), jc1.c_ptr(), jc2.c_ptr());
datalog::relation_join_fn* join_fn = p.mk_join_fn(*t1, *t2, jc1.size(), jc1.data(), jc2.data());
ENSURE(join_fn);
t = (*join_fn)(*t1, *t2);
cr.verify_join(*t1, *t2, *t, jc1, jc2);
@ -240,7 +240,7 @@ public:
t1 = mk_full(sig);
unsigned_vector pc;
pc.push_back(0);
datalog::relation_transformer_fn* proj_fn = p.mk_project_fn(*t1, pc.size(), pc.c_ptr());
datalog::relation_transformer_fn* proj_fn = p.mk_project_fn(*t1, pc.size(), pc.data());
t = (*proj_fn)(*t1);
cr.verify_project(*t1, *t, pc);
t->display(std::cout); std::cout << "\n";
@ -298,7 +298,7 @@ public:
id.push_back(0);
id.push_back(2);
id.push_back(4);
rel_mut filter_id = p.mk_filter_identical_fn(*t1, id.size(), id.c_ptr());
rel_mut filter_id = p.mk_filter_identical_fn(*t1, id.size(), id.data());
relation_fact f1(m);
f1.push_back(bv.mk_numeral(rational(1),3));
f1.push_back(bv.mk_numeral(rational(1),6));
@ -468,7 +468,7 @@ public:
t2 = mk_rand(sig);
t1->display(std::cout);
t2->display(std::cout);
join_project_fn = p.mk_join_project_fn(*t1, *t2, jc1.size(), jc1.c_ptr(), jc2.c_ptr(), pc.size(), pc.c_ptr());
join_project_fn = p.mk_join_project_fn(*t1, *t2, jc1.size(), jc1.data(), jc2.data(), pc.size(), pc.data());
t = (*join_project_fn)(*t1, *t2);
t->display(std::cout);
cr.verify_join_project(*t1, *t2, *t, jc1, jc2, pc);
@ -518,7 +518,7 @@ public:
pc.push_back(2);
scoped_ptr<datalog::relation_join_fn> join_project_fn;
join_project_fn = p.mk_join_project_fn(*t1, *t2, jc1.size(), jc1.c_ptr(), jc2.c_ptr(), pc.size(), pc.c_ptr());
join_project_fn = p.mk_join_project_fn(*t1, *t2, jc1.size(), jc1.data(), jc2.data(), pc.size(), pc.data());
relation_base *t = (*join_project_fn)(*t1, *t2);
cr.verify_join_project(*t1, *t2, *t, jc1, jc2, pc);
t->deallocate();
@ -564,7 +564,7 @@ public:
t1->display(std::cout << "t1:");
t2->display(std::cout << "t2:");
join_project_fn = p.mk_join_project_fn(*t1, *t2, jc1.size(), jc1.c_ptr(), jc2.c_ptr(), pc.size(), pc.c_ptr());
join_project_fn = p.mk_join_project_fn(*t1, *t2, jc1.size(), jc1.data(), jc2.data(), pc.size(), pc.data());
relation_base* t;
t = (*join_project_fn)(*t1, *t2);
@ -638,7 +638,7 @@ public:
jc2.push_back(0);
scoped_ptr<datalog::relation_join_fn> join_fn;
join_fn = p.mk_join_fn(*t1, *t2, jc1.size(), jc1.c_ptr(), jc2.c_ptr());
join_fn = p.mk_join_fn(*t1, *t2, jc1.size(), jc1.data(), jc2.data());
t = (*join_fn)(*t1, *t2);
cr.verify_join(*t1, *t2, *t, jc1, jc2);
@ -659,7 +659,7 @@ public:
void check_permutation(relation_base* t1, unsigned_vector const& cycle) {
scoped_ptr<datalog::relation_transformer_fn> rename;
rename = p.mk_rename_fn(*t1, cycle.size(), cycle.c_ptr());
rename = p.mk_rename_fn(*t1, cycle.size(), cycle.data());
relation_base* t = (*rename)(*t1);
cr.verify_permutation(*t1,*t, cycle);
t1->display(std::cout); std::cout << "\n";
@ -829,7 +829,7 @@ public:
cols3.push_back(1);
udoc_relation* tgt = mk_full(sig1);
udoc_relation* neg = mk_full(sig2);
rel_mut filter_id = p.mk_filter_identical_fn(*tgt, cols3.size(), cols3.c_ptr());
rel_mut filter_id = p.mk_filter_identical_fn(*tgt, cols3.size(), cols3.data());
(*filter_id)(*tgt);
if (disable_fast) p.disable_fast_pass();
apply_filter_neg(*tgt, *neg, cols1, cols2);
@ -859,7 +859,7 @@ public:
unsigned_vector const& cols1, unsigned_vector const& cols2) {
scoped_ptr<datalog::relation_intersection_filter_fn> negf;
negf = p.mk_filter_by_negation_fn(dst, neg, cols1.size(), cols1.c_ptr(), cols2.c_ptr());
negf = p.mk_filter_by_negation_fn(dst, neg, cols1.size(), cols1.data(), cols2.data());
expr_ref dst0(m);
dst.to_formula(dst0);
(*negf)(dst, neg);
@ -880,7 +880,7 @@ public:
void apply_filter_project(udoc_relation& t, unsigned_vector const& rm, app* cond) {
scoped_ptr<datalog::relation_transformer_fn> rt;
rt = p.mk_filter_interpreted_and_project_fn(t, cond, rm.size(), rm.c_ptr());
rt = p.mk_filter_interpreted_and_project_fn(t, cond, rm.size(), rm.data());
datalog::relation_base* result = (*rt)(t);
cr.verify_filter_project(t, *result, cond, rm);
result->deallocate();
@ -900,7 +900,7 @@ public:
repl(tmp);
disj.push_back(tmp);
}
fml = mk_or(m, disj.size(), disj.c_ptr());
fml = mk_or(m, disj.size(), disj.data());
}
void apply_filter(udoc_relation& t, app* cond) {

View file

@ -57,11 +57,11 @@ static void tst1() {
std::cout << "new q: "; um.display(std::cout, q); std::cout << "\n";
// q^2
um.mul(q.size(), q.c_ptr(), q.size(), q.c_ptr(), q);
um.mul(q.size(), q.data(), q.size(), q.data(), q);
std::cout << "new q^2: "; um.display(std::cout, q); std::cout << "\n";
// using pw for (q^2)^3
um.pw(q.size(), q.c_ptr(), 3, q);
um.pw(q.size(), q.data(), 3, q);
std::cout << "new (q^2)^3: "; um.display(std::cout, q); std::cout << "\n";
}
@ -73,13 +73,13 @@ static void tst_isolate_roots(polynomial_ref const & p, unsigned prec, mpbq_mana
std::cout << "isolating roots of: "; um.display(std::cout, q); std::cout << "\n";
{
timeit timer(true, "isolate time");
um.isolate_roots(q.size(), q.c_ptr(), bqm, roots, lowers, uppers);
um.isolate_roots(q.size(), q.data(), bqm, roots, lowers, uppers);
}
upolynomial::scoped_upolynomial_sequence sseq(um), fseq(um);
{
timeit timer(true, "sturm time");
um.sturm_seq(q.size(), q.c_ptr(), sseq);
um.sturm_seq(q.size(), q.data(), sseq);
// um.display(std::cout, sseq); std::cout << "\n";
}
@ -87,13 +87,13 @@ static void tst_isolate_roots(polynomial_ref const & p, unsigned prec, mpbq_mana
upolynomial::scoped_numeral_vector q_sqf(um);
{
timeit timer(true, "sqf time");
um.square_free(q.size(), q.c_ptr(), q_sqf);
um.square_free(q.size(), q.data(), q_sqf);
std::cout << "square free part: "; um.display(std::cout, q_sqf); std::cout << "\n";
}
{
timeit timer(true, "fourier time");
um.fourier_seq(q_sqf.size(), q_sqf.c_ptr(), fseq);
um.fourier_seq(q_sqf.size(), q_sqf.data(), fseq);
}
// um.display(std::cout, fseq);
@ -104,7 +104,7 @@ static void tst_isolate_roots(polynomial_ref const & p, unsigned prec, mpbq_mana
ENSURE(roots.size() + lowers.size() == um.sign_variations_at_minus_inf(sseq) - um.sign_variations_at_plus_inf(sseq));
std::cout << "roots:";
for (unsigned i = 0; i < roots.size(); i++) {
ENSURE(um.eval_sign_at(q.size(), q.c_ptr(), roots[i]) == 0);
ENSURE(um.eval_sign_at(q.size(), q.data(), roots[i]) == 0);
std::cout << " "; bqm.display_decimal(std::cout, roots[i], prec);
}
{
@ -118,8 +118,8 @@ static void tst_isolate_roots(polynomial_ref const & p, unsigned prec, mpbq_mana
bqm.display_decimal(std::cout, uppers[i], prec);
std::cout << ")";
// Check interval with Sturm sequence. Small detail: Sturm sequence is for close intervals.
ENSURE(um.eval_sign_at(q.size(), q.c_ptr(), lowers[i]) == 0 ||
um.eval_sign_at(q.size(), q.c_ptr(), uppers[i]) == 0 ||
ENSURE(um.eval_sign_at(q.size(), q.data(), lowers[i]) == 0 ||
um.eval_sign_at(q.size(), q.data(), uppers[i]) == 0 ||
um.sign_variations_at(sseq, lowers[i]) - um.sign_variations_at(sseq, uppers[i]) == 1);
// Fourier sequence may also be used to check if the interval is isolating
TRACE("upolynomial",
@ -129,8 +129,8 @@ static void tst_isolate_roots(polynomial_ref const & p, unsigned prec, mpbq_mana
tout << "fourier upper: " << um.sign_variations_at(fseq, uppers[i]) << "\n";);
unsigned fsv_lower = um.sign_variations_at(fseq, lowers[i]);
unsigned fsv_upper = um.sign_variations_at(fseq, uppers[i]);
VERIFY(um.eval_sign_at(q.size(), q.c_ptr(), lowers[i]) == 0 ||
um.eval_sign_at(q.size(), q.c_ptr(), uppers[i]) == 0 ||
VERIFY(um.eval_sign_at(q.size(), q.data(), lowers[i]) == 0 ||
um.eval_sign_at(q.size(), q.data(), uppers[i]) == 0 ||
// fsv_lower - fsv_upper is an upper bound for the number of roots in the interval
// fsv_upper - fsv_upper - num_roots is even
// Recall that num_roots == 1 in the interval.
@ -138,7 +138,7 @@ static void tst_isolate_roots(polynomial_ref const & p, unsigned prec, mpbq_mana
// Double checking using Descartes bounds for the interval
// Must use square free component.
unsigned dab = um.descartes_bound_a_b(q_sqf.size(), q_sqf.c_ptr(), bqm, lowers[i], uppers[i]);
unsigned dab = um.descartes_bound_a_b(q_sqf.size(), q_sqf.data(), bqm, lowers[i], uppers[i]);
TRACE("upolynomial", tout << "Descartes bound: " << dab << "\n";);
VERIFY(dab == 1);
}
@ -292,9 +292,9 @@ static void tst_remove_one_half() {
upolynomial::scoped_numeral_vector _p(um), _q(um), _r(um);
um.to_numeral_vector(p, _p);
um.to_numeral_vector(r, _r);
ENSURE(um.has_one_half_root(_p.size(), _p.c_ptr()));
um.remove_one_half_root(_p.size(), _p.c_ptr(), _q);
ENSURE(!um.has_one_half_root(_q.size(), _q.c_ptr()));
ENSURE(um.has_one_half_root(_p.size(), _p.data()));
um.remove_one_half_root(_p.size(), _p.data(), _q);
ENSURE(!um.has_one_half_root(_q.size(), _q.data()));
std::cout << "_p: "; um.display(std::cout, _p); std::cout << "\n";
std::cout << "_r: "; um.display(std::cout, _r); std::cout << "\n";
std::cout << "_q: "; um.display(std::cout, _q); std::cout << "\n";
@ -302,11 +302,11 @@ static void tst_remove_one_half() {
p = (((x^5) - 1000000000)^3)*((3*x - 10000000)^2)*((10*x - 632)^2);
um.to_numeral_vector(p, _p);
ENSURE(!um.has_one_half_root(_p.size(), _p.c_ptr()));
ENSURE(!um.has_one_half_root(_p.size(), _p.data()));
p = (x - 2)*(x - 4)*(x - 8)*(x - 16)*(x - 32)*(x - 64)*(2*x - 1)*(4*x - 1)*(8*x - 1)*(16*x - 1)*(32*x - 1);
um.to_numeral_vector(p, _p);
ENSURE(um.has_one_half_root(_p.size(), _p.c_ptr()));
ENSURE(um.has_one_half_root(_p.size(), _p.data()));
}
template<typename pmanager>
@ -316,9 +316,9 @@ static void tst_gcd(polynomial_ref const & p, polynomial_ref const & q, pmanager
um.to_numeral_vector(q, _q);
std::cout << "_p: "; um.display(std::cout, _p); std::cout << "\n";
std::cout << "_q: "; um.display(std::cout, _q); std::cout << std::endl;
um.gcd(_p.size(), _p.c_ptr(), _q.size(), _q.c_ptr(), _r);
um.gcd(_p.size(), _p.data(), _q.size(), _q.data(), _r);
std::cout << "gcd: "; um.display(std::cout, _r); std::cout << "\n";
um.subresultant_gcd(_p.size(), _p.c_ptr(), _q.size(), _q.c_ptr(), _r);
um.subresultant_gcd(_p.size(), _p.data(), _q.size(), _q.data(), _r);
std::cout << "_p: "; um.display(std::cout, _p); std::cout << "\n";
std::cout << "_q: "; um.display(std::cout, _q); std::cout << "\n";
std::cout << "subresultant_gcd: "; um.display(std::cout, _r); std::cout << "\n";
@ -426,7 +426,7 @@ static void tst_ext_gcd() {
upolynomial::zp_manager::scoped_numeral_vector A(z13), B(z13), U(z13), V(z13), D(z13);
um.to_numeral_vector(a, A);
um.to_numeral_vector(b, B);
um.ext_gcd(A.size(), A.c_ptr(), B.size(), B.c_ptr(), U, V, D);
um.ext_gcd(A.size(), A.data(), B.size(), B.data(), U, V, D);
std::cout << "A: "; um.display(std::cout, A); std::cout << "\n";
std::cout << "B: "; um.display(std::cout, B); std::cout << "\n";
std::cout << "U: "; um.display(std::cout, U); std::cout << "\n";
@ -457,7 +457,7 @@ static void tst_ext_gcd_z7() {
upolynomial::zp_manager::scoped_numeral_vector A(z7), B(z7), U(z7), V(z7), D(z7);
um.to_numeral_vector(a, A);
um.to_numeral_vector(b, B);
um.ext_gcd(A.size(), A.c_ptr(), B.size(), B.c_ptr(), U, V, D);
um.ext_gcd(A.size(), A.data(), B.size(), B.data(), U, V, D);
std::cout << "A: "; um.display(std::cout, A); std::cout << "\n";
std::cout << "B: "; um.display(std::cout, B); std::cout << "\n";
std::cout << "U: "; um.display(std::cout, U); std::cout << "\n";
@ -482,7 +482,7 @@ static void tst_sturm() {
upolynomial::scoped_numeral_vector _p(um);
upolynomial::scoped_upolynomial_sequence seq2(um);
um.to_numeral_vector(p, _p);
um.sturm_seq(_p.size(), _p.c_ptr(), seq2);
um.sturm_seq(_p.size(), _p.data(), seq2);
std::cout << "upolynomial sturm seq...\n";
um.display(std::cout, seq2);
}
@ -494,16 +494,16 @@ static void tst_refinable(polynomial_ref const & p, mpbq_manager & bqm, mpbq & a
upolynomial::scoped_numeral_vector _p(um);
um.to_numeral_vector(p, _p);
std::cout << "before (" << bqm.to_string(a) << ", " << bqm.to_string(b) << ")\n";
bool r = um.isolating2refinable(_p.size(), _p.c_ptr(), bqm, a, b);
bool r = um.isolating2refinable(_p.size(), _p.data(), bqm, a, b);
if (r) {
std::cout << "new (" << bqm.to_string(a) << ", " << bqm.to_string(b) << ")\n";
int sign_a = um.eval_sign_at(_p.size(), _p.c_ptr(), a);
int sign_b = um.eval_sign_at(_p.size(), _p.c_ptr(), b);
int sign_a = um.eval_sign_at(_p.size(), _p.data(), a);
int sign_b = um.eval_sign_at(_p.size(), _p.data(), b);
VERIFY(sign_a != 0 && sign_b != 0 && sign_a == -sign_b);
}
else {
std::cout << "new root: " << bqm.to_string(a) << "\n";
ENSURE(um.eval_sign_at(_p.size(), _p.c_ptr(), a) == 0);
ENSURE(um.eval_sign_at(_p.size(), _p.data(), a) == 0);
}
}
@ -561,7 +561,7 @@ static void tst_refine(polynomial_ref const & p, mpbq_manager & bqm, mpbq & a, m
upolynomial::scoped_numeral_vector _p(um);
um.to_numeral_vector(p, _p);
std::cout << "before (" << bqm.to_string(a) << ", " << bqm.to_string(b) << ")\n";
bool r = um.refine(_p.size(), _p.c_ptr(), bqm, a, b, prec_k);
bool r = um.refine(_p.size(), _p.data(), bqm, a, b, prec_k);
if (r) {
std::cout << "new (" << bqm.to_string(a) << ", " << bqm.to_string(b) << ")\n";
std::cout << "as decimal: "; bqm.display_decimal(std::cout, a, prec_k); std::cout << "\n";
@ -608,13 +608,13 @@ static void tst_translate_q() {
upolynomial::manager um(rl, nm);
upolynomial::scoped_numeral_vector _p(um), _q(um);
um.to_numeral_vector(p, _p);
ENSURE(um.eval_sign_at(_p.size(), _p.c_ptr(), mpq(1)) == 0);
ENSURE(um.eval_sign_at(_p.size(), _p.c_ptr(), mpq(2)) == 0);
ENSURE(um.eval_sign_at(_p.size(), _p.c_ptr(), mpq(3)) == 0);
ENSURE(um.eval_sign_at(_p.size(), _p.c_ptr(), mpq(4)) == 0);
ENSURE(um.eval_sign_at(_p.size(), _p.c_ptr(), mpq(-1)) != 0);
ENSURE(um.eval_sign_at(_p.size(), _p.c_ptr(), mpq(5)) != 0);
ENSURE(um.eval_sign_at(_p.size(), _p.c_ptr(), mpq(-2)) != 0);
ENSURE(um.eval_sign_at(_p.size(), _p.data(), mpq(1)) == 0);
ENSURE(um.eval_sign_at(_p.size(), _p.data(), mpq(2)) == 0);
ENSURE(um.eval_sign_at(_p.size(), _p.data(), mpq(3)) == 0);
ENSURE(um.eval_sign_at(_p.size(), _p.data(), mpq(4)) == 0);
ENSURE(um.eval_sign_at(_p.size(), _p.data(), mpq(-1)) != 0);
ENSURE(um.eval_sign_at(_p.size(), _p.data(), mpq(5)) != 0);
ENSURE(um.eval_sign_at(_p.size(), _p.data(), mpq(-2)) != 0);
scoped_mpq c(nm);
nm.set(c, 1, 3);
scoped_mpq r1(nm);
@ -623,32 +623,32 @@ static void tst_translate_q() {
scoped_mpq r2(nm);
r2 = 3;
r2 -= c;
ENSURE(um.eval_sign_at(_p.size(), _p.c_ptr(), r1) != 0);
ENSURE(um.eval_sign_at(_p.size(), _p.c_ptr(), r2) != 0);
ENSURE(um.eval_sign_at(_p.size(), _p.data(), r1) != 0);
ENSURE(um.eval_sign_at(_p.size(), _p.data(), r2) != 0);
std::cout << "p: "; um.display(std::cout, _p); std::cout << "\n";
um.translate_q(_p.size(), _p.c_ptr(), c, _q);
um.translate_q(_p.size(), _p.data(), c, _q);
std::cout << "q: "; um.display(std::cout, _q); std::cout << "\n";
ENSURE(um.eval_sign_at(_q.size(), _q.c_ptr(), mpq(1)) != 0);
ENSURE(um.eval_sign_at(_q.size(), _q.c_ptr(), mpq(2)) != 0);
ENSURE(um.eval_sign_at(_q.size(), _q.c_ptr(), mpq(3)) != 0);
ENSURE(um.eval_sign_at(_q.size(), _q.c_ptr(), mpq(4)) != 0);
ENSURE(um.eval_sign_at(_q.size(), _q.c_ptr(), mpq(-1)) != 0);
ENSURE(um.eval_sign_at(_q.size(), _q.c_ptr(), mpq(5)) != 0);
ENSURE(um.eval_sign_at(_q.size(), _q.c_ptr(), mpq(-2)) != 0);
ENSURE(um.eval_sign_at(_q.size(), _q.c_ptr(), r1) == 0);
ENSURE(um.eval_sign_at(_q.size(), _q.c_ptr(), r2) == 0);
um.p_1_div_x(_p.size(), _p.c_ptr());
ENSURE(um.eval_sign_at(_q.size(), _q.data(), mpq(1)) != 0);
ENSURE(um.eval_sign_at(_q.size(), _q.data(), mpq(2)) != 0);
ENSURE(um.eval_sign_at(_q.size(), _q.data(), mpq(3)) != 0);
ENSURE(um.eval_sign_at(_q.size(), _q.data(), mpq(4)) != 0);
ENSURE(um.eval_sign_at(_q.size(), _q.data(), mpq(-1)) != 0);
ENSURE(um.eval_sign_at(_q.size(), _q.data(), mpq(5)) != 0);
ENSURE(um.eval_sign_at(_q.size(), _q.data(), mpq(-2)) != 0);
ENSURE(um.eval_sign_at(_q.size(), _q.data(), r1) == 0);
ENSURE(um.eval_sign_at(_q.size(), _q.data(), r2) == 0);
um.p_1_div_x(_p.size(), _p.data());
std::cout << "p: "; um.display(std::cout, _p); std::cout << "\n";
ENSURE(um.eval_sign_at(_p.size(), _p.c_ptr(), mpq(1)) == 0);
ENSURE(um.eval_sign_at(_p.size(), _p.data(), mpq(1)) == 0);
nm.set(c, 1, 2);
ENSURE(um.eval_sign_at(_p.size(), _p.c_ptr(), c) == 0);
ENSURE(um.eval_sign_at(_p.size(), _p.data(), c) == 0);
nm.set(c, 1, 3);
ENSURE(um.eval_sign_at(_p.size(), _p.c_ptr(), c) == 0);
ENSURE(um.eval_sign_at(_p.size(), _p.data(), c) == 0);
nm.set(c, 1, 4);
ENSURE(um.eval_sign_at(_p.size(), _p.c_ptr(), c) == 0);
ENSURE(um.eval_sign_at(_p.size(), _p.c_ptr(), mpq(2)) != 0);
ENSURE(um.eval_sign_at(_p.size(), _p.c_ptr(), mpq(3)) != 0);
ENSURE(um.eval_sign_at(_p.size(), _p.c_ptr(), mpq(4)) != 0);
ENSURE(um.eval_sign_at(_p.size(), _p.data(), c) == 0);
ENSURE(um.eval_sign_at(_p.size(), _p.data(), mpq(2)) != 0);
ENSURE(um.eval_sign_at(_p.size(), _p.data(), mpq(3)) != 0);
ENSURE(um.eval_sign_at(_p.size(), _p.data(), mpq(4)) != 0);
}
static void tst_convert_q2bq(unsynch_mpq_manager & m, polynomial_ref const & p, mpq const & a, mpq const & b) {
@ -663,7 +663,7 @@ static void tst_convert_q2bq(unsynch_mpq_manager & m, polynomial_ref const & p,
mpbq_manager bqm(m);
scoped_mpbq c(bqm);
scoped_mpbq d(bqm);
if (!um.convert_q2bq_interval(_p.size(), _p.c_ptr(), a, b, bqm, c, d)) {
if (!um.convert_q2bq_interval(_p.size(), _p.data(), a, b, bqm, c, d)) {
std::cout << "found root: " << c << "\n";
}
else {
@ -738,7 +738,7 @@ static void tst_sturm2() {
upolynomial::scoped_upolynomial_sequence seq2(um);
um.to_numeral_vector(p, _p);
um.to_numeral_vector(q, _q);
um.sturm_tarski_seq(_p.size(), _p.c_ptr(), _q.size(), _q.c_ptr(), seq2);
um.sturm_tarski_seq(_p.size(), _p.data(), _q.size(), _q.data(), seq2);
std::cout << "upolynomial sturm seq...\n";
um.display(std::cout, seq2);
@ -840,7 +840,7 @@ static void tst_exact_div(polynomial_ref const & p1, polynomial_ref const & p2,
std::cout << "------\n";
std::cout << "p1: "; um.display(std::cout, _p1); std::cout << "\n";
std::cout << "p2: "; um.display(std::cout, _p2); std::cout << std::endl;
bool res = um.exact_div(_p1.size(), _p1.c_ptr(), _p2.size(), _p2.c_ptr(), _r);
bool res = um.exact_div(_p1.size(), _p1.data(), _p2.size(), _p2.data(), _r);
if (res) {
std::cout << "r: "; um.display(std::cout, _r); std::cout << "\n";
}
@ -849,7 +849,7 @@ static void tst_exact_div(polynomial_ref const & p1, polynomial_ref const & p2,
}
std::cout.flush();
ENSURE(res == expected);
ENSURE(expected == um.divides(_p1.size(), _p1.c_ptr(), _p2.size(), _p2.c_ptr()));
ENSURE(expected == um.divides(_p1.size(), _p1.data(), _p2.size(), _p2.data()));
ENSURE(!expected || um.eq(_r, _q));
}
@ -1002,9 +1002,9 @@ static void tst_rem(polynomial_ref const & p, polynomial_ref const & q, polynomi
upolynomial::scoped_numeral_vector _p(um), _q(um), _r(um);
um.to_numeral_vector(p, _p);
um.to_numeral_vector(q, _q);
um.rem(_p.size(), _p.c_ptr(), _q.size(), _q.c_ptr(), _r);
um.rem(_p.size(), _p.data(), _q.size(), _q.data(), _r);
polynomial_ref r(p.m());
r = p.m().to_polynomial(_r.size(), _r.c_ptr(), 0);
r = p.m().to_polynomial(_r.size(), _r.data(), 0);
std::cout << "r: " << r << std::endl;
ENSURE(eq(expected, r));
}
@ -1030,7 +1030,7 @@ static void tst_lower_bound(polynomial_ref const & p) {
upolynomial::scoped_numeral_vector _p(um);
um.to_numeral_vector(p, _p);
std::cout << "_p: "; um.display(std::cout, _p); std::cout << "\n";
unsigned k = um.nonzero_root_lower_bound(_p.size(), _p.c_ptr());
unsigned k = um.nonzero_root_lower_bound(_p.size(), _p.data());
std::cout << "_p: "; um.display(std::cout, _p); std::cout << "\n";
std::cout << "k: " << k << "\n";
}

View file

@ -50,7 +50,7 @@ void tst_instantiate(ast_manager & m, expr * f) {
expr_ref_vector cnsts(m);
for (unsigned i = 0; i < q->get_num_decls(); i++)
cnsts.push_back(m.mk_fresh_const("a", q->get_decl_sort(i)));
expr_ref r = instantiate(m, q, cnsts.c_ptr());
expr_ref r = instantiate(m, q, cnsts.data());
TRACE("var_subst", tout << "quantifier:\n" << mk_pp(q, m) << "\nresult:\n" << mk_pp(r, m) << "\n";);
}
}
@ -82,7 +82,7 @@ void tst_subst(ast_manager& m) {
sub1.push_back(x);
sub1.push_back(y);
// replace #1 -> #2, #2 -> #1
e3 = subst(e2, 2, sub1.c_ptr());
e3 = subst(e2, 2, sub1.data());
std::cout << mk_pp(e2, m) << "\n";
std::cout << mk_pp(e3, m) << "\n";
std::cout << mk_pp(t1, m) << "\n";
@ -90,7 +90,7 @@ void tst_subst(ast_manager& m) {
// replace #2 -> #3, #3 -> #2
e2 = m.mk_forall(2, ss, names, e1);
e3 = subst(e2, 2, sub1.c_ptr());
e3 = subst(e2, 2, sub1.data());
std::cout << mk_pp(e2, m) << "\n";
std::cout << mk_pp(e3, m) << "\n";
std::cout << mk_pp(t2, m) << "\n";