mirror of
https://github.com/Z3Prover/z3
synced 2025-04-28 03:15:50 +00:00
toward full patching in nl
Signed-off-by: Lev Nachmanson <levnach@hotmail.com>
This commit is contained in:
parent
c58bd3105b
commit
91d9b0319e
3 changed files with 26 additions and 26 deletions
|
@ -312,10 +312,9 @@ public:
|
|||
inline void remove_column_from_inf_set(unsigned j) {
|
||||
m_mpq_lar_core_solver.m_r_solver.remove_column_from_inf_set(j);
|
||||
}
|
||||
template <typename CallBeforeChange, typename ChangeReport>
|
||||
template <typename ChangeReport>
|
||||
void change_basic_columns_dependend_on_a_given_nb_column_report(unsigned j,
|
||||
const numeric_pair<mpq> & delta,
|
||||
const CallBeforeChange& before,
|
||||
const ChangeReport& after) {
|
||||
if (use_tableau()) {
|
||||
for (const auto & c : A_r().m_columns[j]) {
|
||||
|
@ -323,7 +322,6 @@ public:
|
|||
if (tableau_with_costs()) {
|
||||
m_basic_columns_with_changed_cost.insert(bj);
|
||||
}
|
||||
before(bj);
|
||||
m_mpq_lar_core_solver.m_r_solver.add_delta_to_x_and_track_feasibility(bj, - A_r().get_val(c) * delta);
|
||||
after(bj);
|
||||
TRACE("change_x_del",
|
||||
|
@ -344,25 +342,22 @@ public:
|
|||
}
|
||||
}
|
||||
|
||||
template <typename CallBeforeChange, typename ChangeReport>
|
||||
template <typename ChangeReport>
|
||||
void set_value_for_nbasic_column_report(unsigned j,
|
||||
const impq & new_val,
|
||||
const CallBeforeChange& before,
|
||||
const ChangeReport& after) {
|
||||
|
||||
lp_assert(!is_base(j));
|
||||
before(j);
|
||||
auto & x = m_mpq_lar_core_solver.m_r_x[j];
|
||||
auto delta = new_val - x;
|
||||
x = new_val;
|
||||
after(j);
|
||||
change_basic_columns_dependend_on_a_given_nb_column_report(j, delta, before, after);
|
||||
change_basic_columns_dependend_on_a_given_nb_column_report(j, delta, after);
|
||||
}
|
||||
|
||||
template <typename Blocker, typename CallBeforeChange, typename ChangeReport>
|
||||
template <typename Blocker, typename ChangeReport>
|
||||
bool try_to_patch(lpvar j, const mpq& val,
|
||||
const Blocker& blocker,
|
||||
const CallBeforeChange& before,
|
||||
const ChangeReport& change_report) {
|
||||
if (is_base(j)) {
|
||||
TRACE("nla_solver", get_int_solver()->display_row_info(tout, row_of_basic_column(j)) << "\n";);
|
||||
|
@ -385,7 +380,7 @@ public:
|
|||
return false;
|
||||
}
|
||||
|
||||
set_value_for_nbasic_column_report(j, ival, before, change_report);
|
||||
set_value_for_nbasic_column_report(j, ival, change_report);
|
||||
return true;
|
||||
}
|
||||
inline bool column_has_upper_bound(unsigned j) const {
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue