summaryrefslogtreecommitdiff
path: root/src/prop/minisat/minisat.h
diff options
context:
space:
mode:
authorTim King <taking@google.com>2016-01-08 16:44:57 -0800
committerTim King <taking@google.com>2016-01-08 16:44:57 -0800
commitf4ef7af0a2295691f281ee1604dfeb4082fe229c (patch)
tree995e512e5669cec6bbc9447d00ec912d5e4c19e3 /src/prop/minisat/minisat.h
parentdef0a07f9676a292a849d7fc8269ffd0901ce156 (diff)
Removing StatisticsRegistry's static functions current() and registerStat().
- The functionality the get the StatisticsRegistry attached to the SmtEngine was previously through StatisticsRegistry::current(). This is the dominant StatisticsRegistry in the code. (There is another StatisticsRegistry attached to the NodeManager.) Having this be a static function on StatisticsRegistry requires the use of an SmtEngine in the wrong compilation unit. - Usages of StatisticsRegistry::current() that were visible in prop/{bvminisat,minisat} has been removed. A pointer to the relevant StatisticsRegistry should be passed instead into the constructor. - The function StatisticsRegistry::current() has been replaced by SmtScope::currentStatisticsRegistry(). SmtScope is in the libcvc4 package, where SmtEngine is available in the compilation unit. - The function smtStatisticsRegistry() is a synonym for SmtScope::currentStatisticsRegistry() in smt/smt_statistics_registry.h. This header has fewer include dependencies than the one for SmtScope. - Correspondingly, the static functions StatisticsRegistry::{registerStat, unregisterStat} have been removed. One should instead use smtStatisticsRegistry()->{registerStat,unregisterStat} instead. - The KEEP_STATISTIC macro has been moved into smt/smt_statistics_registry.h. - Documents the reason StatisticsRegistry is CVC4_PUBLIC. This lets me remove the warning I added. - Removing most operators for timespec from statistics_registry.h file. These a bit error prone in clang. - Most of the really confusing ifdef's in util/statistics_registry.h are gone.
Diffstat (limited to 'src/prop/minisat/minisat.h')
-rw-r--r--src/prop/minisat/minisat.h25
1 files changed, 14 insertions, 11 deletions
diff --git a/src/prop/minisat/minisat.h b/src/prop/minisat/minisat.h
index 2564572c2..f279b3a5b 100644
--- a/src/prop/minisat/minisat.h
+++ b/src/prop/minisat/minisat.h
@@ -20,23 +20,15 @@
#include "prop/sat_solver.h"
#include "prop/minisat/simp/SimpSolver.h"
+#include "util/statistics_registry.h"
namespace CVC4 {
namespace prop {
class MinisatSatSolver : public DPLLSatSolverInterface {
-
- /** The SatSolver used */
- Minisat::SimpSolver* d_minisat;
-
- /** Context we will be using to synchronize the sat solver */
- context::Context* d_context;
-
- void setupOptions();
-
public:
- MinisatSatSolver();
+ MinisatSatSolver(StatisticsRegistry* registry);
~MinisatSatSolver() throw();
;
@@ -83,15 +75,26 @@ public:
bool isDecision(SatVariable decn) const;
+private:
+
+ /** The SatSolver used */
+ Minisat::SimpSolver* d_minisat;
+
+ /** Context we will be using to synchronize the sat solver */
+ context::Context* d_context;
+
+ void setupOptions();
+
class Statistics {
private:
+ StatisticsRegistry* d_registry;
ReferenceStat<uint64_t> d_statStarts, d_statDecisions;
ReferenceStat<uint64_t> d_statRndDecisions, d_statPropagations;
ReferenceStat<uint64_t> d_statConflicts, d_statClausesLiterals;
ReferenceStat<uint64_t> d_statLearntsLiterals, d_statMaxLiterals;
ReferenceStat<uint64_t> d_statTotLiterals;
public:
- Statistics();
+ Statistics(StatisticsRegistry* registry);
~Statistics();
void init(Minisat::SimpSolver* d_minisat);
};/* class MinisatSatSolver::Statistics */
generated by cgit on debian on lair
contact matthew@masot.net with questions or feedback