PolyBoRi
Public Types | Public Member Functions | Public Attributes | List of all members
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:
polybori::COrderEnums polybori::CAuxTypes polybori::CWeakPtrFacade< 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_typeorder_ptr
 Smart pointer for handling mterm orderings. More...
 
typedef order_typeorder_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_typedata_type
 
typedef boost::shared_ptr< data_typeptr_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

Define type for getting names of variables.

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

Smart pointer for handling mterm orderings.

Reference for handling mterm orderings.

Type for handling mterm orderings.

Enum for ordering codes.

Fix type of *this.

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: