polybori::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::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.


Detailed Description

template<class DiagramType>
class polybori::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 CCuddCore ::binary_function polybori::CCuddDDBase< DiagramType >::binary_function

template<class DiagramType>
typedef CCuddCore ::binary_int_function polybori::CCuddDDBase< DiagramType >::binary_int_function

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

Name type of *this.

template<class DiagramType>
typedef CCuddCore ::errorfunc_type polybori::CCuddDDBase< DiagramType >::errorfunc_type

template<class DiagramType>
typedef CCuddCore ::idx_type polybori::CCuddDDBase< DiagramType >::idx_type

template<class DiagramType>
typedef CCuddCore ::int_unary_function polybori::CCuddDDBase< DiagramType >::int_unary_function

template<class DiagramType>
typedef CCuddCore ::large_size_type polybori::CCuddDDBase< DiagramType >::large_size_type

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

Define shared pointer type for handling the decision diagram manager.

template<class DiagramType>
typedef CCuddCore ::mgrcore_type polybori::CCuddDDBase< DiagramType >::mgrcore_type

template<class DiagramType>
typedef CCuddCore ::node_type polybori::CCuddDDBase< DiagramType >::node_type

template<class DiagramType>
typedef CCuddCore ::refcount_type polybori::CCuddDDBase< DiagramType >::refcount_type

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

Reimplemented in polybori::CCuddZDD.

template<class DiagramType>
typedef CCuddCore ::size_type polybori::CCuddDDBase< DiagramType >::size_type

template<class DiagramType>
typedef CCuddCore ::ternary_function polybori::CCuddDDBase< DiagramType >::ternary_function

template<class DiagramType>
typedef CCuddCore ::unary_int_function polybori::CCuddDDBase< DiagramType >::unary_int_function

template<class DiagramType>
typedef CCuddCore ::void_function polybori::CCuddDDBase< DiagramType >::void_function


Constructor & Destructor Documentation

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

Construct diagram from raw CUDD elements.

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

Copy constructor.

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

Default constructor.


Member Function Documentation

template<class DiagramType>
idx_type polybori::CCuddDDBase< DiagramType >::apply ( int_unary_function  func  )  const [inline, protected]

template<class DiagramType>
diagram_type polybori::CCuddDDBase< DiagramType >::apply ( ternary_function  func,
const diagram_type first,
const diagram_type second 
) const [inline, protected]

template<class DiagramType>
diagram_type polybori::CCuddDDBase< DiagramType >::apply ( binary_int_function  func,
idx_type  idx 
) const [inline, protected]

template<class DiagramType>
diagram_type polybori::CCuddDDBase< DiagramType >::apply ( binary_function  func,
const diagram_type rhs 
) const [inline, protected]

template<class DiagramType>
idx_type polybori::CCuddDDBase< DiagramType >::checkedResult ( idx_type  result  )  const [inline, protected]

template<class DiagramType>
diagram_type polybori::CCuddDDBase< DiagramType >::checkedResult ( node_type  result  )  const [inline, protected]

template<class DiagramType>
void polybori::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 polybori::CCuddDDBase< DiagramType >::checkReturnValue ( const node_type  result  )  const [inline, protected]

Check whether decision diagram operation in computing result was valid.

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

Test, whether both operands.

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

Get raw decision diagram manager.

Referenced by polybori::CCuddDDBase< CCuddZDD >::checkSameManager().

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

Get raw node structure.

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

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

Test whether diagram represents the empty set.

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

Get (shared) pointer to decision diagram manager.

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

template<class DiagramType>
template<class ResultType >
ResultType polybori::CCuddDDBase< DiagramType >::memChecked ( ResultType  result  )  const [inline, protected]

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

Number of nodes in the current decision diagram.

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

Get index of curent node.

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

Number of references pointing here.


Member Data Documentation

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

(Smart) pointer to decsion diagram management

Referenced by polybori::CCuddZDD::operator=().

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

Raw pointer to decision diagram node.

Referenced by polybori::CCuddZDD::operator=().


The documentation for this class was generated from the following file:

Generated on Thu Mar 5 02:26:58 2009 for PolyBoRi by  doxygen 1.5.8