mirror of
https://github.com/Z3Prover/z3
synced 2025-04-29 20:05:51 +00:00
handle the empty intersection in nla_intervals
Signed-off-by: Lev Nachmanson <levnach@hotmail.com>
This commit is contained in:
parent
6e8d9001dc
commit
4621767968
2 changed files with 83 additions and 47 deletions
|
@ -67,19 +67,20 @@ public:
|
|||
bool interval_from_term(const nex& e, scoped_dep_interval& i);
|
||||
|
||||
|
||||
template <dep_intervals::with_deps_t wd>
|
||||
void interval_of_sum_no_term(const nex_sum& e, scoped_dep_interval&);
|
||||
template <dep_intervals::with_deps_t wd, typename T>
|
||||
bool interval_of_sum_no_term(const nex_sum& e, scoped_dep_interval&, const std::function<void (const T&)>& f );
|
||||
|
||||
template <dep_intervals::with_deps_t wd>
|
||||
void interval_of_sum(const nex_sum& e, scoped_dep_interval&);
|
||||
template <dep_intervals::with_deps_t wd, typename T>
|
||||
bool interval_of_sum(const nex_sum& e, scoped_dep_interval&, const std::function<void (const T&)>& );
|
||||
|
||||
template <dep_intervals::with_deps_t wd>
|
||||
void interval_of_mul(const nex_mul& e, scoped_dep_interval&);
|
||||
template <dep_intervals::with_deps_t wd, typename T>
|
||||
bool interval_of_mul(const nex_mul& e, scoped_dep_interval&, const std::function<void (const T&)>&);
|
||||
|
||||
template <dep_intervals::with_deps_t wd>
|
||||
void to_power(scoped_dep_interval&, unsigned);
|
||||
template <dep_intervals::with_deps_t wd>
|
||||
void interval_of_expr(const nex* e, unsigned p, scoped_dep_interval&);
|
||||
|
||||
template <dep_intervals::with_deps_t wd, typename T>
|
||||
bool interval_of_expr(const nex* e, unsigned p, scoped_dep_interval&, const std::function<void (const T&)>& f);
|
||||
bool upper_is_inf(const interval& a) const { return m_dep_intervals.upper_is_inf(a); }
|
||||
bool lower_is_inf(const interval& a) const { return m_dep_intervals.lower_is_inf(a); }
|
||||
|
||||
|
@ -98,5 +99,6 @@ public:
|
|||
static void add_linear_to_vector(const nex*, vector<std::pair<rational, lpvar>>&);
|
||||
static void add_mul_of_degree_one_to_vector(const nex_mul*, vector<std::pair<rational, lpvar>>&);
|
||||
lpvar find_term_column(const lp::lar_term&, rational& a) const;
|
||||
std::ostream& display_separating_interval(std::ostream& out, const nex*n, const scoped_dep_interval& interv_wd, u_dependency* initial_deps);
|
||||
}; // end of intervals
|
||||
} // end of namespace nla
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue