mirror of
https://github.com/Z3Prover/z3
synced 2025-06-01 11:51:20 +00:00
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
This commit is contained in:
parent
addbe55823
commit
ee9c797822
3 changed files with 182 additions and 293 deletions
|
@ -978,15 +978,16 @@ namespace smt {
|
|||
void mark_var(theory_var v, svector<theory_var> & vars, var_set & already_found);
|
||||
void mark_dependents(theory_var v, svector<theory_var> & vars, var_set & already_found, row_set & already_visited_rows);
|
||||
void get_non_linear_cluster(svector<theory_var> & vars);
|
||||
std::pair<unsigned, int> analyze_monomial(expr * m) const;
|
||||
expr * get_monomial_body(expr * m) const;
|
||||
rational get_monomial_coeff(expr * m) const;
|
||||
unsigned get_num_vars_in_monomial(expr * m) const;
|
||||
|
||||
typedef std::pair<expr *, unsigned> var_power_pair;
|
||||
var_power_pair get_var_and_degree(expr * m, unsigned i) const;
|
||||
typedef std::pair<unsigned, var_power_pair> n_var_power_pair;
|
||||
n_var_power_pair analyze_monomial(expr * m) const;
|
||||
|
||||
rational decompose_monomial(expr* m, buffer<var_power_pair>& vp) const;
|
||||
|
||||
void display_monomial(std::ostream & out, expr * m) const;
|
||||
bool propagate_nl_upward(expr * m);
|
||||
bool propagate_nl_downward(expr * m, unsigned i);
|
||||
bool propagate_nl_downward(expr * m, var_power_pair const& p);
|
||||
interval mk_interval_for(theory_var v);
|
||||
interval mk_interval_for(expr * n);
|
||||
void mul_bound_of(expr * var, unsigned power, interval & target);
|
||||
|
@ -996,14 +997,13 @@ namespace smt {
|
|||
bool update_bounds_using_interval(theory_var v, interval const & i);
|
||||
bool update_bounds_using_interval(expr * n, interval const & i);
|
||||
bool propagate_nl_bounds(expr * m);
|
||||
bool propagate_nl_bound(expr * m, int i);
|
||||
bool propagate_nl_bounds();
|
||||
bool is_problematic_non_linear_row(row const & r);
|
||||
bool is_mixed_real_integer(row const & r) const;
|
||||
bool is_integer(row const & r) const;
|
||||
typedef std::pair<rational, expr *> coeff_expr;
|
||||
bool get_polynomial_info(buffer<coeff_expr> const & p, sbuffer<var_num_occs> & vars);
|
||||
expr * p2expr(buffer<coeff_expr> & p);
|
||||
expr_ref p2expr(buffer<coeff_expr> & p);
|
||||
expr * power(expr * var, unsigned power);
|
||||
expr * mk_nary_mul(unsigned sz, expr * const * args, bool is_int);
|
||||
expr * mk_nary_add(unsigned sz, expr * const * args, bool is_int);
|
||||
|
@ -1013,8 +1013,8 @@ namespace smt {
|
|||
unsigned get_min_degree(buffer<coeff_expr> & p, expr * var);
|
||||
expr * factor(expr * m, expr * var, unsigned d);
|
||||
bool in_monovariate_monomials(buffer<coeff_expr> & p, expr * var, unsigned & i1, rational & c1, unsigned & n1, unsigned & i2, rational & c2, unsigned & n2);
|
||||
expr * horner(unsigned depth, buffer<coeff_expr> & p, expr * var);
|
||||
expr * cross_nested(unsigned depth, buffer<coeff_expr> & p, expr * var);
|
||||
expr_ref horner(unsigned depth, buffer<coeff_expr> & p, expr * var);
|
||||
expr_ref cross_nested(unsigned depth, buffer<coeff_expr> & p, expr * var);
|
||||
bool is_cross_nested_consistent(buffer<coeff_expr> & p);
|
||||
bool is_cross_nested_consistent(row const & r);
|
||||
bool is_cross_nested_consistent(svector<theory_var> const & nl_cluster);
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue