|
PolyBoRi
|
This class defines a C++ interface to CUDD's zero-suppressed decision diagram structure.
More...
#include <CCuddZDD.h>
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 |
Public Member Functions inherited from polybori::CCuddDDBase< CCuddZDD > | |
| CCuddDDBase (mgrcore_ptr ddManager, node_type ddNode) | |
| Construct diagram from raw CUDD elements. | |
| CCuddDDBase (const self &from) | |
| Copy constructor. | |
| CCuddDDBase () | |
| Default constructor. | |
| mgrcore_ptr | manager () const |
| Get (shared) pointer to decision diagram manager. | |
| mgrcore_type | getManager () const |
| Get raw decision diagram manager. | |
| node_type | getNode () const |
| Get raw node structure. | |
| size_type | NodeReadIndex () const |
| Get index of curent node. | |
| size_type | nodeCount () const |
| Number of nodes in the current decision diagram. | |
| size_type | refCount () const |
| Number of references pointing here. | |
| bool | isZero () const |
| Test whether diagram represents the empty set. | |
Protected Member Functions | |
| void | deref () |
| Derefering current diagram node, if unused. | |
Protected Member Functions inherited from polybori::CCuddDDBase< CCuddZDD > | |
| void | checkSameManager (const diagram_type &other) const |
| Test, whether both operands. | |
| void | checkReturnValue (const node_type result) const |
| Check whether decision diagram operation in computing result was valid. | |
| void | checkReturnValue (const int result, const int expected=1) const |
| Check whether previous decision diagram operation for validity. | |
| diagram_type | apply (binary_function func, const diagram_type &rhs) const |
| diagram_type | apply (binary_int_function func, idx_type idx) const |
| diagram_type | apply (ternary_function func, const diagram_type &first, const diagram_type &second) const |
| idx_type | apply (int_unary_function func) const |
| diagram_type | checkedResult (node_type result) const |
| idx_type | checkedResult (idx_type result) const |
| ResultType | memApply (ResultType(*func)(DdManager *, node_type)) const |
| ResultType | memChecked (ResultType result) const |
Friends | |
| class | CCuddInterface |
Additional Inherited Members | |
Protected Attributes inherited from polybori::CCuddDDBase< CCuddZDD > | |
| mgrcore_ptr | ddMgr |
| (Smart) pointer to decsion diagram management | |
| node_type | node |
| Raw pointer to decision diagram node. | |
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> polybori::CCuddZDD::base |
Name the type, which self is inherited from.
| typedef CCuddZDD polybori::CCuddZDD::self |
Name type of *this.
|
inline |
Construct ZDD from manager core and node.
|
inline |
Default constructor.
|
inline |
Copy constructor.
|
inline |
Destructor.
|
inline |
Determine the number of minterms.
|
inline |
Determine the number of minterms.
|
inline |
Counts minterms; takes a path specifing variables number in the support.
|
inlineprotected |
Derefering current diagram node, if unused.
References PB_DD_VERBOSE.
If-Then-Else operation using current diagram as head.
@note Preprocessor generated members @code
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)) /**
|
inline |
|
inline |
|
inline |
Assignment operator.
References polybori::CCuddDDBase< DiagramType >::ddMgr, LIKELY, polybori::CCuddDDBase< DiagramType >::node, PB_DD_VERBOSE, and UNLIKELY.
|
inline |
|
inline |
|
inline |
|
inline |
References UNLIKELY.
|
inline |
|
inline |
|
friend |
1.8.1.2