diff options
author | aiju <devnull@localhost> | 2018-03-17 19:26:26 +0000 |
---|---|---|
committer | aiju <devnull@localhost> | 2018-03-17 19:26:26 +0000 |
commit | c2c9562e3c2994d87f65ab09779190d1e7e09517 (patch) | |
tree | 6dc692d7358361da761bae454a1a858ec4c412d5 /sys/src/libsat/satmore.c | |
parent | e0be49d7f1dcb50048bead1b7d62633448482246 (diff) |
add libsat
Diffstat (limited to 'sys/src/libsat/satmore.c')
-rw-r--r-- | sys/src/libsat/satmore.c | 24 |
1 files changed, 24 insertions, 0 deletions
diff --git a/sys/src/libsat/satmore.c b/sys/src/libsat/satmore.c new file mode 100644 index 000000000..7a316f1ab --- /dev/null +++ b/sys/src/libsat/satmore.c @@ -0,0 +1,24 @@ +#include <u.h> +#include <libc.h> +#include <sat.h> +#include "impl.h" + +int +satmore(SATSolve *s) +{ + int *a, i, n; + + if(s == nil) return 1; + s->scrap = a = satrealloc(s, nil, s->nvar * sizeof(int)); + n = 0; + for(i = 0; i < s->nvar; i++) + switch(s->lit[2*i].val){ + case 0: a[n++] = i+1; break; + case 1: a[n++] = -(i+1); break; + } + if(n > 0) + satadd1(s, a, n); + free(a); + s->scrap = nil; + return satsolve(s); +} |