summaryrefslogtreecommitdiff
path: root/src/theory/arith/tableau.h
diff options
context:
space:
mode:
authorTim King <taking@cs.nyu.edu>2010-10-30 19:18:36 +0000
committerTim King <taking@cs.nyu.edu>2010-10-30 19:18:36 +0000
commit29f5a9be53b572d2369d70947942563825c2fa27 (patch)
treed2c579867aade669bb6b1fef03fbdc005c538c7d /src/theory/arith/tableau.h
parentb3ce68e7803dcb868004155b6d61a88a8dbe6c6f (diff)
Adds a hueristic from Alberto's thesis. For a fixed window the row count is used to select which non-basic variable is a row in made basic.
Diffstat (limited to 'src/theory/arith/tableau.h')
-rw-r--r--src/theory/arith/tableau.h8
1 files changed, 8 insertions, 0 deletions
diff --git a/src/theory/arith/tableau.h b/src/theory/arith/tableau.h
index 758e5d92d..5e34ac1a2 100644
--- a/src/theory/arith/tableau.h
+++ b/src/theory/arith/tableau.h
@@ -97,6 +97,8 @@ private:
ActivityMonitor& d_activityMonitor;
ArithVarDenseSet& d_basicManager;
+ std::vector<uint32_t> d_rowCount;
+
public:
/**
* Constructs an empty tableau.
@@ -111,6 +113,7 @@ public:
void increaseSize(){
d_activeBasicVars.increaseSize();
d_rowsTable.push_back(NULL);
+ d_rowCount.push_back(0);
}
ArithVarSet::iterator begin(){
@@ -133,6 +136,11 @@ private:
}
public:
+ uint32_t getRowCount(ArithVar x){
+ Assert(x < d_rowCount.size());
+ return d_rowCount[x];
+ }
+
void addRow(ArithVar basicVar,
const std::vector<Rational>& coeffs,
const std::vector<ArithVar>& variables);
generated by cgit on debian on lair
contact matthew@masot.net with questions or feedback