3
0
Fork 0
mirror of https://github.com/Z3Prover/z3 synced 2025-04-28 19:35:50 +00:00

fix interval calculations to accomodate changes in nex expressions

Signed-off-by: Lev Nachmanson <levnach@microsoft.com>
This commit is contained in:
Lev Nachmanson 2019-10-14 17:24:52 -07:00 committed by Lev Nachmanson
parent dc39ef761c
commit fbdc28f2ae
4 changed files with 82 additions and 60 deletions

View file

@ -39,8 +39,8 @@ public:
template <typename T> // T has an iterator of (coeff(), var())
bool lemmas_on_row(const T&);
template <typename T> bool row_is_interesting(const T&) const;
intervals::interval interval_of_expr_with_deps(const nex* e);
intervals::interval interval_of_expr(const nex* e);
intervals::interval interval_of_expr_with_deps(const nex* e, unsigned power);
intervals::interval interval_of_expr(const nex* e, unsigned power);
intervals::interval interval_of_sum(const nex_sum*);
intervals::interval interval_of_sum_no_term(const nex_sum*);
intervals::interval interval_of_mul(const nex_mul*);
@ -60,7 +60,7 @@ public:
lpvar find_term_column(const lp::lar_term &, rational & a) const;
static lp::lar_term expression_to_normalized_term(const nex_sum*, rational& a, rational & b);
static void add_linear_to_vector(const nex*, vector<std::pair<rational, lpvar>> &);
static void add_mul_to_vector(const nex_mul*, vector<std::pair<rational, lpvar>> &);
static void add_mul_of_degree_one_to_vector(const nex_mul*, vector<std::pair<rational, lpvar>> &);
bool interval_from_term_with_deps(const nex* e, interv&) const;
const nex* get_zero_interval_child(const nex_mul*) const;
const nex* get_inf_interval_child(const nex_sum*) const;