Fix for a problem caused by using a != instead of == in generateConflictBelow()....
authorTim King <taking@cs.nyu.edu>
Fri, 29 Oct 2010 21:10:46 +0000 (21:10 +0000)
committerTim King <taking@cs.nyu.edu>
Fri, 29 Oct 2010 21:10:46 +0000 (21:10 +0000)
src/theory/arith/simplex.cpp
src/theory/arith/tableau.cpp

index be2b87252c03a0b0bc7d4d0205dd4cc999a08942..e435fd3dc9e9aabd5ebd91e0ea07242334c2a9be 100644 (file)
@@ -388,8 +388,9 @@ Node SimplexDecisionProcedure::privateUpdateInconsistentVars(){
       }
       d_griggioRuleQueue.pop();
     }
+
     d_pivotStage = false;
-    return updateInconsistentVars();
+    return privateUpdateInconsistentVars();
   }
 
   Unreachable();
@@ -451,7 +452,7 @@ Node SimplexDecisionProcedure::generateConflictBelow(ArithVar conflictVar){
 
   for(ReducedRowVector::NonZeroIterator nbi = row_i->beginNonZero(), end = row_i->endNonZero(); nbi != end; ++nbi){
     ArithVar nonbasic = getArithVar(*nbi);
-    if(nonbasic != conflictVar) continue;
+    if(nonbasic == conflictVar) continue;
 
     const Rational& a_ij = nbi->second;
 
index c22c21a4608d75c7c04b20370260cea1202a7b3b..3c1cd36ba922db188e5135209667502ae4708ab6 100644 (file)
@@ -63,6 +63,9 @@ void Tableau::pivot(ArithVar x_r, ArithVar x_s){
   Assert(d_basicManager.isMember(x_r));
   Assert(!d_basicManager.isMember(x_s));
 
+  Debug("tableau") << "Tableau::pivot("
+                   <<  x_r <<", " <<x_s <<")"  << endl;
+
   ReducedRowVector* row_s = lookup(x_r);
   Assert(row_s->has(x_s));