3
0
Fork 0
mirror of https://github.com/Z3Prover/z3 synced 2025-04-27 02:45:51 +00:00

hook up nla_intervals

Signed-off-by: Lev Nachmanson <levnach@hotmail.com>
This commit is contained in:
Lev Nachmanson 2019-06-05 20:40:51 -07:00
parent 453a5d2de1
commit a4ad71bf33
6 changed files with 54 additions and 43 deletions

View file

@ -6,17 +6,17 @@
namespace nla {
bool intervals::check() {
m_region.reset();
for (auto const& m : c().emons()) {
if (!check(m)) {
return false;
}
}
for (auto const& t : m_solver.terms()) {
if (!check(*t)) {
return false;
}
}
// m_region.reset();
// for (auto const& m : m_core->emons()) {
// if (!check(m)) {
// return false;
// }
// }
// for (auto const& t : m_solver.terms()) {
// if (!check(*t)) {
// return false;
// }
// }
return true;
}
@ -104,4 +104,27 @@ namespace nla {
// convert term into factors for improved precision
return true;
}
lp::impq intervals::get_upper_bound_of_monomial(lpvar j) const {
SASSERT(false);
}
lp::impq intervals::get_lower_bound_of_monomial(lpvar j) const {
SASSERT(false);
}
bool intervals::product_has_upper_bound(int sign, const svector<lpvar>&) const {
interval a;
}
bool intervals::monomial_has_lower_bound(lpvar j) const {
const monomial& m = m_core->emons()[j];
return product_has_upper_bound(1, m.vars());
}
bool intervals::monomial_has_upper_bound(lpvar j) const {
const monomial& m = m_core->emons()[j];
return product_has_upper_bound(-1, m.vars());
}
}