polybori::CCuddCore Class Reference

This class prepares the CUDD's raw decision diagram manager structure for the use with instrinsive pointers. More...

`#include <CCuddCore.h>`

Inheritance diagram for polybori::CCuddCore:

## Public Types

typedef CCuddCore | self
| Fix type of *this. More...
typedef CVariableNames | variable_names_type
| Define type for storing names of variables. More...
typedef variable_names_type::const_reference | const_varname_reference
| Define type for getting names of variables. More...
typedef COrderingBase | order_type
| Type for handling mterm orderings. More...
typedef boost::shared_ptr < order_type > | order_ptr
| Smart pointer for handling mterm orderings. More...
typedef order_type & | order_reference
| Reference for handling mterm orderings. More...
typedef CTypes::ordercode_type | ordercode_type
| Enum for ordering codes. More...
Public Types inherited from polybori::COrderEnums
enum | ordercodes { lp, dlex, dp_asc, block_dlex, block_dp_asc }
| Codes For orderings. More...
Public Types inherited from polybori::CAuxTypes
typedef bool | bool_type
| Type for standard true/false statements. More...
typedef std::size_t | size_type
| Type for lengths, dimensions, etc. More...
typedef int | deg_type
| Type for polynomial degrees (ranges from -1 to maxint) More...
typedef int | integer_type
| Type for integer numbers. More...
typedef int | idx_type
| Type for indices. More...
typedef std::size_t | hash_type
| Type for hashing. More...
typedef unsigned int | errornum_type
| Type used to store error codes. More...
typedef short int | comp_type
| Type for comparisons. More...
typedef int | ordercode_type
| Type for ordering codes. More...
typedef const char * | errortext_type
| Type used to verbose error information. More...
typedef std::ostream | ostream_type
| Type for out-stream. More...
typedef const char * | vartext_type
| Type for setting/getting names of variables. More...
typedef unsigned long | large_size_type
| large size_type (necessary?) More...
typedef std::size_t | refcount_type
| Type for counting references. More...
Public Types inherited from polybori::CWeakPtrFacade< CCuddCore >
typedef CCuddCore | value_type
typedef value_type * | data_type
typedef boost::shared_ptr < data_type > | ptr_type

## Public Member Functions

| CCuddCore (size_type numVarsZ, const order_ptr &order)
| Initialize raw decision diagram management. More...
| CCuddCore (const self &rhs)
| ~CCuddCore ()
| Destructor. More...
void | addRef ()
| Increment reference count. More...
refcount_type | release ()
| Release this by decrementing reference counting. More...
void | change_ordering (const order_ptr &newOrder)
Public Member Functions inherited from polybori::CWeakPtrFacade< CCuddCore >
| CWeakPtrFacade ()
| Default constructor (only data is the pointer to here) More...
| CWeakPtrFacade (const self &rhs)
| Copy constructor (constructs new facade) More...
| ~CWeakPtrFacade ()
| Destructor (invalidates pointer to here) More...

## Public Attributes

CCuddInterface | m_mgr
| Current decision diagram management. More...
refcount_type | ref
| Count instances pointing here. More...
variable_names_type | m_names
| Stores names of variables. More...
order_ptr | pOrder
| *Ordering of *this More...

## Additional Inherited Members

Protected Attributes inherited from polybori::CWeakPtrFacade< CCuddCore >
ptr_type | m_data

## Detailed Description

This class prepares the CUDD's raw decision diagram manager structure for the use with instrinsive pointers.

The purpose of this wrapper is mainly to provide the necessary functionality for application of intrisive pointers (refernce counting). In addition, some global settings are stored within.

Attention
  This class is intented for internal use only. See CCuddDD, CCuddZDD, and CCuddInterface.

## Member Typedef Documentation

typedef variable_names_type::const_reference polybori::CCuddCore::const_varname_reference

Define type for getting names of variables.

typedef boost::shared_ptr<order_type> polybori::CCuddCore::order_ptr

Smart pointer for handling mterm orderings.

typedef order_type& polybori::CCuddCore::order_reference

Reference for handling mterm orderings.

typedef COrderingBase polybori::CCuddCore::order_type

Type for handling mterm orderings.

typedef CTypes::ordercode_type polybori::CCuddCore::ordercode_type

Enum for ordering codes.

typedef CCuddCore polybori::CCuddCore::self

Fix type of *this.

typedef CVariableNames polybori::CCuddCore::variable_names_type

Define type for storing names of variables.

## Constructor & Destructor Documentation

polybori::CCuddCore::CCuddCore | ( | size_type | numVarsZ,
|  | const order_ptr & | order
| ) |  |

inline

Initialize raw decision diagram management.

polybori::CCuddCore::CCuddCore | ( | const self & | rhs) |  |

inline

Copy Constructor (nearly deep copy, but shallow copy of manager, names and ordering)

polybori::CCuddCore::~CCuddCore | ( | ) |  |

inline

Destructor.

## Member Function Documentation

void polybori::CCuddCore::addRef | ( | ) |  |

inline

Increment reference count.

Referenced by polybori::intrusive_ptr_add_ref().

void polybori::CCuddCore::change_ordering | ( | const order_ptr & | newOrder) |  |

inline

refcount_type polybori::CCuddCore::release | ( | ) |  |

inline

Release this by decrementing reference counting.

Referenced by polybori::intrusive_ptr_release().

## Member Data Documentation

CCuddInterface polybori::CCuddCore::m_mgr

Current decision diagram management.

variable_names_type polybori::CCuddCore::m_names

Stores names of variables.

order_ptr polybori::CCuddCore::pOrder

*Ordering of *this

refcount_type polybori::CCuddCore::ref

Count instances pointing here.

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

- CCuddCore.h