mirror of
https://github.com/Z3Prover/z3
synced 2025-04-23 17:15:31 +00:00
make difference logic simplex optimizer incremental
Signed-off-by: Nikolaj Bjorner <nbjorner@microsoft.com>
This commit is contained in:
parent
c1580fb85a
commit
d9c61464d0
6 changed files with 159 additions and 56 deletions
|
@ -142,6 +142,7 @@ namespace simplex {
|
|||
void set_value(var_t var, eps_numeral const& b);
|
||||
void set_cancel(bool f) { m_cancel = f; }
|
||||
void set_max_iterations(unsigned m) { m_max_iterations = m; }
|
||||
void reset();
|
||||
lbool make_feasible();
|
||||
lbool minimize(var_t var);
|
||||
eps_numeral const& get_value(var_t v);
|
||||
|
|
|
@ -310,6 +310,16 @@ namespace simplex {
|
|||
}
|
||||
}
|
||||
|
||||
template<typename Ext>
|
||||
void simplex<Ext>::reset() {
|
||||
M.reset();
|
||||
m_to_patch.reset();
|
||||
m_vars.reset();
|
||||
m_row2base.reset();
|
||||
m_left_basis.reset();
|
||||
m_base_vars.reset();
|
||||
}
|
||||
|
||||
template<typename Ext>
|
||||
lbool simplex<Ext>::make_feasible() {
|
||||
++m_stats.m_num_checks;
|
||||
|
|
|
@ -145,6 +145,7 @@ namespace simplex {
|
|||
|
||||
sparse_matrix(manager& m): m(m) {}
|
||||
~sparse_matrix();
|
||||
void reset();
|
||||
|
||||
class row {
|
||||
unsigned m_id;
|
||||
|
|
|
@ -280,6 +280,16 @@ namespace simplex {
|
|||
}
|
||||
}
|
||||
|
||||
template<typename Ext>
|
||||
void sparse_matrix<Ext>::reset() {
|
||||
m_rows.reset();
|
||||
m_dead_rows.reset();
|
||||
m_columns.reset();
|
||||
m_var_pos.reset();
|
||||
m_var_pos_idx.reset();
|
||||
|
||||
}
|
||||
|
||||
template<typename Ext>
|
||||
void sparse_matrix<Ext>::ensure_var(var_t v) {
|
||||
while (m_columns.size() <= v) {
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue