CCuddDDBase< DiagramType > Class Template Reference

This template class defines a C++ interface to CUDD's decision diagram structure. More...

#include <CCuddZDD.h>

List of all members.

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.

Detailed Description

template<class DiagramType>
class CCuddDDBase< DiagramType >

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.

Attention:
This template class is intented for internal use only, e.g. as base class for CCuddZDD.

Member Typedef Documentation

template<class DiagramType>
typedef DiagramType CCuddDDBase< DiagramType >::diagram_type

Name type of *this.

template<class DiagramType>
typedef CCuddCore::mgrcore_ptr CCuddDDBase< DiagramType >::mgrcore_ptr

Define shared pointer type for handling the decision diagram manager.

template<class DiagramType>
typedef CCuddDDBase CCuddDDBase< DiagramType >::self

Reimplemented in CCuddZDD.


Constructor & Destructor Documentation

template<class DiagramType>
CCuddDDBase< DiagramType >::CCuddDDBase ( mgrcore_ptr  ddManager,
node_type  ddNode 
) [inline]

Construct diagram from raw CUDD elements.

template<class DiagramType>
CCuddDDBase< DiagramType >::CCuddDDBase ( const self from  )  [inline]

Copy constructor.

template<class DiagramType>
CCuddDDBase< DiagramType >::CCuddDDBase (  )  [inline]

Default constructor.


Member Function Documentation

template<class DiagramType>
idx_type CCuddDDBase< DiagramType >::apply ( int_unary_function  func  )  const [inline, protected]
template<class DiagramType>
diagram_type CCuddDDBase< DiagramType >::apply ( ternary_function  func,
const diagram_type first,
const diagram_type second 
) const [inline, protected]
template<class DiagramType>
diagram_type CCuddDDBase< DiagramType >::apply ( binary_int_function  func,
idx_type  idx 
) const [inline, protected]
template<class DiagramType>
diagram_type CCuddDDBase< DiagramType >::apply ( binary_function  func,
const diagram_type rhs 
) const [inline, protected]
template<class DiagramType>
idx_type CCuddDDBase< DiagramType >::checkedResult ( idx_type  result  )  const [inline, protected]
template<class DiagramType>
diagram_type CCuddDDBase< DiagramType >::checkedResult ( node_type  result  )  const [inline, protected]
template<class DiagramType>
void CCuddDDBase< DiagramType >::checkReturnValue ( const int  result,
const int  expected = 1 
) const [inline, protected]

Check whether previous decision diagram operation for validity.

template<class DiagramType>
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().

template<class DiagramType>
void CCuddDDBase< DiagramType >::checkSameManager ( const diagram_type other  )  const [inline, protected]

Test, whether both operands.

Referenced by CCuddDDBase< CCuddZDD >::apply().

template<class DiagramType>
mgrcore_type CCuddDDBase< DiagramType >::getManager (  )  const [inline]
template<class DiagramType>
node_type CCuddDDBase< DiagramType >::getNode (  )  const [inline]

Get raw node structure.

Referenced by CCuddDDBase< CCuddZDD >::apply(), and CCuddDDBase< CCuddZDD >::memApply().

template<class DiagramType>
bool CCuddDDBase< DiagramType >::isZero (  )  const [inline]

Test whether diagram represents the empty set.

Referenced by CCuddZDD::operator<=().

template<class DiagramType>
mgrcore_ptr CCuddDDBase< DiagramType >::manager (  )  const [inline]

Get (shared) pointer to decision diagram manager.

Referenced by CCuddDDBase< CCuddZDD >::checkedResult().

template<class DiagramType>
template<class ResultType >
ResultType CCuddDDBase< DiagramType >::memApply ( ResultType(*)(DdManager *, node_type)  func  )  const [inline, protected]
template<class DiagramType>
template<class ResultType >
ResultType CCuddDDBase< DiagramType >::memChecked ( ResultType  result  )  const [inline, protected]
template<class DiagramType>
size_type CCuddDDBase< DiagramType >::nodeCount (  )  const [inline]

Number of nodes in the current decision diagram.

template<class DiagramType>
size_type CCuddDDBase< DiagramType >::NodeReadIndex (  )  const [inline]

Get index of curent node.

template<class DiagramType>
size_type CCuddDDBase< DiagramType >::refCount (  )  const [inline]

Number of references pointing here.


Member Data Documentation

template<class DiagramType>
mgrcore_ptr CCuddDDBase< DiagramType >::ddMgr [protected]
template<class DiagramType>
node_type CCuddDDBase< DiagramType >::node [protected]

The documentation for this class was generated from the following file:
Generated on Thu Aug 5 13:34:44 2010 for PolyBoRi by  doxygen 1.6.3