15 #ifndef polybori_iterators_COrderedIter_h_
16 #define polybori_iterators_COrderedIter_h_
33 template <
class NavigatorType>
42 virtual void increment() = 0;
50 template <
class StackType>
62 template <
class MgrType>
111 template <
class NavigatorType,
class MonomType>
113 public boost::iterator_facade<
114 COrderedIter<NavigatorType, MonomType>,
115 MonomType, std::forward_iterator_tag, MonomType
147 m_getTerm(getTerm), p_iter(rhs) {}
153 return p_iter->equal(*rhs.p_iter); }
157 if (!p_iter.unique()) {
177 return m_getTerm(*p_iter);
190 return p_iter->navigation();
202 template <
class OrderType,
class NavigatorType,
class MonomType>
217 template <
class MgrType>
226 template <
class OrderType,
class NavigatorType>
241 template <
class MgrType>
boost::indirect_iterator< typename stack_type::const_iterator, typename navigator::value_type, boost::use_default, typename navigator::reference > const_iterator
Definition: CTermStack.h:156
const_reverse_iterator rend() const
Definition: COrderedIter.h:183
NavigatorType navigator
Definition: COrderedIter.h:36
iterator_core::deg_type deg_type
Definition: COrderedIter.h:131
CTermGenerator< MonomType > term_generator
Type for functional, which generates actual term, for current path.
Definition: COrderedIter.h:125
CWrappedStack< ordered_iter_base > ordered_iter_type
Definition: COrderedIter.h:233
CGenericOrderedIter(const CGenericOrderedIter &rhs)
Definition: COrderedIter.h:223
CStackSelector< OrderType, NavigatorType, stack_base >::type ordered_iter_base
Definition: COrderedIter.h:208
This class is just a wrapper for using variables for storing indices as interim data structure for Bo...
Definition: BooleExponent.h:34
#define END_NAMESPACE_PBORI
Finish project's namespace.
Definition: pbori_defs.h:77
boost::shared_ptr< iterator_core > core_pointer
Definition: COrderedIter.h:139
base::core_pointer core_pointer
Definition: COrderedIter.h:213
CTermStackBase< NavigatorType, stack_base > iterator_core
Definition: COrderedIter.h:122
base::term_generator term_generator
Definition: COrderedIter.h:239
core_pointer p_iter
A shared pointer to the stack, which carries the current path.
Definition: COrderedIter.h:198
boost::shared_ptr< iterator_core > core_pointer
Definition: COrderedIter.h:60
NavigatorType navigator
Fix type of direct iterator.
Definition: COrderedIter.h:136
#define BEGIN_NAMESPACE_PBORI
Start project's namespace.
Definition: pbori_defs.h:74
CWrappedStack< ordered_iter_base > ordered_iter_type
Definition: COrderedIter.h:209
COrderedIter(core_pointer rhs, const term_generator &getTerm)
Definition: COrderedIter.h:145
StackType base
Definition: COrderedIter.h:54
bool equal(const self &rhs) const
Definition: COrderedIter.h:152
iterator_core::const_iterator const_iterator
Definition: COrderedIter.h:127
CAbstractStackBase< NavigatorType > stack_base
Definition: COrderedIter.h:121
CAbstractStackBase< NavigatorType > stack_base
Definition: COrderedIter.h:206
bool_type isZero() const
Determine whether term is zero (without explicit constructing)
Definition: COrderedIter.h:169
COrderedIter< NavigatorType, BooleExponent > base
Definition: COrderedIter.h:235
bool bool_type
Extract plain Boolean type.
Definition: COrderedIter.h:142
const_iterator end() const
Definition: COrderedIter.h:181
void increment()
Incrementation.
Definition: COrderedIter.h:156
on_same_type< block_prop, valid_tag, block_type, nonblock_type >::type type
The resulting type for iterator's stack.
Definition: CStackSelector.h:67
CGenericOrderedIter(const CGenericOrderedIter &rhs)
Definition: COrderedIter.h:249
Definition: COrderedIter.h:34
CWrappedStack(navigator navi, const MgrType &mgr)
Definition: COrderedIter.h:63
bool_type isOne() const
Determine whether term is one (without explicit constructing)
Definition: COrderedIter.h:166
CStackSelector< OrderType, NavigatorType, stack_base >::type ordered_iter_base
Definition: COrderedIter.h:232
navigator navigation() const
Get navigator of term start.
Definition: COrderedIter.h:189
base::navigator navigator
Definition: COrderedIter.h:57
boost::indirect_iterator< typename stack_type::const_reverse_iterator, typename navigator::value_type, boost::use_default, typename navigator::reference > const_reverse_iterator
Definition: CTermStack.h:166
const_iterator begin() const
Definition: COrderedIter.h:180
navigator::idx_type idx_type
Type for indices.
Definition: CTermStack.h:138
base::iterator_core iterator_core
Definition: COrderedIter.h:236
base::core_pointer core_pointer
Definition: COrderedIter.h:237
iterator_core::const_reverse_iterator const_reverse_iterator
Definition: COrderedIter.h:129
iterator_core::idx_type idx_type
Definition: COrderedIter.h:132
base::iterator_core iterator_core
Definition: COrderedIter.h:212
idx_type firstIndex() const
Definition: COrderedIter.h:186
CTermStackBase< NavigatorType, self > iterator_core
Definition: COrderedIter.h:39
CGenericOrderedIter(NavigatorType navi, const MgrType &mgr)
Definition: COrderedIter.h:242
virtual ~CAbstractStackBase()
Definition: COrderedIter.h:45
core_pointer copy() const
Definition: COrderedIter.h:71
bool_type isEnd() const
Check, whether end of iteration is reached.
Definition: COrderedIter.h:172
navigator::size_type size_type
Type for lengths.
Definition: CTermStack.h:141
MonomType dereference() const
Dereferencing operation.
Definition: COrderedIter.h:175
const_reverse_iterator rbegin() const
Definition: COrderedIter.h:182
CWrappedStack(const self &rhs)
Definition: COrderedIter.h:68
base::term_generator term_generator
Definition: COrderedIter.h:215
iterator_core::size_type size_type
Definition: COrderedIter.h:130
COrderedIter< NavigatorType, MonomType > base
Definition: COrderedIter.h:211
~COrderedIter()
Definition: COrderedIter.h:150
This class defines an iterator for the monomials in a Boolean polynomial.
Definition: CTermStack.h:126
Definition: COrderedIter.h:51
term_generator m_getTerm
The functional which defines the dereferecing operation.
Definition: COrderedIter.h:195
boost::shared_ptr< iterator_core > core_pointer
Definition: COrderedIter.h:40
base::iterator_core iterator_core
Definition: COrderedIter.h:59
CAbstractStackBase< NavigatorType > stack_base
Definition: COrderedIter.h:230
Definition: COrderedIter.h:203
deg_type deg() const
Definition: COrderedIter.h:185
CGenericOrderedIter(NavigatorType navi, const MgrType &gen)
Definition: COrderedIter.h:218
navigator::deg_type deg_type
Definition: CTermStack.h:142