This class defines an iterator for navigating through then and else branches of ZDDs. More...
#include <CCuddNavigator.h>
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. | |
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 |
This class defines an iterator for navigating through then and else branches of ZDDs.
Type for boolean results.
typedef const pointer_type CCuddNavigator::const_access_type |
Type for constantly accessing node pointer.
Cudd's node pointer.
Type for degrees.
typedef std::iterator_traits<pointer_type>::difference_type CCuddNavigator::difference_type |
Type for hashing.
Type for indices.
Reimplemented in CCuddLastIter.
typedef void CCuddNavigator::pointer |
typedef DdNode* CCuddNavigator::pointer_type |
Cudd's node pointer.
typedef value_type CCuddNavigator::reference |
typedef CCuddNavigator CCuddNavigator::self |
Get type of *this.
Reimplemented in CCuddLastIter.
Type for indices.
typedef idx_type CCuddNavigator::value_type |
Return type of dereferencing operator.
CCuddNavigator::CCuddNavigator | ( | ) | [inline] |
Default constructor.
CCuddNavigator::CCuddNavigator | ( | pointer_type | ptr | ) | [inline, explicit] |
Construct from node pointer.
References isValid().
CCuddNavigator::CCuddNavigator | ( | const dd_base & | rhs | ) | [inline, explicit] |
Construct from decision diagram.
CCuddNavigator::CCuddNavigator | ( | const self & | rhs | ) | [inline] |
Copy Constructor.
CCuddNavigator::~CCuddNavigator | ( | ) | [inline] |
Destructor.
void CCuddNavigator::decRef | ( | ) | const [inline] |
Force decrementation of reference count.
References isValid().
Referenced by CCuddGetNode::operator()().
self CCuddNavigator::elseBranch | ( | ) | const [inline] |
const_access_type CCuddNavigator::getNode | ( | ) | const [inline] |
Constant pointer access operator.
Referenced by CCuddLikeMgrStorage< MgrType >::generate(), dd_operations< CTypes::dd_type::navigator >::length(), dd_operations< CTypes::dd_type::navigator >::newNodeAssign(), dd_operations< CTypes::dd_type::navigator >::nSupport(), CCuddGetNode::operator()(), and dd_operations< CTypes::dd_type::navigator >::replacingNode().
hash_type CCuddNavigator::hash | ( | ) | const [inline] |
Constant pointer access operator.
void CCuddNavigator::incRef | ( | ) | const [inline] |
Force incrementation of reference count.
References isValid().
Referenced by dd_operations< CTypes::dd_type::navigator >::assign(), dd_operations< CTypes::dd_type::navigator >::newNode(), dd_operations< CTypes::dd_type::navigator >::newNodeAssign(), CCuddGetNode::operator()(), and dd_operations< CTypes::dd_type::navigator >::replacingNode().
CCuddNavigator & CCuddNavigator::incrementElse | ( | ) | [inline] |
Increment in else
direction.
References isValid(), and PBORI_TRACE_FUNC.
Referenced by CCuddLastIter::CCuddLastIter(), elseBranch(), and CCuddLastIter::operator++().
CCuddNavigator & CCuddNavigator::incrementThen | ( | ) | [inline] |
Increment in then
direction.
References isValid(), and PBORI_TRACE_FUNC.
Referenced by CCuddFirstIter::increment(), CCuddLastIter::operator++(), and thenBranch().
CCuddNavigator::bool_type CCuddNavigator::isConstant | ( | ) | const [inline] |
Check whether constant node was reached.
References isValid(), and PBORI_TRACE_FUNC.
Referenced by CCuddLastIter::CCuddLastIter(), isEmpty(), isTerminated(), CCuddLastIter::operator++(), terminalValue(), CCuddLastIter::terminateConstant(), and CCuddFirstIter::terminateConstant().
bool_type CCuddNavigator::isEmpty | ( | ) | const [inline] |
Check whether dead end was reached.
References isConstant(), and terminalValue().
bool_type CCuddNavigator::isTerminated | ( | ) | const [inline] |
Check whether end of path was reached.
References isConstant(), and terminalValue().
bool_type CCuddNavigator::isValid | ( | ) | const [inline] |
Check whether *this is not the default iterator self() (NULL pointer).
Referenced by BoolePolynomial::BoolePolynomial(), CCuddLastIter::CCuddLastIter(), CCuddNavigator(), decRef(), incRef(), incrementElse(), incrementThen(), isConstant(), CCuddFirstIter::isEnd(), CCuddGetNode::operator()(), operator*(), CCuddLastIter::operator++(), and recursiveDecRef().
CCuddNavigator::value_type CCuddNavigator::operator* | ( | ) | const [inline] |
Constant dereference operator.
References isValid(), and PBORI_TRACE_FUNC.
const_access_type CCuddNavigator::operator-> | ( | ) | const [inline] |
Constant pointer access operator.
void CCuddNavigator::recursiveDecRef | ( | const MgrType & | mgr | ) | const [inline] |
Force recursive decrementation of reference count.
References isValid().
Referenced by CCuddGetNode::operator()().
CCuddNavigator::bool_type CCuddNavigator::terminalValue | ( | ) | const [inline] |
Check whether terminal node marks end of path.
References isConstant(), and PBORI_TRACE_FUNC.
Referenced by CCuddLastIter::CCuddLastIter(), isEmpty(), isTerminated(), and CCuddLastIter::operator++().
self CCuddNavigator::thenBranch | ( | ) | const [inline] |