summaryrefslogtreecommitdiffstats
path: root/src/sat/glucose/Glucose.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/sat/glucose/Glucose.cpp')
-rw-r--r--src/sat/glucose/Glucose.cpp63
1 files changed, 63 insertions, 0 deletions
diff --git a/src/sat/glucose/Glucose.cpp b/src/sat/glucose/Glucose.cpp
index 2a67d903..bfe90361 100644
--- a/src/sat/glucose/Glucose.cpp
+++ b/src/sat/glucose/Glucose.cpp
@@ -1428,3 +1428,66 @@ void Solver::garbageCollect()
ca.size()*ClauseAllocator::Unit_Size, to.size()*ClauseAllocator::Unit_Size);
to.moveTo(ca);
}
+
+void Solver::reset()
+{
+ // Reset everything
+ ok = true;
+ K = (double)opt_K;
+ R = (double)opt_R;
+ firstReduceDB = opt_first_reduce_db;
+ var_decay = (double)opt_var_decay;
+ //max_var_decay = opt_max_var_decay;
+ solves = starts = decisions = propagations = conflicts = conflictsRestarts = 0;
+ curRestart = 1;
+ cla_inc = var_inc = 1;
+ watches.clear(false); // We don't free the memory, new calls should be of the same size order.
+ watchesBin.clear(false);
+ //unaryWatches.clear(false);
+ qhead = 0;
+ simpDB_assigns = -1;
+ simpDB_props = 0;
+ order_heap.clear(false);
+ progress_estimate = 0;
+ //lastLearntClause = CRef_Undef;
+ conflict_budget = -1;
+ propagation_budget = -1;
+ nbVarsInitialFormula = INT32_MAX;
+ totalTime4Sat = 0.;
+ totalTime4Unsat = 0.;
+ nbSatCalls = nbUnsatCalls = 0;
+ MYFLAG = 0;
+ lbdQueue.clear(false);
+ lbdQueue.initSize(sizeLBDQueue);
+ trailQueue.clear(false);
+ trailQueue.initSize(sizeTrailQueue);
+ sumLBD = 0;
+ nbclausesbeforereduce = firstReduceDB;
+ //stats.clear();
+ //stats.growTo(coreStatsSize, 0);
+ clauses.clear(false);
+ learnts.clear(false);
+ //permanentLearnts.clear(false);
+ //unaryWatchedClauses.clear(false);
+ model.clear(false);
+ conflict.clear(false);
+ activity.clear(false);
+ assigns.clear(false);
+ polarity.clear(false);
+ //forceUNSAT.clear(false);
+ decision.clear(false);
+ trail.clear(false);
+ nbpos.clear(false);
+ trail_lim.clear(false);
+ vardata.clear(false);
+ assumptions.clear(false);
+ permDiff.clear(false);
+ lastDecisionLevel.clear(false);
+ ca.clear();
+ seen.clear(false);
+ analyze_stack.clear(false);
+ analyze_toclear.clear(false);
+ add_tmp.clear(false);
+ assumptionPositions.clear(false);
+ initialPositions.clear(false);
+} \ No newline at end of file