summaryrefslogtreecommitdiffstats
path: root/src/sat/satoko
diff options
context:
space:
mode:
authorAlan Mishchenko <alanmi@berkeley.edu>2017-09-06 20:33:53 -0700
committerAlan Mishchenko <alanmi@berkeley.edu>2017-09-06 20:33:53 -0700
commit3ffb098d645ad4c8aefc25bc27864a31c559dc2d (patch)
tree5cd47fb46188571901160c8b30a620c47e39a12b /src/sat/satoko
parent97dd6019bf58f12953364855dd7845e6e47eae57 (diff)
downloadabc-3ffb098d645ad4c8aefc25bc27864a31c559dc2d.tar.gz
abc-3ffb098d645ad4c8aefc25bc27864a31c559dc2d.tar.bz2
abc-3ffb098d645ad4c8aefc25bc27864a31c559dc2d.zip
Adding global conflict counter to Satoko (to make it apple-to-apple with other solvers).
Diffstat (limited to 'src/sat/satoko')
-rw-r--r--src/sat/satoko/satoko.h1
-rw-r--r--src/sat/satoko/solver.c1
-rw-r--r--src/sat/satoko/solver_api.c4
3 files changed, 5 insertions, 1 deletions
diff --git a/src/sat/satoko/satoko.h b/src/sat/satoko/satoko.h
index fb646c01..7ee8cd85 100644
--- a/src/sat/satoko/satoko.h
+++ b/src/sat/satoko/satoko.h
@@ -78,6 +78,7 @@ struct satoko_stats {
long n_propagations;
long n_inspects;
long n_conflicts;
+ long n_conflicts_all;
long n_original_lits;
long n_learnt_lits;
diff --git a/src/sat/satoko/solver.c b/src/sat/satoko/solver.c
index 9f5d3424..6e58e8a5 100644
--- a/src/sat/satoko/solver.c
+++ b/src/sat/satoko/solver.c
@@ -631,6 +631,7 @@ char solver_search(solver_t *s)
unsigned confl_cref = solver_propagate(s);
if (confl_cref != UNDEF) {
s->stats.n_conflicts++;
+ s->stats.n_conflicts_all++;
if (solver_dlevel(s) == 0)
return SATOKO_UNSAT;
/* Restart heuristic */
diff --git a/src/sat/satoko/solver_api.c b/src/sat/satoko/solver_api.c
index a0b26b5c..adf30cef 100644
--- a/src/sat/satoko/solver_api.c
+++ b/src/sat/satoko/solver_api.c
@@ -45,7 +45,9 @@ static inline int clause_is_satisfied(solver_t *s, struct clause *clause)
static inline void solver_clean_stats(solver_t *s)
{
+ int n_conflicts_all = s->stats.n_conflicts_all;
memset(&(s->stats), 0, sizeof(struct satoko_stats));
+ s->stats.n_conflicts_all = n_conflicts_all;
}
static inline void print_opts(solver_t *s)
@@ -629,7 +631,7 @@ int satoko_learntnum(satoko_t *s)
int satoko_conflictnum(satoko_t *s)
{
- return satoko_stats(s)->n_conflicts;
+ return satoko_stats(s)->n_conflicts_all;
}
void satoko_set_stop(satoko_t *s, int * pstop)