mirror of
https://github.com/Z3Prover/z3
synced 2025-04-27 19:05:51 +00:00
replace lean to lp
Signed-off-by: Lev Nachmanson <levnach@microsoft.com>
This commit is contained in:
parent
db0a3f4358
commit
d41c65a4f9
72 changed files with 1334 additions and 1213 deletions
|
@ -34,7 +34,7 @@ Revision History:
|
|||
#include "util/lp/square_dense_submatrix.h"
|
||||
#include "util/lp/dense_matrix.h"
|
||||
namespace lp {
|
||||
#ifdef Z3DEBUG
|
||||
#ifdef LEAN_DEBUG
|
||||
template <typename T, typename X> // print the nr x nc submatrix at the top left corner
|
||||
void print_submatrix(sparse_matrix<T, X> & m, unsigned mr, unsigned nc);
|
||||
|
||||
|
@ -47,7 +47,7 @@ void print_matrix(sparse_matrix<T, X>& m, std::ostream & out);
|
|||
|
||||
template <typename T, typename X>
|
||||
X dot_product(const vector<T> & a, const vector<X> & b) {
|
||||
SASSERT(a.size() == b.size());
|
||||
lp_assert(a.size() == b.size());
|
||||
auto r = zero_of_type<X>();
|
||||
for (unsigned i = 0; i < a.size(); i++) {
|
||||
r += a[i] * b[i];
|
||||
|
@ -113,8 +113,8 @@ public:
|
|||
#endif
|
||||
m_i = p.apply_reverse(m_i);
|
||||
|
||||
#ifdef Z3DEBUG
|
||||
// SASSERT(*this == deb);
|
||||
#ifdef LEAN_DEBUG
|
||||
// lp_assert(*this == deb);
|
||||
#endif
|
||||
}
|
||||
}; // end of one_elem_on_diag
|
||||
|
@ -306,7 +306,7 @@ public:
|
|||
bool need_to_refactor() { return m_refactor_counter >= 200; }
|
||||
|
||||
void adjust_dimension_with_matrix_A() {
|
||||
SASSERT(m_A.row_count() >= m_dim);
|
||||
lp_assert(m_A.row_count() >= m_dim);
|
||||
m_dim = m_A.row_count();
|
||||
m_U.resize(m_dim);
|
||||
m_Q.resize(m_dim);
|
||||
|
@ -320,7 +320,7 @@ public:
|
|||
unsigned m = m_A.row_count();
|
||||
unsigned m_prev = m_U.dimension();
|
||||
|
||||
SASSERT(m_A.column_count() == heading.size());
|
||||
lp_assert(m_A.column_count() == heading.size());
|
||||
|
||||
for (unsigned i = m_prev; i < m; i++) {
|
||||
for (const row_cell<T> & c : m_A.m_rows[i]) {
|
||||
|
@ -336,14 +336,14 @@ public:
|
|||
|
||||
void add_last_rows_to_B(const vector<int> & heading, const std::unordered_set<unsigned> & columns_to_replace) {
|
||||
unsigned m = m_A.row_count();
|
||||
SASSERT(m_A.column_count() == heading.size());
|
||||
lp_assert(m_A.column_count() == heading.size());
|
||||
adjust_dimension_with_matrix_A();
|
||||
m_w_for_extension.resize(m);
|
||||
// At this moment the LU is correct
|
||||
// for B extended by only by ones at the diagonal in the lower right corner
|
||||
|
||||
for (unsigned j :columns_to_replace) {
|
||||
SASSERT(heading[j] >= 0);
|
||||
lp_assert(heading[j] >= 0);
|
||||
replace_column_with_only_change_at_last_rows(j, heading[j]);
|
||||
if (get_status() == LU_status::Degenerated)
|
||||
break;
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue