summaryrefslogtreecommitdiff
path: root/sys
diff options
context:
space:
mode:
authoraiju <devnull@localhost>2018-03-22 13:15:44 +0000
committeraiju <devnull@localhost>2018-03-22 13:15:44 +0000
commit8389465f94cce8a571910c8575d5a87c0b8dbd5c (patch)
tree616f20a3e1556da75473b9443ac60b2bae200a5a /sys
parent2e2ae33a47951ec99ddefd61b8f16ffb47a88fed (diff)
sat: satget: include unit literals
Diffstat (limited to 'sys')
-rw-r--r--sys/src/libsat/satget.c8
1 files changed, 7 insertions, 1 deletions
diff --git a/sys/src/libsat/satget.c b/sys/src/libsat/satget.c
index 264311135..72d2789bd 100644
--- a/sys/src/libsat/satget.c
+++ b/sys/src/libsat/satget.c
@@ -8,7 +8,7 @@ satget(SATSolve *s, int i, int *t, int n)
{
SATClause *c;
SATLit *l;
- int j, k;
+ int j, k, m;
for(c = s->cl; c != s->learncl; c = c->next)
if(i-- == 0){
@@ -23,6 +23,12 @@ satget(SATSolve *s, int i, int *t, int n)
if(n > 1) t[1] = signf(l->bimp[k]);
return 2;
}
+ m = s->lvl == 0 ? s->ntrail : s->decbd[1];
+ for(k = 0; k < m; k++)
+ if(i-- == 0){
+ if(n > 0) t[0] = signf(s->trail[k]);
+ return 1;
+ }
for(; c != 0; c = c->next)
if(i-- == 0){
for(j = 0; j < n && j < c->n; j++)