This class defines a C++ interface to CUDD's
zero-suppressed decision diagram structure.
More...
#include <CCuddZDD.h>
Public Types | |
typedef CCuddZDD | self |
Name type of *this. | |
typedef CCuddDDBase< self > | base |
Name the type, which self is inherited from. | |
Public Member Functions | |
CCuddZDD (mgrcore_ptr mgr, node_type bddNode) | |
Construct ZDD from manager core and node. | |
CCuddZDD () | |
Default constructor. | |
CCuddZDD (const self &from) | |
Copy constructor. | |
~CCuddZDD () | |
Destructor. | |
self & | operator= (const self &right) |
Assignment operator. | |
*self | Ite (const self &g, const self &h) const |
If-Then-Else operation using current diagram as head. | |
int | Count () const |
Determine the number of minterms. | |
double | CountDouble () const |
Determine the number of minterms. | |
double | CountMinterm (int path) const |
Counts minterms; takes a path specifing variables number in the support. | |
Logical operations | |
bool | operator== (const self &other) const |
bool | operator!= (const self &other) const |
bool | operator<= (const self &other) const |
bool | operator>= (const self &other) const |
bool | operator< (const self &rhs) const |
bool | operator> (const self &other) const |
Functions for print useful information | |
void | print (int nvars, int verbosity=1) const |
void | PrintMinterm () const |
void | PrintCover () const |
Protected Member Functions | |
void | deref () |
Derefering current diagram node, if unused. | |
Friends | |
class | CCuddInterface |
This class defines a C++ interface to CUDD's
zero-suppressed decision diagram structure.
The purpose of this wrapper is just to provide an efficient and save way of handling the decision diagrams. It extends CCuddDD for handling ZDDs.
typedef CCuddDDBase<self> CCuddZDD::base |
Name the type, which self is inherited from.
typedef CCuddZDD CCuddZDD::self |
Name type of *this.
Reimplemented from CCuddDDBase< CCuddZDD >.
CCuddZDD::CCuddZDD | ( | mgrcore_ptr | mgr, | |
node_type | bddNode | |||
) | [inline] |
Construct ZDD from manager core and node.
CCuddZDD::CCuddZDD | ( | ) | [inline] |
Default constructor.
CCuddZDD::CCuddZDD | ( | const self & | from | ) | [inline] |
Copy constructor.
CCuddZDD::~CCuddZDD | ( | ) | [inline] |
Destructor.
References deref().
int CCuddZDD::Count | ( | ) | const [inline] |
Determine the number of minterms.
References CCuddDDBase< CCuddZDD >::memApply().
double CCuddZDD::CountDouble | ( | ) | const [inline] |
Determine the number of minterms.
References CCuddDDBase< CCuddZDD >::memApply().
double CCuddZDD::CountMinterm | ( | int | path | ) | const [inline] |
Counts minterms; takes a path specifing variables number in the support.
References CCuddDDBase< CCuddZDD >::getManager(), CCuddDDBase< CCuddZDD >::getNode(), and CCuddDDBase< CCuddZDD >::memChecked().
void CCuddZDD::deref | ( | ) | [inline, protected] |
Derefering current diagram node, if unused.
References CCuddDDBase< CCuddZDD >::getManager(), CCuddDDBase< CCuddZDD >::node, and PB_DD_VERBOSE.
Referenced by operator=(), and ~CCuddZDD().
If-Then-Else operation using current diagram as head.
BOOST_PP_SEQ_FOR_EACH(PB_ZDD_OP, Intersect, (*)(&)) BOOST_PP_SEQ_FOR_EACH(PB_ZDD_OP, Union, (+)(|)) BOOST_PP_SEQ_FOR_EACH(PB_ZDD_OP_ASSIGN, BOOST_PP_NIL, (*)(&)(+)(|)(-)) BOOST_PP_SEQ_FOR_EACH(PB_ZDD_APPLY, const self&, (Product)(UnateProduct)(WeakDiv)(Divide)(WeakDivF)(DivideF) (Union)(Intersect)(Diff)(DiffConst)) BOOST_PP_SEQ_FOR_EACH(PB_ZDD_APPLY, int, (Subset1)(Subset0)(Change))
References CCuddDDBase< CCuddZDD >::apply().
bool CCuddZDD::operator!= | ( | const self & | other | ) | const [inline] |
bool CCuddZDD::operator< | ( | const self & | rhs | ) | const [inline] |
bool CCuddZDD::operator<= | ( | const self & | other | ) | const [inline] |
References CCuddDDBase< CCuddZDD >::apply(), and CCuddDDBase< DiagramType >::isZero().
Assignment operator.
References CCuddDDBase< DiagramType >::ddMgr, CCuddDDBase< CCuddZDD >::ddMgr, deref(), LIKELY, CCuddDDBase< CCuddZDD >::node, CCuddDDBase< DiagramType >::node, PB_DD_VERBOSE, and UNLIKELY.
bool CCuddZDD::operator== | ( | const self & | other | ) | const [inline] |
References CCuddDDBase< CCuddZDD >::checkSameManager(), and CCuddDDBase< CCuddZDD >::node.
bool CCuddZDD::operator> | ( | const self & | other | ) | const [inline] |
bool CCuddZDD::operator>= | ( | const self & | other | ) | const [inline] |
void CCuddZDD::print | ( | int | nvars, | |
int | verbosity = 1 | |||
) | const [inline] |
void CCuddZDD::PrintCover | ( | ) | const [inline] |
References CCuddDDBase< CCuddZDD >::apply().
void CCuddZDD::PrintMinterm | ( | ) | const [inline] |
References CCuddDDBase< CCuddZDD >::apply().
friend class CCuddInterface [friend] |