mirror of
https://github.com/Z3Prover/z3
synced 2025-04-28 19:35:50 +00:00
adding monomial bounds
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
This commit is contained in:
parent
bdecbe4ed7
commit
4e51633e6f
6 changed files with 136 additions and 117 deletions
|
@ -10,20 +10,21 @@
|
|||
|
||||
#include "math/lp/nla_common.h"
|
||||
#include "math/lp/nla_intervals.h"
|
||||
#include "math/lp/nex.h"
|
||||
#include "math/lp/cross_nested.h"
|
||||
#include "math/lp/u_set.h"
|
||||
|
||||
namespace nla {
|
||||
class core;
|
||||
|
||||
class monomial_bounds : common {
|
||||
dep_intervals& dep;
|
||||
void var2interval(lpvar v, scoped_dep_interval& i);
|
||||
bool propagate_down(monic const& m, lpvar u);
|
||||
bool propagate_value(dep_interval& range, lpvar v);
|
||||
void compute_product(unsigned start, monic const& m, scoped_dep_interval& i);
|
||||
bool propagate(monic const& m);
|
||||
bool propagate_down(monic const& m, dep_interval& mi, lpvar v, dep_interval& product);
|
||||
void analyze_monomial(monic const& m, unsigned& num_free, lpvar& free_v, unsigned& power) const;
|
||||
bool is_free(lpvar v) const;
|
||||
bool is_zero(lpvar v) const;
|
||||
public:
|
||||
monomial_bounds(core* core);
|
||||
bool operator()();
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue