PolyBoRi
Public Types | Public Member Functions | List of all members
polybori::CCuddNavigator Class Reference

This class defines an iterator for navigating through then and else branches of ZDDs. More...

#include <CCuddNavigator.h>

Inheritance diagram for polybori::CCuddNavigator:
polybori::CCuddLastIter

Public Types

typedef DdNode * pointer_type
 Cudd's node pointer. More...
 
typedef const pointer_type const_access_type
 Type for constantly accessing node pointer. More...
 
typedef CTypes::idx_type idx_type
 Type for indices. More...
 
typedef CTypes::size_type size_type
 Type for indices. More...
 
typedef CTypes::deg_type deg_type
 Type for degrees. More...
 
typedef CTypes::hash_type hash_type
 Type for hashing. More...
 
typedef CTypes::bool_type bool_type
 Type for boolean results. More...
 
typedef idx_type value_type
 Return type of dereferencing operator. More...
 
typedef CCuddNavigator self
 Get type of *this. More...
 
Interface types for standard iterator access
typedef navigator_tag iterator_category
 
typedef std::iterator_traits
< pointer_type >
::difference_type 
difference_type
 
typedef void pointer
 
typedef value_type reference
 

Public Member Functions

 CCuddNavigator ()
 Default constructor. More...
 
 CCuddNavigator (pointer_type ptr)
 Construct from node pointer. More...
 
 CCuddNavigator (const self &rhs)
 Copy Constructor. More...
 
 ~CCuddNavigator ()
 Destructor. More...
 
selfincrementThen ()
 Increment in then direction. More...
 
self thenBranch () const
 Increment in then direction. More...
 
selfincrementElse ()
 Increment in else direction. More...
 
self elseBranch () const
 Increment in else direction. More...
 
reference operator* () const
 Constant dereference operator. More...
 
const_access_type operator-> () const
 Constant pointer access operator. More...
 
const_access_type getNode () const
 Constant pointer access operator. More...
 
hash_type hash () const
 Constant pointer access operator. More...
 
bool_type operator== (const self &rhs) const
 Equality test. More...
 
bool_type operator!= (const self &rhs) const
 Nonequality test. More...
 
bool_type isConstant () const
 Check whether constant node was reached. More...
 
bool_type terminalValue () const
 Check whether terminal node marks end of path. More...
 
bool_type isValid () const
 Check whether *this is not the default iterator self() (NULL pointer) More...
 
bool_type isTerminated () const
 Check whether end of path was reached. More...
 
bool_type isEmpty () const
 Check whether dead end was reached. More...
 
void incRef () const
 Force incrementation of reference count. More...
 
void decRef () const
 Force decrementation of reference count. More...
 
template<class MgrType >
void recursiveDecRef (const MgrType &mgr) const
 Force recursive decrementation of reference count. More...
 
Pointer-like comparision operations
bool_type operator< (const self &rhs) const
 
bool_type operator<= (const self &rhs) const
 
bool_type operator> (const self &rhs) const
 
bool_type operator>= (const self &rhs) const
 

Detailed Description

This class defines an iterator for navigating through then and else branches of ZDDs.

Member Typedef Documentation

Type for boolean results.

Type for constantly accessing node pointer.

Type for degrees.

Type for hashing.

Type for indices.

Cudd's node pointer.

Get type of *this.

Type for indices.

Return type of dereferencing operator.

Constructor & Destructor Documentation

polybori::CCuddNavigator::CCuddNavigator ( )
inline

Default constructor.

polybori::CCuddNavigator::CCuddNavigator ( pointer_type  ptr)
inlineexplicit

Construct from node pointer.

References PBORI_ASSERT.

polybori::CCuddNavigator::CCuddNavigator ( const self rhs)
inline

Copy Constructor.

polybori::CCuddNavigator::~CCuddNavigator ( )
inline

Destructor.

Member Function Documentation

void polybori::CCuddNavigator::decRef ( ) const
inline

Force decrementation of reference count.

References Cudd_Deref, PBORI_ASSERT, and PBORI_PREFIX.

self polybori::CCuddNavigator::elseBranch ( ) const
inline
const_access_type polybori::CCuddNavigator::getNode ( ) const
inline
hash_type polybori::CCuddNavigator::hash ( ) const
inline

Constant pointer access operator.

void polybori::CCuddNavigator::incRef ( ) const
inline
CCuddNavigator & polybori::CCuddNavigator::incrementElse ( )
inline
CCuddNavigator & polybori::CCuddNavigator::incrementThen ( )
inline
CCuddNavigator::bool_type polybori::CCuddNavigator::isConstant ( ) const
inline
bool_type polybori::CCuddNavigator::isEmpty ( ) const
inline

Check whether dead end was reached.

Referenced by polybori::groebner::do_is_rewriteable().

bool_type polybori::CCuddNavigator::isTerminated ( ) const
inline
bool_type polybori::CCuddNavigator::isValid ( ) const
inline
bool_type polybori::CCuddNavigator::operator!= ( const self rhs) const
inline

Nonequality test.

CCuddNavigator::value_type polybori::CCuddNavigator::operator* ( ) const
inline

Constant dereference operator.

References PBORI_ASSERT, and PBORI_TRACE_FUNC.

const_access_type polybori::CCuddNavigator::operator-> ( ) const
inline

Constant pointer access operator.

bool_type polybori::CCuddNavigator::operator< ( const self rhs) const
inline
bool_type polybori::CCuddNavigator::operator<= ( const self rhs) const
inline
bool_type polybori::CCuddNavigator::operator== ( const self rhs) const
inline

Equality test.

bool_type polybori::CCuddNavigator::operator> ( const self rhs) const
inline
bool_type polybori::CCuddNavigator::operator>= ( const self rhs) const
inline
template<class MgrType >
void polybori::CCuddNavigator::recursiveDecRef ( const MgrType &  mgr) const
inline

Force recursive decrementation of reference count.

References Cudd_RecursiveDerefZdd, PBORI_ASSERT, and PBORI_PREFIX.

CCuddNavigator::bool_type polybori::CCuddNavigator::terminalValue ( ) const
inline
self polybori::CCuddNavigator::thenBranch ( ) const
inline

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