summaryrefslogtreecommitdiffstats
path: root/src/sat/bsat
diff options
context:
space:
mode:
authorAlan Mishchenko <alanmi@berkeley.edu>2016-04-04 12:51:05 -0700
committerAlan Mishchenko <alanmi@berkeley.edu>2016-04-04 12:51:05 -0700
commit720082753f06fbb0429def0f3e67ccc7848b89b2 (patch)
treeaaf98c2dcee10e017609283fa601f3b0328935a1 /src/sat/bsat
parent4a954c1b23aad9b7189dd76164d3e5a61ca6b39f (diff)
downloadabc-720082753f06fbb0429def0f3e67ccc7848b89b2.tar.gz
abc-720082753f06fbb0429def0f3e67ccc7848b89b2.tar.bz2
abc-720082753f06fbb0429def0f3e67ccc7848b89b2.zip
Improvements to delay-optimization in &satlut.
Diffstat (limited to 'src/sat/bsat')
-rw-r--r--src/sat/bsat/satSolver.c9
1 files changed, 8 insertions, 1 deletions
diff --git a/src/sat/bsat/satSolver.c b/src/sat/bsat/satSolver.c
index 1a10ff88..58f2ed21 100644
--- a/src/sat/bsat/satSolver.c
+++ b/src/sat/bsat/satSolver.c
@@ -1452,8 +1452,15 @@ void sat_solver_rollback( sat_solver* s )
{
cla* pArray = veci_begin(&s->wlists[i]);
for ( j = k = 0; k < veci_size(&s->wlists[i]); k++ )
- if ( Sat_MemClauseUsed(pMem, pArray[k]) )
+ {
+ if ( clause_is_lit(pArray[k]) )
+ {
+ if ( clause_read_lit(pArray[k]) < s->iVarPivot*2 )
+ pArray[j++] = pArray[k];
+ }
+ else if ( Sat_MemClauseUsed(pMem, pArray[k]) )
pArray[j++] = pArray[k];
+ }
veci_resize(&s->wlists[i],j);
}
// reset watcher lists