diff options
author | Morgan Deters <mdeters@gmail.com> | 2011-09-02 17:56:43 +0000 |
---|---|---|
committer | Morgan Deters <mdeters@gmail.com> | 2011-09-02 17:56:43 +0000 |
commit | 487e610b88f2a634e3285886ff96717c103338de (patch) | |
tree | 7f034b5c9f537195df72ac9ecd7666226dc2ed9f /src/util/pseudoboolean.h | |
parent | 90267f8729799f44c6fb33ace11b971a16e78dff (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.h | 54 |
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 */ |