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

preparing a call to pdd_grobner

Signed-off-by: Lev Nachmanson <levnach@hotmail.com>
This commit is contained in:
Lev Nachmanson 2019-12-25 20:33:06 -08:00
parent 5e19a52772
commit dd9935de7d
8 changed files with 185 additions and 205 deletions

View file

@ -31,6 +31,8 @@
#include "math/lp/horner.h"
#include "math/lp/nla_grobner.h"
#include "math/lp/nla_intervals.h"
#include "math/grobner/pdd_grobner.h"
namespace nla {
@ -91,12 +93,17 @@ public:
monotone m_monotone;
intervals m_intervals;
horner m_horner;
nla_settings m_nla_settings;
grobner m_grobner;
nla_settings m_nla_settings;
grobner m_nex_grobner;
dd::pdd_manager m_pdd_manager;
dd::grobner m_pdd_grobner;
private:
emonics m_emons;
svector<lpvar> m_add_buffer;
mutable lp::int_set m_active_var_set;
lp::int_set m_rows;
public:
reslimit m_reslim;
@ -383,6 +390,15 @@ public:
lpvar map_to_root(lpvar) const;
std::ostream& print_terms(std::ostream&) const;
std::ostream& print_term( const lp::lar_term&, std::ostream&) const;
void run_pdd_grobner();
void find_nl_cluster(nex_creator&);
void prepare_rows_and_active_vars();
void add_var_and_its_factors_to_q_and_collect_new_rows(lpvar j, svector<lpvar>& q);
void init_nex_grobner(nex_creator&);
std::unordered_set<lpvar> get_vars_of_expr_with_opening_terms(const nex* e);
void display_matrix_of_m_rows(std::ostream & out) const;
void set_active_vars_weights(nex_creator&);
var_weight get_var_weight(lpvar) const;
}; // end of core
struct pp_mon {