Preprocessing check
[satune.git] / src / csolver.cc
index a8ffc492c156064cb6fdb693b7084b76c737d478..45163be66ded9b2b608b518a83564cef2f328496 100644 (file)
@@ -34,6 +34,7 @@ CSolver::CSolver() :
        boolTrue(BooleanEdge(new BooleanConst(true))),
        boolFalse(boolTrue.negate()),
        unsat(false),
+       booleanVarUsed(false),
        tuner(NULL),
        elapsedTime(0),
        satsolverTimeout(NOTIMEOUT)
@@ -136,6 +137,7 @@ void CSolver::resetSolver() {
        boolTrue = BooleanEdge(new BooleanConst(true));
        boolFalse = boolTrue.negate();
        unsat = false;
+       booleanVarUsed = false;
        elapsedTime = 0;
        tuner = NULL;
        satEncoder->resetSATEncoder();
@@ -308,6 +310,8 @@ Function *CSolver::completeTable(Table *table, UndefinedBehavior behavior) {
 BooleanEdge CSolver::getBooleanVar(VarType type) {
        Boolean *boolean = new BooleanVar(type);
        allBooleans.push(boolean);
+       if(!booleanVarUsed)
+               booleanVarUsed = true;
        return BooleanEdge(boolean);
 }
 
@@ -577,7 +581,6 @@ void CSolver::inferFixedOrders() {
        }
 }
 
-#define NANOSEC 1000000000.0
 int CSolver::solve() {
        long long startTime = getTimeNano();
        bool deleteTuner = false;
@@ -625,10 +628,10 @@ int CSolver::solve() {
 
        VarOrderingOpt bor(this, satEncoder);
        bor.doTransform();
-       
+
        time2 = getTimeNano();
        model_print("Encoding Graph Time: %f\n", (time2 - time1) / NANOSEC);
-       
+
        satEncoder->encodeAllSATEncoder(this);
        time1 = getTimeNano();