PolyBoRi
Public Types | Public Member Functions

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

List of all members.

Public Types

typedef DdNode * pointer_type
 Cudd's node pointer.
typedef CTypes::dd_base dd_base
 Cudd's node pointer.
typedef const pointer_type const_access_type
 Type for constantly accessing node pointer.
typedef CTypes::idx_type idx_type
 Type for indices.
typedef CTypes::size_type size_type
 Type for indices.
typedef CTypes::deg_type deg_type
 Type for degrees.
typedef CTypes::hash_type hash_type
 Type for hashing.
typedef CTypes::bool_type bool_type
 Type for boolean results.
typedef idx_type value_type
 Return type of dereferencing operator.
typedef CCuddNavigator self
 Get type of *this.
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.
 CCuddNavigator (pointer_type ptr)
 Construct from node pointer.
 CCuddNavigator (const dd_base &rhs)
 Construct from decision diagram.
 CCuddNavigator (const self &rhs)
 Copy Constructor.
 ~CCuddNavigator ()
 Destructor.
selfincrementThen ()
 Increment in then direction.
self thenBranch () const
 Increment in then direction.
selfincrementElse ()
 Increment in else direction.
self elseBranch () const
 Increment in else direction.
reference operator* () const
 Constant dereference operator.
const_access_type operator-> () const
 Constant pointer access operator.
const_access_type getNode () const
 Constant pointer access operator.
hash_type hash () const
 Constant pointer access operator.
bool_type operator== (const self &rhs) const
 Equality test.
bool_type operator!= (const self &rhs) const
 Nonequality test.
bool_type isConstant () const
 Check whether constant node was reached.
bool_type terminalValue () const
 Check whether terminal node marks end of path.
bool_type isValid () const
 Check whether *this is not the default iterator self() (NULL pointer)
bool_type isTerminated () const
 Check whether end of path was reached.
bool_type isEmpty () const
 Check whether dead end was reached.
void incRef () const
 Force incrementation of reference count.
void decRef () const
 Force decrementation of reference count.
template<class MgrType >
void recursiveDecRef (const MgrType &mgr) const
 Force recursive decrementation of reference count.
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.

Cudd's node pointer.

Type for degrees.

Type for hashing.

Type for indices.

Reimplemented in polybori::CCuddLastIter.

Cudd's node pointer.

Get type of *this.

Reimplemented in polybori::CCuddLastIter.

Type for indices.

Return type of dereferencing operator.


Constructor & Destructor Documentation

polybori::CCuddNavigator::CCuddNavigator ( ) [inline]

Default constructor.

polybori::CCuddNavigator::CCuddNavigator ( pointer_type  ptr) [inline, explicit]

Construct from node pointer.

polybori::CCuddNavigator::CCuddNavigator ( const dd_base rhs) [inline, explicit]

Construct from decision diagram.

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.

self polybori::CCuddNavigator::elseBranch ( ) const [inline]

Increment in else direction.

References incrementElse().

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

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 PBORINAME::groebner::do_is_rewriteable().

bool_type polybori::CCuddNavigator::isTerminated ( ) const [inline]

Check whether end of path was reached.

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

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_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.

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

Increment in then direction.

References incrementThen().

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


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