diff --git a/src/calObj.hh b/src/calObj.hh index 90067ac..a6e91bd 100644 --- a/src/calObj.hh +++ b/src/calObj.hh @@ -481,6 +481,24 @@ public: BDD Xnor(const BDD &g) const { return BDD(this->_bddManager, Cal_BddXnor(this->_bddManager, this->_bdd, g._bdd)); } + ////////////////////////////////////////////////////////////////////////////// + /// \brief Logical Difference operation. + ////////////////////////////////////////////////////////////////////////////// + BDD Diff(const BDD &g) const + { return *this & ~g; } + + ////////////////////////////////////////////////////////////////////////////// + /// \see BDD::Diff() + ////////////////////////////////////////////////////////////////////////////// + BDD operator- (const BDD &other) const + { return this->Diff(other); } + + ////////////////////////////////////////////////////////////////////////////// + /// \see BDD::Diff() + ////////////////////////////////////////////////////////////////////////////// + BDD& operator-= (const BDD &other) + { return (*this = (*this) - other); } + ////////////////////////////////////////////////////////////////////////////// /// \brief A satisfying assignment of this BDD. ///