polybori::CCuddZDD Class Reference

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

#include <CCuddZDD.h>

Inheritance diagram for polybori::CCuddZDD:

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


Constructor & Destructor Documentation

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

Construct ZDD from manager core and node.

polybori::CCuddZDD::CCuddZDD (  )  [inline]

Default constructor.

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

Copy constructor.

polybori::CCuddZDD::~CCuddZDD (  )  [inline]

Destructor.


Member Function Documentation

int polybori::CCuddZDD::Count (  )  const [inline]

Determine the number of minterms.

double polybori::CCuddZDD::CountDouble (  )  const [inline]

Determine the number of minterms.

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

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

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

Derefering current diagram node, if unused.

References PB_DD_VERBOSE.

Referenced by operator=().

* self polybori::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, Diff, (-))

  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))

bool polybori::CCuddZDD::operator!= ( const self other  )  const [inline]

bool polybori::CCuddZDD::operator< ( const self rhs  )  const [inline]

bool polybori::CCuddZDD::operator<= ( const self other  )  const [inline]

CCuddZDD & polybori::CCuddZDD::operator= ( const self right  )  [inline]

bool polybori::CCuddZDD::operator== ( const self other  )  const [inline]

bool polybori::CCuddZDD::operator> ( const self other  )  const [inline]

bool polybori::CCuddZDD::operator>= ( const self other  )  const [inline]

void polybori::CCuddZDD::print ( int  nvars,
int  verbosity = 1 
) const [inline]

References UNLIKELY.

void polybori::CCuddZDD::PrintCover (  )  const [inline]

void polybori::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 Thu Mar 5 02:26:58 2009 for PolyBoRi by  doxygen 1.5.8