CCuddZDD Class Reference

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

#include <CCuddZDD.h>

Inheritance diagram for CCuddZDD:
CCuddDDBase< CCuddZDD >

List of all members.

Public Types

typedef CCuddZDD self
 Name type of *this.
typedef CCuddDDBase< selfbase
 Name the type, which self is inherited from.

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.
selfoperator= (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

Protected Member Functions

void deref ()
 Derefering current diagram node, if unused.

Friends

class CCuddInterface

Detailed Description

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.

Attention:
This class is intented for internal use only. Use the highlevel classes CDDInterface<CCuddZDD>, BoolePolynomial, BooleSet, or BooleMonomial instead.

Member Typedef Documentation

Name the type, which self is inherited from.

Name type of *this.

Reimplemented from CCuddDDBase< CCuddZDD >.


Constructor & Destructor Documentation

CCuddZDD::CCuddZDD ( mgrcore_ptr  mgr,
node_type  bddNode 
) [inline]

Construct ZDD from manager core and node.

CCuddZDD::CCuddZDD (  )  [inline]

Default constructor.

CCuddZDD::CCuddZDD ( const self from  )  [inline]

Copy constructor.

CCuddZDD::~CCuddZDD (  )  [inline]

Destructor.

References deref().


Member Function Documentation

int CCuddZDD::Count (  )  const [inline]

Determine the number of minterms.

References CCuddDDBase< CCuddZDD >::memApply().

double CCuddZDD::CountDouble (  )  const [inline]

Determine the number of minterms.

References CCuddDDBase< CCuddZDD >::memApply().

double CCuddZDD::CountMinterm ( int  path  )  const [inline]

Counts minterms; takes a path specifing variables number in the support.

References CCuddDDBase< CCuddZDD >::getManager(), CCuddDDBase< CCuddZDD >::getNode(), and CCuddDDBase< CCuddZDD >::memChecked().

void CCuddZDD::deref (  )  [inline, protected]

Derefering current diagram node, if unused.

References CCuddDDBase< CCuddZDD >::getManager(), CCuddDDBase< CCuddZDD >::node, and PB_DD_VERBOSE.

Referenced by operator=(), and ~CCuddZDD().

* self CCuddZDD::Ite ( const self g,
const self h 
) const [inline]

If-Then-Else operation using current diagram as head.

Note:
Preprocessor generated members
  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))

References CCuddDDBase< CCuddZDD >::apply().

bool CCuddZDD::operator!= ( const self other  )  const [inline]
bool CCuddZDD::operator< ( const self rhs  )  const [inline]
bool CCuddZDD::operator<= ( const self other  )  const [inline]
CCuddZDD & CCuddZDD::operator= ( const self right  )  [inline]
bool CCuddZDD::operator== ( const self other  )  const [inline]
bool CCuddZDD::operator> ( const self other  )  const [inline]
bool CCuddZDD::operator>= ( const self other  )  const [inline]
void CCuddZDD::print ( int  nvars,
int  verbosity = 1 
) const [inline]
void CCuddZDD::PrintCover (  )  const [inline]
void CCuddZDD::PrintMinterm (  )  const [inline]

Friends And Related Function Documentation

friend class CCuddInterface [friend]

The documentation for this class was generated from the following file:
Generated on Tue May 4 08:13:26 2010 for PolyBoRi by  doxygen 1.6.3