summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/sat/satoko/solver_api.c12
1 files changed, 8 insertions, 4 deletions
diff --git a/src/sat/satoko/solver_api.c b/src/sat/satoko/solver_api.c
index d404992e..0d073ec7 100644
--- a/src/sat/satoko/solver_api.c
+++ b/src/sat/satoko/solver_api.c
@@ -531,10 +531,14 @@ void satoko_write_dimacs(satoko_t *s, char *fname, int wrt_lrnt, int zero_var)
return;
}
fprintf(file, "p cnf %d %d\n", n_vars, wrt_lrnt ? n_orig + n_lrnts : n_orig);
- for (i = 0; i < vec_char_size(s->assigns); i++)
- if ( var_value(s, i) != VAR_UNASSING )
- fprintf(file, "%d %d\n", var_value(s, i) == LIT_FALSE ? -(int)(i + !zero_var) : i + !zero_var, zero_var ? : 0);
-
+ for (i = 0; i < vec_char_size(s->assigns); i++) {
+ if ( var_value(s, i) != VAR_UNASSING ) {
+ if (zero_var)
+ fprintf(file, "%d\n", var_value(s, i) == LIT_FALSE ? -(int)(i) : i);
+ else
+ fprintf(file, "%d 0\n", var_value(s, i) == LIT_FALSE ? -(int)(i + 1) : i + 1);
+ }
+ }
array = vec_uint_data(s->originals);
for (i = 0; i < vec_uint_size(s->originals); i++)
clause_dump(file, clause_fetch(s, array[i]), !zero_var);