PolyBoRi
Classes | Namespaces | Defines
CCuddZDD.h File Reference
#include "pbori_defs.h"
#include <algorithm>
#include <boost/shared_ptr.hpp>
#include <boost/scoped_array.hpp>
#include <boost/weak_ptr.hpp>
#include <boost/intrusive_ptr.hpp>
#include <boost/preprocessor/cat.hpp>
#include <boost/preprocessor/seq/for_each.hpp>
#include <boost/preprocessor/facilities/expand.hpp>
#include <boost/preprocessor/stringize.hpp>
#include "pbori_func.h"
#include "pbori_traits.h"
#include "CCuddCore.h"

Go to the source code of this file.

Classes

class  polybori::CCuddDDBase< DiagramType >
 This template class defines a C++ interface to CUDD's decision diagram structure. More...
class  polybori::CCuddZDD
 This class defines a C++ interface to CUDD's zero-suppressed decision diagram structure. More...

Namespaces

namespace  polybori

Defines

#define PB_DD_VERBOSE(text)
 Define code for verbosity.
#define PB_ZDD_APPLY(count, data, funcname)
#define PB_ZDD_OP_ASSIGN(count, data, op)
#define PB_ZDD_OP(count, data, op)   self operator op(const self& other) const { return data(other); }

Detailed Description

Author:
Alexander Dreyer
Date:
2007-07-16

This files defines a replacement for the decision diagrams of CUDD's C++ interface.

Copyright:
(c) 2007 by The PolyBoRi Team

Define Documentation

#define PB_DD_VERBOSE (   text)
Value:
if (ddMgr->verbose) \
  std::cout << text << " for node " << node <<  \
  " ref = " << refCount() << std::endl;

Define code for verbosity.

Referenced by polybori::CCuddDDBase< CCuddZDD >::CCuddDDBase(), polybori::CCuddZDD::deref(), and polybori::CCuddZDD::operator=().

#define PB_ZDD_APPLY (   count,
  data,
  funcname 
)
Value:
self funcname(data rhs) const {    \
    return apply(BOOST_PP_CAT(Cudd_zdd, funcname), rhs); }
#define PB_ZDD_OP (   count,
  data,
  op 
)    self operator op(const self& other) const { return data(other); }
#define PB_ZDD_OP_ASSIGN (   count,
  data,
  op 
)
Value:
self& operator BOOST_PP_CAT(op, =)(const self& other) { \
    return *this = (*this op other); }