18 #ifndef polybori_iterators_CCuddFirstIter_h_
19 #define polybori_iterators_CCuddFirstIter_h_
25 #include <boost/iterator/iterator_facade.hpp>
36 public boost::iterator_facade<
38 CCuddNavigator::value_type,
39 std::forward_iterator_tag,
40 CCuddNavigator::reference
71 m_navi.incrementThen();
76 bool_type
equal (
const self& rhs)
const {
return (m_navi == rhs.m_navi); }
82 bool_type
isEnd()
const {
return !m_navi.isValid(); }
87 if (m_navi.isConstant())
CCuddFirstIter(navigator rhs)
Construct from navigator over nodes.
Definition: CCuddFirstIter.h:64
void terminateConstant()
Constant nodes are marked as the end of a path.
Definition: CCuddFirstIter.h:86
CCuddFirstIter()
Default constructor.
Definition: CCuddFirstIter.h:61
#define END_NAMESPACE_PBORI
Finish project's namespace.
Definition: pbori_defs.h:77
navigator::reference dereference() const
Dereferencing of the iterator.
Definition: CCuddFirstIter.h:79
CCuddNavigator navigator
Get navigator type.
Definition: CCuddFirstIter.h:52
#define BEGIN_NAMESPACE_PBORI
Start project's namespace.
Definition: pbori_defs.h:74
value_type reference
Definition: CCuddNavigator.h:71
CTypes::bool_type bool_type
Type for boolean results.
Definition: CCuddNavigator.h:58
navigator::bool_type bool_type
Type for boolean values.
Definition: CCuddFirstIter.h:58
bool_type equal(const self &rhs) const
Equality test.
Definition: CCuddFirstIter.h:76
~CCuddFirstIter()
Destructor.
Definition: CCuddFirstIter.h:67
bool_type isEnd() const
Check, whether end of iteration is reached.
Definition: CCuddFirstIter.h:82
navigator::const_access_type const_access_type
Type for constantly accessing node pointer.
Definition: CCuddFirstIter.h:55
This class defines an iterator over the first minimal term of a given ZDD node.
Definition: CCuddFirstIter.h:35
const pointer_type const_access_type
Type for constantly accessing node pointer.
Definition: CCuddNavigator.h:43
void increment()
Incrementation operation.
Definition: CCuddFirstIter.h:70
navigator m_navi
Use navigator to access diagram nodes.
Definition: CCuddFirstIter.h:93
This class defines an iterator for navigating through then and else branches of ZDDs.
Definition: CCuddNavigator.h:36
std::forward_iterator_tag iterator_category
Interface type for standard iterator access.
Definition: CCuddFirstIter.h:46