mirror of
https://github.com/Z3Prover/z3
synced 2025-04-05 17:14:07 +00:00
pass resource limits by reference
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
This commit is contained in:
parent
bea0d45e6a
commit
32055a31db
|
@ -160,7 +160,7 @@ private:
|
|||
mutable lp::u_set m_active_var_set;
|
||||
lp::u_set m_rows;
|
||||
public:
|
||||
reslimit m_reslim;
|
||||
reslimit& m_reslim;
|
||||
|
||||
void insert_to_refine(lpvar j);
|
||||
void erase_from_to_refine(lpvar j);
|
||||
|
|
|
@ -51,8 +51,9 @@ void solver::pop(unsigned n) {
|
|||
m_core->pop(n);
|
||||
}
|
||||
|
||||
solver::solver(lp::lar_solver& s): m_core(alloc(core, s, m_res_limit)),
|
||||
m_nra(s, m_res_limit, *m_core) {
|
||||
solver::solver(lp::lar_solver& s, reslimit& limit):
|
||||
m_core(alloc(core, s, limit)),
|
||||
m_nra(s, limit, *m_core) {
|
||||
}
|
||||
|
||||
bool solver::influences_nl_var(lpvar j) const {
|
||||
|
|
|
@ -22,7 +22,6 @@ namespace nla {
|
|||
class core;
|
||||
// nonlinear integer incremental linear solver
|
||||
class solver {
|
||||
reslimit m_res_limit;
|
||||
core* m_core;
|
||||
nra::solver m_nra;
|
||||
bool m_use_nra_model;
|
||||
|
@ -31,7 +30,7 @@ class solver {
|
|||
public:
|
||||
void add_monic(lpvar v, unsigned sz, lpvar const* vs);
|
||||
|
||||
solver(lp::lar_solver& s);
|
||||
solver(lp::lar_solver& s, reslimit& limit);
|
||||
~solver();
|
||||
nla_settings& settings();
|
||||
void push();
|
||||
|
|
|
@ -387,7 +387,7 @@ class theory_lra::imp {
|
|||
|
||||
void ensure_nla() {
|
||||
if (!m_nla) {
|
||||
m_nla = alloc(nla::solver, *m_solver.get());
|
||||
m_nla = alloc(nla::solver, *m_solver.get(), m.limit());
|
||||
for (auto const& _s : m_scopes) {
|
||||
(void)_s;
|
||||
m_nla->push();
|
||||
|
|
|
@ -169,7 +169,7 @@ void test_basic_lemma_for_mon_neutral_from_factors_to_monomial_0() {
|
|||
|
||||
reslimit l;
|
||||
params_ref p;
|
||||
solver nla(s);
|
||||
solver nla(s, l);
|
||||
svector<lpvar> v; v.push_back(lp_b);v.push_back(lp_d);v.push_back(lp_e);
|
||||
nla.add_monic(lp_bde, v.size(), v.begin());
|
||||
v.clear();
|
||||
|
@ -246,7 +246,7 @@ void test_basic_lemma_for_mon_neutral_from_factors_to_monomial_1() {
|
|||
|
||||
reslimit l;
|
||||
params_ref p;
|
||||
solver nla(s);
|
||||
solver nla(s, l);
|
||||
svector<lpvar> v; v.push_back(lp_b);v.push_back(lp_d);v.push_back(lp_e);
|
||||
nla.add_monic(lp_bde, v.size(), v.begin());
|
||||
|
||||
|
@ -317,7 +317,7 @@ void test_basic_lemma_for_mon_zero_from_factors_to_monomial() {
|
|||
|
||||
reslimit l;
|
||||
params_ref p;
|
||||
solver nla(s);
|
||||
solver nla(s, l);
|
||||
|
||||
create_abcde(nla,
|
||||
lp_a,
|
||||
|
@ -379,7 +379,7 @@ void test_basic_lemma_for_mon_zero_from_monomial_to_factors() {
|
|||
|
||||
reslimit l;
|
||||
params_ref p;
|
||||
solver nla(s);
|
||||
solver nla(s, l);
|
||||
|
||||
// create monomial acd
|
||||
unsigned_vector vec;
|
||||
|
@ -439,7 +439,7 @@ void test_basic_lemma_for_mon_neutral_from_monomial_to_factors() {
|
|||
|
||||
reslimit l;
|
||||
params_ref p;
|
||||
solver nla(s);
|
||||
solver nla(s, l);
|
||||
|
||||
create_abcde(nla,
|
||||
lp_a,
|
||||
|
@ -514,7 +514,7 @@ void test_horner() {
|
|||
|
||||
reslimit l;
|
||||
params_ref p;
|
||||
solver nla(s);
|
||||
solver nla(s, l);
|
||||
vector<lpvar> v;
|
||||
v.push_back(a); v.push_back(b);
|
||||
nla.add_monic(lp_ab, v.size(), v.begin());
|
||||
|
@ -551,7 +551,7 @@ void test_basic_sign_lemma() {
|
|||
|
||||
reslimit l;
|
||||
params_ref p;
|
||||
solver nla(s);
|
||||
solver nla(s, l);
|
||||
// create monomial bde
|
||||
vector<unsigned> vec;
|
||||
|
||||
|
@ -626,7 +626,7 @@ void test_order_lemma_params(bool var_equiv, int sign) {
|
|||
|
||||
reslimit l;
|
||||
params_ref p;
|
||||
solver nla(s);
|
||||
solver nla(s,l);
|
||||
// create monomial ab
|
||||
vector<unsigned> vec;
|
||||
vec.push_back(lp_a);
|
||||
|
@ -757,7 +757,7 @@ void test_monotone_lemma() {
|
|||
|
||||
reslimit l;
|
||||
params_ref p;
|
||||
solver nla(s);
|
||||
solver nla(s, l);
|
||||
// create monomial ab
|
||||
vector<unsigned> vec;
|
||||
vec.push_back(lp_a);
|
||||
|
@ -814,7 +814,7 @@ void test_tangent_lemma_rat() {
|
|||
s_set_column_value_test(s, lp_ab, v);
|
||||
reslimit l;
|
||||
params_ref p;
|
||||
solver nla(s);
|
||||
solver nla(s, l);
|
||||
// create monomial ab
|
||||
vector<unsigned> vec;
|
||||
vec.push_back(lp_a);
|
||||
|
@ -841,7 +841,7 @@ void test_tangent_lemma_reg() {
|
|||
s_set_column_value_test(s, lp_ab, rational(11));
|
||||
reslimit l;
|
||||
params_ref p;
|
||||
solver nla(s);
|
||||
solver nla(s, l);
|
||||
// create monomial ab
|
||||
vector<unsigned> vec;
|
||||
vec.push_back(lp_a);
|
||||
|
@ -885,7 +885,7 @@ void test_tangent_lemma_equiv() {
|
|||
s_set_column_value_test(s, lp_a, - s.get_column_value(lp_k));
|
||||
reslimit l;
|
||||
params_ref p;
|
||||
solver nla(s);
|
||||
solver nla(s, l);
|
||||
// create monomial ab
|
||||
vector<unsigned> vec;
|
||||
vec.push_back(lp_a);
|
||||
|
|
Loading…
Reference in a new issue