3
0
Fork 0
mirror of https://github.com/Z3Prover/z3 synced 2026-02-20 07:24:40 +00:00

testing simplex

Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
This commit is contained in:
Nikolaj Bjorner 2014-02-02 13:48:02 +01:00
parent 363af825c0
commit 9ba4b532f6
5 changed files with 199 additions and 51 deletions

View file

@ -92,8 +92,7 @@ namespace simplex {
void del_row_entry(unsigned idx);
void compress(manager& m, vector<column> & cols);
void compress_if_needed(manager& m, vector<column> & cols);
void save_var_pos(svector<int> & result_map) const;
void reset_var_pos(svector<int> & result_map) const;
void save_var_pos(svector<int> & result_map, unsigned_vector& idxs) const;
bool is_coeff_of(var_t v, numeral const & expected) const;
int get_idx_of(var_t v) const;
};
@ -125,6 +124,7 @@ namespace simplex {
svector<unsigned> m_dead_rows; // rows to recycle
vector<column> m_columns; // per var
svector<int> m_var_pos; // temporary map from variables to positions in row
unsigned_vector m_var_pos_idx; // indices in m_var_pos
bool well_formed_row(unsigned row_id) const;
bool well_formed_column(unsigned column_id) const;
@ -138,7 +138,7 @@ namespace simplex {
class row {
unsigned m_id;
public:
row(unsigned r):m_id(r) {}
explicit row(unsigned r):m_id(r) {}
row():m_id(UINT_MAX) {}
bool operator!=(row const& other) const {
return m_id != other.m_id;
@ -149,7 +149,7 @@ namespace simplex {
void ensure_var(var_t v);
row mk_row();
void add(row r, numeral const& n, var_t var);
void add_var(row r, numeral const& n, var_t var);
void add(row r, numeral const& n, row src);
void mul(row r, numeral const& n);
void neg(row r);