summaryrefslogtreecommitdiffstats
path: root/src/sat/asat/solver.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/sat/asat/solver.c')
-rw-r--r--src/sat/asat/solver.c9
1 files changed, 8 insertions, 1 deletions
diff --git a/src/sat/asat/solver.c b/src/sat/asat/solver.c
index 6f8fe037..b9851a54 100644
--- a/src/sat/asat/solver.c
+++ b/src/sat/asat/solver.c
@@ -20,6 +20,7 @@ OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWA
// Modified to compile with MS Visual Studio 6.0 by Alan Mishchenko
#include <stdio.h>
+#include <string.h>
#include <assert.h>
#include <math.h>
#include <time.h>
@@ -505,6 +506,8 @@ static void solver_record(solver* s, veci* cls)
clause* c = (veci_size(cls) > 1) ? clause_new(s,begin,end,1) : (clause*)0;
enqueue(s,*begin,c);
+Sat_SolverTraceWrite( s, begin, end, 0 );
+
assert(veci_size(cls) > 0);
if (c != 0) {
@@ -948,6 +951,7 @@ static lbool solver_search(solver* s, int nof_conflicts, int nof_learnts)
solver* solver_new(void)
{
solver* s = (solver*)malloc(sizeof(solver));
+ memset( s, 0, sizeof(solver) );
// initialize vectors
vec_new(&s->clauses);
@@ -1100,7 +1104,10 @@ bool solver_addclause(solver* s, lit* begin, lit* end)
if (j == begin) // empty clause
return 0;
- else if (j - begin == 1) // unit clause
+
+Sat_SolverTraceWrite( s, begin, end, 1 );
+
+ if (j - begin == 1) // unit clause
return enqueue(s,*begin,(clause*)0);
// create new clause