This template class defines a C++ interface to CUDD's
decision diagram structure.
More...
#include <CCuddZDD.h>
Public Types | |
typedef DiagramType | diagram_type |
Name type of *this. | |
typedef CCuddDDBase | self |
typedef CCuddCore::mgrcore_ptr | mgrcore_ptr |
Define shared pointer type for handling the decision diagram manager. | |
Public Member Functions | |
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 | 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. | |
Apply CUDD procedures to nodes | |
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 |
Test results from CUDD procedures for validity | |
diagram_type | checkedResult (node_type result) const |
idx_type | checkedResult (idx_type result) const |
template<class ResultType > | |
ResultType | memApply (ResultType(*func)(DdManager *, node_type)) const |
template<class ResultType > | |
ResultType | memChecked (ResultType result) const |
Protected Attributes | |
mgrcore_ptr | ddMgr |
(Smart) pointer to decsion diagram management | |
node_type | node |
Raw pointer to decision diagram node. |
This template class defines a C++ interface to CUDD's
decision diagram structure.
The purpose of this wrapper is just to provide an efficient and save way of handling the decision diagrams. It corrects some short-comings of CUDD's built-in interface.
typedef DiagramType CCuddDDBase< DiagramType >::diagram_type |
Name type of *this.
typedef CCuddCore::mgrcore_ptr CCuddDDBase< DiagramType >::mgrcore_ptr |
Define shared pointer type for handling the decision diagram manager.
typedef CCuddDDBase CCuddDDBase< DiagramType >::self |
Reimplemented in CCuddZDD.
CCuddDDBase< DiagramType >::CCuddDDBase | ( | mgrcore_ptr | ddManager, | |
node_type | ddNode | |||
) | [inline] |
Construct diagram from raw CUDD elements.
CCuddDDBase< DiagramType >::CCuddDDBase | ( | const self & | from | ) | [inline] |
Copy constructor.
CCuddDDBase< DiagramType >::CCuddDDBase | ( | ) | [inline] |
Default constructor.
idx_type CCuddDDBase< DiagramType >::apply | ( | int_unary_function | func | ) | const [inline, protected] |
diagram_type CCuddDDBase< DiagramType >::apply | ( | ternary_function | func, | |
const diagram_type & | first, | |||
const diagram_type & | second | |||
) | const [inline, protected] |
diagram_type CCuddDDBase< DiagramType >::apply | ( | binary_int_function | func, | |
idx_type | idx | |||
) | const [inline, protected] |
diagram_type CCuddDDBase< DiagramType >::apply | ( | binary_function | func, | |
const diagram_type & | rhs | |||
) | const [inline, protected] |
idx_type CCuddDDBase< DiagramType >::checkedResult | ( | idx_type | result | ) | const [inline, protected] |
diagram_type CCuddDDBase< DiagramType >::checkedResult | ( | node_type | result | ) | const [inline, protected] |
Referenced by CCuddDDBase< CCuddZDD >::apply().
void CCuddDDBase< DiagramType >::checkReturnValue | ( | const int | result, | |
const int | expected = 1 | |||
) | const [inline, protected] |
Check whether previous decision diagram operation for validity.
void CCuddDDBase< DiagramType >::checkReturnValue | ( | const node_type | result | ) | const [inline, protected] |
Check whether decision diagram operation in computing result was valid.
Referenced by CCuddDDBase< CCuddZDD >::checkedResult(), CCuddDDBase< CCuddZDD >::checkReturnValue(), and CCuddDDBase< CCuddZDD >::memChecked().
void CCuddDDBase< DiagramType >::checkSameManager | ( | const diagram_type & | other | ) | const [inline, protected] |
Test, whether both operands.
Referenced by CCuddDDBase< CCuddZDD >::apply().
mgrcore_type CCuddDDBase< DiagramType >::getManager | ( | ) | const [inline] |
Get raw decision diagram manager.
Referenced by CCuddDDBase< CCuddZDD >::apply(), CCuddDDBase< CCuddZDD >::checkReturnValue(), CCuddDDBase< CCuddZDD >::checkSameManager(), CCuddDDBase< CCuddZDD >::isZero(), and CCuddDDBase< CCuddZDD >::memApply().
node_type CCuddDDBase< DiagramType >::getNode | ( | ) | const [inline] |
Get raw node structure.
Referenced by CCuddDDBase< CCuddZDD >::apply(), and CCuddDDBase< CCuddZDD >::memApply().
bool CCuddDDBase< DiagramType >::isZero | ( | ) | const [inline] |
Test whether diagram represents the empty set.
Referenced by CCuddZDD::operator<=().
mgrcore_ptr CCuddDDBase< DiagramType >::manager | ( | ) | const [inline] |
Get (shared) pointer to decision diagram manager.
Referenced by CCuddDDBase< CCuddZDD >::checkedResult().
ResultType CCuddDDBase< DiagramType >::memApply | ( | ResultType(*)(DdManager *, node_type) | func | ) | const [inline, protected] |
ResultType CCuddDDBase< DiagramType >::memChecked | ( | ResultType | result | ) | const [inline, protected] |
Referenced by CCuddDDBase< CCuddZDD >::memApply().
size_type CCuddDDBase< DiagramType >::nodeCount | ( | ) | const [inline] |
Number of nodes in the current decision diagram.
size_type CCuddDDBase< DiagramType >::NodeReadIndex | ( | ) | const [inline] |
Get index of curent node.
size_type CCuddDDBase< DiagramType >::refCount | ( | ) | const [inline] |
Number of references pointing here.
mgrcore_ptr CCuddDDBase< DiagramType >::ddMgr [protected] |
(Smart) pointer to decsion diagram management
Referenced by CCuddDDBase< CCuddZDD >::checkReturnValue(), CCuddDDBase< CCuddZDD >::checkSameManager(), CCuddDDBase< CCuddZDD >::getManager(), CCuddDDBase< CCuddZDD >::manager(), and CCuddZDD::operator=().
node_type CCuddDDBase< DiagramType >::node [protected] |
Raw pointer to decision diagram node.
Referenced by CCuddDDBase< CCuddZDD >::CCuddDDBase(), CCuddDDBase< CCuddZDD >::getNode(), CCuddDDBase< CCuddZDD >::isZero(), CCuddDDBase< CCuddZDD >::nodeCount(), CCuddDDBase< CCuddZDD >::NodeReadIndex(), CCuddZDD::operator=(), and CCuddDDBase< CCuddZDD >::refCount().