mirror of
https://github.com/Z3Prover/z3
synced 2025-04-28 19:35:50 +00:00
Lpbounds (#4492)
* remove inheritance from bound propagation Signed-off-by: Lev Nachmanson <levnach@hotmail.com> * less inheritance Signed-off-by: Lev Nachmanson <levnach@hotmail.com> * less inheritance Signed-off-by: Lev Nachmanson <levnach@hotmail.com> * fix the build Signed-off-by: Lev Nachmanson <levnach@hotmail.com>
This commit is contained in:
parent
29ce22cfb1
commit
742be83503
9 changed files with 185 additions and 211 deletions
|
@ -24,14 +24,13 @@ Revision History:
|
|||
|
||||
#include "util/vector.h"
|
||||
#include "math/lp/implied_bound.h"
|
||||
#include "math/lp/lp_bound_propagator.h"
|
||||
#include "math/lp/test_bound_analyzer.h"
|
||||
|
||||
namespace lp {
|
||||
template <typename C> // C plays a role of a container
|
||||
template <typename C, typename B> // C plays a role of a container, B - lp_bound_propagator
|
||||
class bound_analyzer_on_row {
|
||||
const C& m_row;
|
||||
lp_bound_propagator & m_bp;
|
||||
B & m_bp;
|
||||
unsigned m_row_or_term_index;
|
||||
int m_column_of_u; // index of an unlimited from above monoid
|
||||
// -1 means that such a value is not found, -2 means that at least two of such monoids were found
|
||||
|
@ -45,7 +44,7 @@ public :
|
|||
unsigned bj, // basis column for the row
|
||||
const numeric_pair<mpq>& rs,
|
||||
unsigned row_or_term_index,
|
||||
lp_bound_propagator & bp)
|
||||
B & bp)
|
||||
:
|
||||
m_row(it),
|
||||
m_bp(bp),
|
||||
|
@ -55,11 +54,12 @@ public :
|
|||
m_rs(rs)
|
||||
{}
|
||||
|
||||
|
||||
static void analyze_row(const C & row,
|
||||
unsigned bj, // basis column for the row
|
||||
const numeric_pair<mpq>& rs,
|
||||
unsigned row_or_term_index,
|
||||
lp_bound_propagator & bp) {
|
||||
B & bp) {
|
||||
bound_analyzer_on_row a(row, bj, rs, row_or_term_index, bp);
|
||||
a.analyze();
|
||||
// TBD: a.analyze_eq();
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue