Commit 27caed8d by Alan Mishchenko

Experiments with SAT sweeping.

parent 3f0cb631
...@@ -43019,7 +43019,7 @@ int Abc_CommandAbc9Test( Abc_Frame_t * pAbc, int argc, char ** argv ) ...@@ -43019,7 +43019,7 @@ int Abc_CommandAbc9Test( Abc_Frame_t * pAbc, int argc, char ** argv )
// Jf_ManTestCnf( pAbc->pGia ); // Jf_ManTestCnf( pAbc->pGia );
// Gia_ManCheckFalseTest( pAbc->pGia, nFrames ); // Gia_ManCheckFalseTest( pAbc->pGia, nFrames );
// Gia_ParTest( pAbc->pGia, nWords, nProcs ); // Gia_ParTest( pAbc->pGia, nWords, nProcs );
Cec2_ManSimulateTest( pAbc->pGia );
// printf( "\nThis command is currently disabled.\n\n" ); // printf( "\nThis command is currently disabled.\n\n" );
return 0; return 0;
usage: usage:
...@@ -364,6 +364,7 @@ static inline void solver_analyze_final(solver_t *s, unsigned lit) ...@@ -364,6 +364,7 @@ static inline void solver_analyze_final(solver_t *s, unsigned lit)
{ {
int i; int i;
vec_uint_clear(s->final_conflict);
vec_uint_push_back(s->final_conflict, lit); vec_uint_push_back(s->final_conflict, lit);
if (solver_dlevel(s) == 0) if (solver_dlevel(s) == 0)
return; return;
......
...@@ -356,10 +356,15 @@ void satoko_rollback(satoko_t *s) ...@@ -356,10 +356,15 @@ void satoko_rollback(satoko_t *s)
vec_uint_shrink(s->originals, s->book_cl_orig); vec_uint_shrink(s->originals, s->book_cl_orig);
vec_uint_shrink(s->learnts, s->book_cl_lrnt); vec_uint_shrink(s->learnts, s->book_cl_lrnt);
/* Shrink variable related vectors */ /* Shrink variable related vectors */
for (i = s->book_vars; i < 2 * vec_char_size(s->assigns); i++)
vec_wl_at(s->watches, i)->size = 0;
s->watches->size = s->book_vars;
vec_act_shrink(s->activity, s->book_vars); vec_act_shrink(s->activity, s->book_vars);
vec_uint_shrink(s->levels, s->book_vars); vec_uint_shrink(s->levels, s->book_vars);
vec_uint_shrink(s->reasons, s->book_vars); vec_uint_shrink(s->reasons, s->book_vars);
vec_uint_shrink(s->stamps, s->book_vars);
vec_char_shrink(s->assigns, s->book_vars); vec_char_shrink(s->assigns, s->book_vars);
vec_char_shrink(s->seen, s->book_vars);
vec_char_shrink(s->polarity, s->book_vars); vec_char_shrink(s->polarity, s->book_vars);
solver_rebuild_order(s); solver_rebuild_order(s);
/* Rewind solver and cancel level 0 assignments to the trail */ /* Rewind solver and cancel level 0 assignments to the trail */
...@@ -369,6 +374,10 @@ void satoko_rollback(satoko_t *s) ...@@ -369,6 +374,10 @@ void satoko_rollback(satoko_t *s)
s->book_cl_lrnt = 0; s->book_cl_lrnt = 0;
s->book_vars = 0; s->book_vars = 0;
s->book_trail = 0; s->book_trail = 0;
if (!s->book_vars) {
s->all_clauses->size = 0;
s->all_clauses->wasted = 0;
}
} }
void satoko_mark_cone(satoko_t *s, int * pvars, int n_vars) void satoko_mark_cone(satoko_t *s, int * pvars, int n_vars)
......
...@@ -154,7 +154,7 @@ static inline vec_wl_t *vec_wl_alloc(unsigned cap) ...@@ -154,7 +154,7 @@ static inline vec_wl_t *vec_wl_alloc(unsigned cap)
static inline void vec_wl_free(vec_wl_t *vec_wl) static inline void vec_wl_free(vec_wl_t *vec_wl)
{ {
unsigned i; unsigned i;
for (i = 0; i < vec_wl->size; i++) for (i = 0; i < vec_wl->cap; i++)
watch_list_free(vec_wl->watch_lists + i); watch_list_free(vec_wl->watch_lists + i);
satoko_free(vec_wl->watch_lists); satoko_free(vec_wl->watch_lists);
satoko_free(vec_wl); satoko_free(vec_wl);
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment