mirror of
https://github.com/Z3Prover/z3
synced 2025-04-15 21:38:44 +00:00
separate out functions that call set_var_interval1/2 into functions for linker
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
This commit is contained in:
parent
f533220482
commit
e9e1fb2f37
|
@ -275,16 +275,7 @@ namespace nla {
|
|||
return false;
|
||||
|
||||
eval.var2intervals() = [&](lpvar j, bool deps, scoped_ptr_vector<scoped_dep_interval>& intervals) {
|
||||
verbose_stream() << "get-intervals\n";
|
||||
scoped_ptr<scoped_dep_interval> a = alloc(scoped_dep_interval, di);
|
||||
scoped_ptr<scoped_dep_interval> b = alloc(scoped_dep_interval, di);
|
||||
if (deps) c().m_intervals.set_var_interval1<dd::w_dep::with_deps>(j, *a);
|
||||
else c().m_intervals.set_var_interval1<dd::w_dep::without_deps>(j, *a);
|
||||
intervals.push_back(a.detach());
|
||||
if (deps && c().m_intervals.set_var_interval2<dd::w_dep::with_deps>(j, *b))
|
||||
intervals.push_back(b.detach());
|
||||
if (!deps && c().m_intervals.set_var_interval2<dd::w_dep::without_deps>(j, *b))
|
||||
intervals.push_back(b.detach());
|
||||
var2intervals(j, deps, intervals);
|
||||
};
|
||||
// TODO - relax bound dependencies to weakest that admit within interval -mx, mx.
|
||||
eval.explain(lo, i, i_wd);
|
||||
|
@ -325,6 +316,19 @@ namespace nla {
|
|||
return true;
|
||||
}
|
||||
|
||||
void grobner::var2intervals(lpvar j, bool deps, scoped_ptr_vector<scoped_dep_interval>& intervals) {
|
||||
auto& di = c().m_intervals.get_dep_intervals();
|
||||
scoped_ptr<scoped_dep_interval> a = alloc(scoped_dep_interval, di);
|
||||
scoped_ptr<scoped_dep_interval> b = alloc(scoped_dep_interval, di);
|
||||
if (deps) c().m_intervals.set_var_interval1<dd::w_dep::with_deps>(j, *a);
|
||||
else c().m_intervals.set_var_interval1<dd::w_dep::without_deps>(j, *a);
|
||||
intervals.push_back(a.detach());
|
||||
if (deps && c().m_intervals.set_var_interval2<dd::w_dep::with_deps>(j, *b))
|
||||
intervals.push_back(b.detach());
|
||||
if (!deps && c().m_intervals.set_var_interval2<dd::w_dep::without_deps>(j, *b))
|
||||
intervals.push_back(b.detach());
|
||||
}
|
||||
|
||||
|
||||
void grobner::add_dependencies(new_lemma& lemma, const dd::solver::equation& eq) {
|
||||
lp::explanation ex;
|
||||
|
|
|
@ -46,6 +46,7 @@ namespace nla {
|
|||
|
||||
bool propagate_gcd();
|
||||
bool propagate_gcd(const dd::solver::equation& eq);
|
||||
|
||||
|
||||
void add_dependencies(new_lemma& lemma, const dd::solver::equation& eq);
|
||||
|
||||
|
|
Loading…
Reference in a new issue