diff options
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); +} |
