3
0
Fork 0
mirror of https://github.com/Z3Prover/z3 synced 2025-10-09 01:11:55 +00:00

track rounded columns in lar_solver

Signed-off-by: Lev Nachmanson <levnach@hotmail.com>
This commit is contained in:
Lev Nachmanson 2020-01-23 12:59:45 -08:00 committed by Nikolaj Bjorner
parent f9917edf6c
commit 4ba4d41346
5 changed files with 47 additions and 27 deletions

View file

@ -99,6 +99,7 @@ class lar_solver : public column_namer {
int_set m_columns_with_changed_bound;
int_set m_rows_with_changed_bounds;
int_set m_basic_columns_with_changed_cost;
int_set m_rounded_columns;
stacked_value<int> m_infeasible_column_index; // such can be found at the initialization step
stacked_value<unsigned> m_term_count;
vector<lar_term*> m_terms;
@ -190,6 +191,8 @@ public:
void add_constraint_from_term_and_create_new_column_row(unsigned term_j, const lar_term* term,
lconstraint_kind kind, const mpq & right_side);
unsigned row_of_basic_column(unsigned) const;
void decide_on_strategy_and_adjust_initial_state();
void adjust_initial_state();
@ -375,14 +378,10 @@ public:
void update_x_and_inf_costs_for_columns_with_changed_bounds_tableau();
void restore_rounded_columns();
void solve_with_core_solver();
numeric_pair<mpq> get_basic_var_value_from_row_directly(unsigned i);
numeric_pair<mpq> get_basic_var_value_from_row(unsigned i);
template <typename K, typename L>