summaryrefslogtreecommitdiff
path: root/libs/ezsat/ezminisat.h
diff options
context:
space:
mode:
Diffstat (limited to 'libs/ezsat/ezminisat.h')
-rw-r--r--libs/ezsat/ezminisat.h46
1 files changed, 46 insertions, 0 deletions
diff --git a/libs/ezsat/ezminisat.h b/libs/ezsat/ezminisat.h
new file mode 100644
index 00000000..4171985b
--- /dev/null
+++ b/libs/ezsat/ezminisat.h
@@ -0,0 +1,46 @@
+/*
+ * ezSAT -- A simple and easy to use CNF generator for SAT solvers
+ *
+ * Copyright (C) 2013 Clifford Wolf <clifford@clifford.at>
+ *
+ * Permission to use, copy, modify, and/or distribute this software for any
+ * purpose with or without fee is hereby granted, provided that the above
+ * copyright notice and this permission notice appear in all copies.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
+ * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
+ * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
+ * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
+ * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
+ * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
+ * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
+ *
+ */
+
+#ifndef EZMINISAT_H
+#define EZMINISAT_H
+
+#include "ezsat.h"
+
+// minisat is using limit macros and format macros in their headers that
+// can be the source of some troubles when used from c++11. thefore we
+// don't force ezSAT users to use minisat headers..
+namespace Minisat {
+ class Solver;
+}
+
+class ezMiniSAT : public ezSAT
+{
+private:
+ Minisat::Solver *minisatSolver;
+ std::vector<int> minisatVars;
+ bool foundContradiction;
+
+public:
+ ezMiniSAT();
+ virtual ~ezMiniSAT();
+ virtual void clear();
+ virtual bool solver(const std::vector<int> &modelExpressions, std::vector<bool> &modelValues, const std::vector<int> &assumptions);
+};
+
+#endif