mirror of
https://github.com/Z3Prover/z3
synced 2025-04-13 12:28:44 +00:00
unresolved in nla_intervals
Signed-off-by: Lev Nachmanson <levnach@hotmail.com>
This commit is contained in:
parent
a4ad71bf33
commit
9ce2733105
4
src/math/lp/nla_intervals.cpp
Normal file → Executable file
4
src/math/lp/nla_intervals.cpp
Normal file → Executable file
|
@ -107,15 +107,17 @@ namespace nla {
|
|||
|
||||
lp::impq intervals::get_upper_bound_of_monomial(lpvar j) const {
|
||||
SASSERT(false);
|
||||
throw;
|
||||
}
|
||||
|
||||
lp::impq intervals::get_lower_bound_of_monomial(lpvar j) const {
|
||||
SASSERT(false);
|
||||
throw;
|
||||
}
|
||||
|
||||
bool intervals::product_has_upper_bound(int sign, const svector<lpvar>&) const {
|
||||
interval a;
|
||||
|
||||
throw;
|
||||
}
|
||||
|
||||
bool intervals::monomial_has_lower_bound(lpvar j) const {
|
||||
|
|
17
src/math/lp/nla_intervals.h
Normal file → Executable file
17
src/math/lp/nla_intervals.h
Normal file → Executable file
|
@ -19,6 +19,7 @@
|
|||
--*/
|
||||
#pragma once
|
||||
#include "util/dependency.h"
|
||||
#include "util/small_object_allocator.h"
|
||||
#include "math/lp/nla_common.h"
|
||||
#include "math/lp/lar_solver.h"
|
||||
#include "math/interval/interval.h"
|
||||
|
@ -134,11 +135,14 @@ namespace nla {
|
|||
}
|
||||
};
|
||||
|
||||
ci_dependency_manager m_dep_manager;
|
||||
small_object_allocator m_alloc;
|
||||
ci_value_manager m_val_manager;
|
||||
unsynch_mpq_manager m_num_manager;
|
||||
ci_dependency_manager m_dep_manager;
|
||||
im_config m_config;
|
||||
interval_manager<im_config> m_imanager;
|
||||
region m_region;
|
||||
// lp::lar_solver& m_solver;
|
||||
lp::lar_solver& m_solver;
|
||||
|
||||
typedef interval_manager<im_config>::interval interval;
|
||||
|
||||
|
@ -151,7 +155,14 @@ namespace nla {
|
|||
bool check(lp::lar_term const& t);
|
||||
|
||||
public:
|
||||
intervals(core* c) : m_core(c) {}
|
||||
intervals(core* c, reslimit& lim, lp::lar_solver& s) :
|
||||
m_core(c),
|
||||
m_alloc("intervals"),
|
||||
m_dep_manager(m_val_manager, m_alloc),
|
||||
m_config(m_num_manager, m_dep_manager),
|
||||
m_imanager(lim, im_config(m_num_manager, m_dep_manager)),
|
||||
m_solver(s)
|
||||
{}
|
||||
bool check();
|
||||
bool monomial_has_lower_bound(lpvar j) const;
|
||||
bool monomial_has_upper_bound(lpvar j) const;
|
||||
|
|
|
@ -55,7 +55,7 @@ void solver::pop(unsigned n) {
|
|||
}
|
||||
|
||||
|
||||
solver::solver(lp::lar_solver& s): m_core(alloc(core, s)), m_intervals(m_core) {
|
||||
solver::solver(lp::lar_solver& s): m_core(alloc(core, s)), m_intervals(m_core, m_res_limit, s) {
|
||||
}
|
||||
|
||||
solver::~solver() {
|
||||
|
|
|
@ -33,6 +33,7 @@ namespace nla {
|
|||
// nonlinear integer incremental linear solver
|
||||
class solver {
|
||||
core* m_core;
|
||||
reslimit m_res_limit;
|
||||
intervals m_intervals;
|
||||
public:
|
||||
void add_monomial(lpvar v, unsigned sz, lpvar const* vs);
|
||||
|
|
Loading…
Reference in a new issue