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::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.
self & incrementThen ()
 Increment in then direction.
self thenBranch () const
 Increment in then direction.
self & incrementElse ()
 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.

This class defines an iterator over the first minimal term of a given ZDD node.


Member Typedef Documentation

Type for boolean results.

Type for constantly accessing node pointer.

Cudd's node pointer.

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.

Referenced by polybori::BooleSet::minimalElements(), and polybori::CCuddGetNode::operator()().

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]

Check whether end of path was reached.

Referenced by polybori::groebner::contained_variables_cudd_style(), and polybori::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.

Referenced by polybori::BooleSet::minimalElements(), and polybori::CCuddGetNode::operator()().

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: