summaryrefslogtreecommitdiff
path: root/src/util/pseudoboolean.h
diff options
context:
space:
mode:
authorMorgan Deters <mdeters@gmail.com>2011-09-02 17:56:43 +0000
committerMorgan Deters <mdeters@gmail.com>2011-09-02 17:56:43 +0000
commit487e610b88f2a634e3285886ff96717c103338de (patch)
tree7f034b5c9f537195df72ac9ecd7666226dc2ed9f /src/util/pseudoboolean.h
parent90267f8729799f44c6fb33ace11b971a16e78dff (diff)
Partial merge of integers work; this is simple B&B and some pseudoboolean
infrastructure, and takes care not to affect CVC4's performance on LRA benchmarks.
Diffstat (limited to 'src/util/pseudoboolean.h')
-rw-r--r--src/util/pseudoboolean.h54
1 files changed, 54 insertions, 0 deletions
diff --git a/src/util/pseudoboolean.h b/src/util/pseudoboolean.h
new file mode 100644
index 000000000..6d0d4fd26
--- /dev/null
+++ b/src/util/pseudoboolean.h
@@ -0,0 +1,54 @@
+/********************* */
+/*! \file pseudoboolean.h
+ ** \verbatim
+ ** Original author: mdeters
+ ** Major contributors: none
+ ** Minor contributors (to current version): none
+ ** This file is part of the CVC4 prototype.
+ ** Copyright (c) 2009, 2010, 2011 The Analysis of Computer Systems Group (ACSys)
+ ** Courant Institute of Mathematical Sciences
+ ** New York University
+ ** See the file COPYING in the top-level source directory for licensing
+ ** information.\endverbatim
+ **
+ ** \brief A pseudoboolean constant
+ **
+ ** A pseudoboolean constant.
+ **/
+
+#include "cvc4_public.h"
+
+#ifndef __CVC4__PSEUDOBOOLEAN_H
+#define __CVC4__PSEUDOBOOLEAN_H
+
+#include "util/integer.h"
+
+namespace CVC4 {
+
+class Pseudoboolean {
+ bool d_value;
+
+public:
+ Pseudoboolean(bool b);
+ Pseudoboolean(int i);
+ Pseudoboolean(const Integer& i);
+
+ operator bool() const;
+ operator int() const;
+ operator Integer() const;
+
+};/* class Pseudoboolean */
+
+struct PseudobooleanHashStrategy {
+ static inline size_t hash(CVC4::Pseudoboolean pb) {
+ return int(pb);
+ }
+};/* struct PseudobooleanHashStrategy */
+
+inline std::ostream& operator<<(std::ostream& os, CVC4::Pseudoboolean pb) {
+ return os << int(pb);
+}
+
+}/* CVC4 namespace */
+
+#endif /* __CVC4__PSEUDOBOOLEAN_H */
generated by cgit on debian on lair
contact matthew@masot.net with questions or feedback