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::errorfunc_type | errorfunc_type |
typedef CCuddCore::large_size_type | large_size_type |
typedef CCuddCore::refcount_type | refcount_type |
typedef CCuddCore::node_type | node_type |
typedef CCuddCore::mgrcore_type | mgrcore_type |
typedef CCuddCore::unary_int_function | unary_int_function |
typedef CCuddCore::void_function | void_function |
typedef CCuddCore::binary_function | binary_function |
typedef CCuddCore::binary_int_function | binary_int_function |
typedef CCuddCore::ternary_function | ternary_function |
typedef CCuddCore::int_unary_function | int_unary_function |
typedef CCuddCore::size_type | size_type |
typedef CCuddCore::idx_type | idx_type |
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 CCuddCore ::binary_function polybori::CCuddDDBase< DiagramType >::binary_function |
typedef CCuddCore ::binary_int_function polybori::CCuddDDBase< DiagramType >::binary_int_function |
typedef DiagramType polybori::CCuddDDBase< DiagramType >::diagram_type |
Name type of *this.
typedef CCuddCore ::errorfunc_type polybori::CCuddDDBase< DiagramType >::errorfunc_type |
typedef CCuddCore ::idx_type polybori::CCuddDDBase< DiagramType >::idx_type |
typedef CCuddCore ::int_unary_function polybori::CCuddDDBase< DiagramType >::int_unary_function |
typedef CCuddCore ::large_size_type polybori::CCuddDDBase< DiagramType >::large_size_type |
typedef CCuddCore::mgrcore_ptr polybori::CCuddDDBase< DiagramType >::mgrcore_ptr |
Define shared pointer type for handling the decision diagram manager.
typedef CCuddCore ::mgrcore_type polybori::CCuddDDBase< DiagramType >::mgrcore_type |
typedef CCuddCore ::node_type polybori::CCuddDDBase< DiagramType >::node_type |
typedef CCuddCore ::refcount_type polybori::CCuddDDBase< DiagramType >::refcount_type |
typedef CCuddDDBase polybori::CCuddDDBase< DiagramType >::self |
Reimplemented in polybori::CCuddZDD.
typedef CCuddCore ::size_type polybori::CCuddDDBase< DiagramType >::size_type |
typedef CCuddCore ::ternary_function polybori::CCuddDDBase< DiagramType >::ternary_function |
typedef CCuddCore ::unary_int_function polybori::CCuddDDBase< DiagramType >::unary_int_function |
typedef CCuddCore ::void_function polybori::CCuddDDBase< DiagramType >::void_function |
polybori::CCuddDDBase< DiagramType >::CCuddDDBase | ( | mgrcore_ptr | ddManager, | |
node_type | ddNode | |||
) | [inline] |
Construct diagram from raw CUDD elements.
polybori::CCuddDDBase< DiagramType >::CCuddDDBase | ( | const self & | from | ) | [inline] |
Copy constructor.
polybori::CCuddDDBase< DiagramType >::CCuddDDBase | ( | ) | [inline] |
Default constructor.
diagram_type polybori::CCuddDDBase< DiagramType >::apply | ( | binary_function | func, | |
const diagram_type & | rhs | |||
) | const [inline, protected] |
diagram_type polybori::CCuddDDBase< DiagramType >::apply | ( | binary_int_function | func, | |
idx_type | idx | |||
) | const [inline, protected] |
diagram_type polybori::CCuddDDBase< DiagramType >::apply | ( | ternary_function | func, | |
const diagram_type & | first, | |||
const diagram_type & | second | |||
) | const [inline, protected] |
idx_type polybori::CCuddDDBase< DiagramType >::apply | ( | int_unary_function | func | ) | const [inline, protected] |
idx_type polybori::CCuddDDBase< DiagramType >::checkedResult | ( | idx_type | result | ) | const [inline, protected] |
diagram_type polybori::CCuddDDBase< DiagramType >::checkedResult | ( | node_type | result | ) | const [inline, protected] |
void polybori::CCuddDDBase< DiagramType >::checkReturnValue | ( | const node_type | result | ) | const [inline, protected] |
Check whether decision diagram operation in computing result was valid.
void polybori::CCuddDDBase< DiagramType >::checkReturnValue | ( | const int | result, | |
const int | expected = 1 | |||
) | const [inline, protected] |
Check whether previous decision diagram operation for validity.
void polybori::CCuddDDBase< DiagramType >::checkSameManager | ( | const diagram_type & | other | ) | const [inline, protected] |
Test, whether both operands.
mgrcore_type polybori::CCuddDDBase< DiagramType >::getManager | ( | ) | const [inline] |
Get raw decision diagram manager.
Referenced by polybori::CCuddDDBase< CCuddZDD >::checkSameManager().
node_type polybori::CCuddDDBase< DiagramType >::getNode | ( | ) | const [inline] |
Get raw node structure.
Referenced by polybori::CCuddDDBase< CCuddZDD >::apply().
bool polybori::CCuddDDBase< DiagramType >::isZero | ( | ) | const [inline] |
Test whether diagram represents the empty set.
mgrcore_ptr polybori::CCuddDDBase< DiagramType >::manager | ( | ) | const [inline] |
Get (shared) pointer to decision diagram manager.
ResultType polybori::CCuddDDBase< DiagramType >::memApply | ( | ResultType(*)(DdManager *, node_type) | func | ) | const [inline, protected] |
ResultType polybori::CCuddDDBase< DiagramType >::memChecked | ( | ResultType | result | ) | const [inline, protected] |
size_type polybori::CCuddDDBase< DiagramType >::nodeCount | ( | ) | const [inline] |
Number of nodes in the current decision diagram.
size_type polybori::CCuddDDBase< DiagramType >::NodeReadIndex | ( | ) | const [inline] |
Get index of curent node.
size_type polybori::CCuddDDBase< DiagramType >::refCount | ( | ) | const [inline] |
Number of references pointing here.
mgrcore_ptr polybori::CCuddDDBase< DiagramType >::ddMgr [protected] |
(Smart) pointer to decsion diagram management
Referenced by polybori::CCuddZDD::operator=().
node_type polybori::CCuddDDBase< DiagramType >::node [protected] |
Raw pointer to decision diagram node.
Referenced by polybori::CCuddZDD::operator=().