10 #ifndef EIGEN_STLITERATORS_H
11 #define EIGEN_STLITERATORS_H
17 template<
typename IteratorType>
20 template<
typename Derived>
92 Derived&
derived() {
return static_cast<Derived&
>(*this); }
93 const Derived&
derived()
const {
return static_cast<const Derived&
>(*this); }
99 template<
typename Derived>
152 return other.m_index -
m_index;
171 Derived&
derived() {
return static_cast<Derived&
>(*this); }
172 const Derived&
derived()
const {
return static_cast<const Derived&
>(*this); }
178 template<
typename XprType>
259 template<
typename _XprType>
267 template<
typename XprType>
297 using Base::operator=;
304 template<
typename _XprType, DirectionType Direction>
312 template<
typename XprType, DirectionType Direction>
352 template<
typename _XprType, DirectionType Direction>
360 template<
typename XprType, DirectionType Direction>
407 template<
typename Derived>
415 template<
typename Derived>
425 template<
typename Derived>
436 template<
typename Derived>
444 template<
typename Derived>
454 template<
typename Derived>
#define eigen_assert(x)
Definition: Macros.h:1037
#define EIGEN_NO_THROW
Definition: Macros.h:1420
#define EIGEN_STATIC_ASSERT_VECTOR_ONLY(TYPE)
Definition: StaticAssert.h:142
iterator begin()
Definition: StlIterators.h:408
iterator end()
Definition: StlIterators.h:437
const_iterator cbegin() const
Definition: StlIterators.h:426
const_iterator cend() const
Definition: StlIterators.h:455
Definition: StlIterators.h:269
generic_randaccess_stl_iterator(XprType &xpr, Index index)
Definition: StlIterators.h:295
Index m_index
Definition: StlIterators.h:96
XprType * mp_xpr
Definition: StlIterators.h:95
internal::conditional< bool(is_lvalue), value_type &, read_only_ref_t >::type reference
Definition: StlIterators.h:292
pointer operator->() const
Definition: StlIterators.h:301
generic_randaccess_stl_iterator(const typename Base::non_const_iterator &other)
Definition: StlIterators.h:296
indexed_based_stl_iterator_base< generic_randaccess_stl_iterator > Base
Definition: StlIterators.h:280
internal::conditional< bool(is_lvalue), value_type *, const value_type * >::type pointer
Definition: StlIterators.h:291
reference operator*() const
Definition: StlIterators.h:299
const value_type read_only_ref_t
Definition: StlIterators.h:287
XprType::Scalar value_type
Definition: StlIterators.h:271
reference operator[](Index i) const
Definition: StlIterators.h:300
generic_randaccess_stl_iterator()
Definition: StlIterators.h:294
Definition: StlIterators.h:22
Derived & operator++()
Definition: StlIterators.h:50
Index difference_type
Definition: StlIterators.h:33
Derived operator--(int)
Definition: StlIterators.h:54
Index m_index
Definition: StlIterators.h:96
indexed_based_stl_iterator_base & operator=(const non_const_iterator &other)
Definition: StlIterators.h:43
XprType * mp_xpr
Definition: StlIterators.h:95
indexed_based_stl_iterator_base< typename traits::const_iterator > const_iterator
Definition: StlIterators.h:27
friend Derived operator+(const indexed_based_stl_iterator_base &a, Index b)
Definition: StlIterators.h:56
indexed_based_stl_iterator_base< typename traits::non_const_iterator > non_const_iterator
Definition: StlIterators.h:26
Derived & operator+=(Index b)
Definition: StlIterators.h:61
bool operator<=(const other_iterator &other) const
Definition: StlIterators.h:86
bool operator==(const indexed_based_stl_iterator_base &other) const
Definition: StlIterators.h:76
bool operator!=(const indexed_based_stl_iterator_base &other) const
Definition: StlIterators.h:77
traits::XprType XprType
Definition: StlIterators.h:25
indexed_based_stl_iterator_traits< Derived > traits
Definition: StlIterators.h:24
bool operator!=(const other_iterator &other) const
Definition: StlIterators.h:84
Derived & derived()
Definition: StlIterators.h:92
bool operator>(const indexed_based_stl_iterator_base &other) const
Definition: StlIterators.h:80
bool operator<=(const indexed_based_stl_iterator_base &other) const
Definition: StlIterators.h:79
difference_type operator-(const indexed_based_stl_iterator_base &other) const
Definition: StlIterators.h:64
std::random_access_iterator_tag iterator_category
Definition: StlIterators.h:34
friend Derived operator+(Index a, const indexed_based_stl_iterator_base &b)
Definition: StlIterators.h:58
Derived operator++(int)
Definition: StlIterators.h:53
friend Derived operator-(const indexed_based_stl_iterator_base &a, Index b)
Definition: StlIterators.h:57
indexed_based_stl_iterator_base(const non_const_iterator &other) EIGEN_NO_THROW
Definition: StlIterators.h:39
bool operator==(const other_iterator &other) const
Definition: StlIterators.h:83
Derived & operator--()
Definition: StlIterators.h:51
Derived & operator-=(Index b)
Definition: StlIterators.h:62
internal::conditional< internal::is_const< XprType >::value, non_const_iterator, const_iterator >::type other_iterator
Definition: StlIterators.h:28
bool operator>=(const indexed_based_stl_iterator_base &other) const
Definition: StlIterators.h:81
friend Derived operator-(Index a, const indexed_based_stl_iterator_base &b)
Definition: StlIterators.h:59
bool operator>=(const other_iterator &other) const
Definition: StlIterators.h:88
indexed_based_stl_iterator_base(XprType &xpr, Index index) EIGEN_NO_THROW
Definition: StlIterators.h:37
bool operator<(const indexed_based_stl_iterator_base &other) const
Definition: StlIterators.h:78
const Derived & derived() const
Definition: StlIterators.h:93
difference_type operator-(const other_iterator &other) const
Definition: StlIterators.h:70
Definition: StlIterators.h:101
bool operator<=(const other_iterator &other) const
Definition: StlIterators.h:165
bool operator==(const other_iterator &other) const
Definition: StlIterators.h:162
Derived & derived()
Definition: StlIterators.h:171
std::random_access_iterator_tag iterator_category
Definition: StlIterators.h:113
difference_type operator-(const indexed_based_stl_reverse_iterator_base &other) const
Definition: StlIterators.h:143
bool operator>=(const other_iterator &other) const
Definition: StlIterators.h:167
traits::XprType XprType
Definition: StlIterators.h:104
bool operator>(const indexed_based_stl_reverse_iterator_base &other) const
Definition: StlIterators.h:159
friend Derived operator+(const indexed_based_stl_reverse_iterator_base &a, Index b)
Definition: StlIterators.h:135
bool operator<=(const indexed_based_stl_reverse_iterator_base &other) const
Definition: StlIterators.h:158
indexed_based_stl_reverse_iterator_base(const non_const_iterator &other)
Definition: StlIterators.h:118
internal::conditional< internal::is_const< XprType >::value, non_const_iterator, const_iterator >::type other_iterator
Definition: StlIterators.h:107
difference_type operator-(const other_iterator &other) const
Definition: StlIterators.h:149
bool operator==(const indexed_based_stl_reverse_iterator_base &other) const
Definition: StlIterators.h:155
Derived operator--(int)
Definition: StlIterators.h:133
friend Derived operator-(Index a, const indexed_based_stl_reverse_iterator_base &b)
Definition: StlIterators.h:138
bool operator!=(const indexed_based_stl_reverse_iterator_base &other) const
Definition: StlIterators.h:156
indexed_based_stl_iterator_traits< Derived > traits
Definition: StlIterators.h:103
const Derived & derived() const
Definition: StlIterators.h:172
bool operator>=(const indexed_based_stl_reverse_iterator_base &other) const
Definition: StlIterators.h:160
XprType * mp_xpr
Definition: StlIterators.h:174
indexed_based_stl_reverse_iterator_base< typename traits::const_iterator > const_iterator
Definition: StlIterators.h:106
Derived & operator--()
Definition: StlIterators.h:130
bool operator<(const indexed_based_stl_reverse_iterator_base &other) const
Definition: StlIterators.h:157
friend Derived operator+(Index a, const indexed_based_stl_reverse_iterator_base &b)
Definition: StlIterators.h:137
indexed_based_stl_reverse_iterator_base & operator=(const non_const_iterator &other)
Definition: StlIterators.h:122
friend Derived operator-(const indexed_based_stl_reverse_iterator_base &a, Index b)
Definition: StlIterators.h:136
bool operator!=(const other_iterator &other) const
Definition: StlIterators.h:163
indexed_based_stl_reverse_iterator_base< typename traits::non_const_iterator > non_const_iterator
Definition: StlIterators.h:105
Derived & operator++()
Definition: StlIterators.h:129
indexed_based_stl_reverse_iterator_base(XprType &xpr, Index index)
Definition: StlIterators.h:116
Index m_index
Definition: StlIterators.h:175
Derived & operator+=(Index b)
Definition: StlIterators.h:140
Derived operator++(int)
Definition: StlIterators.h:132
Derived & operator-=(Index b)
Definition: StlIterators.h:141
Index difference_type
Definition: StlIterators.h:112
Definition: StlIterators.h:180
bool operator<=(const pointer_based_stl_iterator &other) const
Definition: StlIterators.h:242
pointer_based_stl_iterator operator++(int)
Definition: StlIterators.h:220
bool operator>=(const pointer_based_stl_iterator &other) const
Definition: StlIterators.h:244
pointer m_ptr
Definition: StlIterators.h:255
bool operator==(const other_iterator &other) const
Definition: StlIterators.h:246
reference operator[](Index i) const
Definition: StlIterators.h:214
std::random_access_iterator_tag iterator_category
Definition: StlIterators.h:191
Index difference_type
Definition: StlIterators.h:189
pointer_based_stl_iterator< typename internal::add_const< XprType >::type > const_iterator
Definition: StlIterators.h:183
bool operator!=(const other_iterator &other) const
Definition: StlIterators.h:247
pointer_based_stl_iterator operator--(int)
Definition: StlIterators.h:221
XprType::Scalar value_type
Definition: StlIterators.h:190
bool operator>=(const other_iterator &other) const
Definition: StlIterators.h:251
difference_type operator-(const pointer_based_stl_iterator &other) const
Definition: StlIterators.h:231
friend pointer_based_stl_iterator operator+(const pointer_based_stl_iterator &a, Index b)
Definition: StlIterators.h:223
pointer_based_stl_iterator & operator++()
Definition: StlIterators.h:217
friend pointer_based_stl_iterator operator-(const pointer_based_stl_iterator &a, Index b)
Definition: StlIterators.h:224
pointer_based_stl_iterator(const non_const_iterator &other) EIGEN_NO_THROW
Definition: StlIterators.h:202
bool operator!=(const pointer_based_stl_iterator &other) const
Definition: StlIterators.h:240
difference_type operator-(const other_iterator &other) const
Definition: StlIterators.h:235
pointer_based_stl_iterator & operator-=(Index b)
Definition: StlIterators.h:229
pointer operator->() const
Definition: StlIterators.h:215
pointer_based_stl_iterator(XprType &xpr, Index index) EIGEN_NO_THROW
Definition: StlIterators.h:197
friend pointer_based_stl_iterator operator+(Index a, const pointer_based_stl_iterator &b)
Definition: StlIterators.h:225
pointer_based_stl_iterator & operator+=(Index b)
Definition: StlIterators.h:228
reference operator*() const
Definition: StlIterators.h:213
bool operator<=(const other_iterator &other) const
Definition: StlIterators.h:249
internal::variable_if_dynamic< Index, XprType::InnerStrideAtCompileTime > m_incr
Definition: StlIterators.h:256
pointer_based_stl_iterator & operator=(const non_const_iterator &other) EIGEN_NO_THROW
Definition: StlIterators.h:206
internal::conditional< internal::is_const< XprType >::value, non_const_iterator, const_iterator >::type other_iterator
Definition: StlIterators.h:184
friend pointer_based_stl_iterator operator-(Index a, const pointer_based_stl_iterator &b)
Definition: StlIterators.h:226
bool operator==(const pointer_based_stl_iterator &other) const
Definition: StlIterators.h:239
pointer_based_stl_iterator & operator--()
Definition: StlIterators.h:218
pointer_based_stl_iterator< typename internal::remove_const< XprType >::type > non_const_iterator
Definition: StlIterators.h:182
bool operator>(const pointer_based_stl_iterator &other) const
Definition: StlIterators.h:243
bool operator<(const pointer_based_stl_iterator &other) const
Definition: StlIterators.h:241
Definition: StlIterators.h:333
subvector_stl_iterator_ptr(const reference &subvector)
Definition: StlIterators.h:335
reference * operator->()
Definition: StlIterators.h:336
reference m_subvector
Definition: StlIterators.h:338
Definition: StlIterators.h:314
Index m_index
Definition: StlIterators.h:96
internal::conditional< Direction==Vertical, typename XprType::ColXpr, typename XprType::RowXpr >::type SubVectorType
Definition: StlIterators.h:323
internal::conditional< bool(is_lvalue), SubVectorType, ConstSubVectorType >::type reference
Definition: StlIterators.h:328
subvector_stl_iterator(XprType &xpr, Index index)
Definition: StlIterators.h:345
indexed_based_stl_iterator_base< subvector_stl_iterator > Base
Definition: StlIterators.h:319
subvector_stl_iterator_ptr pointer
Definition: StlIterators.h:342
reference operator[](Index i) const
Definition: StlIterators.h:348
internal::conditional< Direction==Vertical, typename XprType::ConstColXpr, typename XprType::ConstRowXpr >::type ConstSubVectorType
Definition: StlIterators.h:324
pointer operator->() const
Definition: StlIterators.h:349
reference::PlainObject value_type
Definition: StlIterators.h:329
subvector_stl_iterator()
Definition: StlIterators.h:344
reference operator*() const
Definition: StlIterators.h:347
Definition: StlIterators.h:381
reference * operator->()
Definition: StlIterators.h:384
reference m_subvector
Definition: StlIterators.h:386
subvector_stl_reverse_iterator_ptr(const reference &subvector)
Definition: StlIterators.h:383
Definition: StlIterators.h:362
reference::PlainObject value_type
Definition: StlIterators.h:377
indexed_based_stl_reverse_iterator_base< subvector_stl_reverse_iterator > Base
Definition: StlIterators.h:367
internal::conditional< Direction==Vertical, typename XprType::ConstColXpr, typename XprType::ConstRowXpr >::type ConstSubVectorType
Definition: StlIterators.h:372
subvector_stl_reverse_iterator()
Definition: StlIterators.h:392
reference operator*() const
Definition: StlIterators.h:395
internal::conditional< Direction==Vertical, typename XprType::ColXpr, typename XprType::RowXpr >::type SubVectorType
Definition: StlIterators.h:371
reference operator[](Index i) const
Definition: StlIterators.h:396
subvector_stl_reverse_iterator(XprType &xpr, Index index)
Definition: StlIterators.h:393
pointer operator->() const
Definition: StlIterators.h:397
subvector_stl_reverse_iterator_ptr pointer
Definition: StlIterators.h:390
Index m_index
Definition: StlIterators.h:175
internal::conditional< bool(is_lvalue), SubVectorType, ConstSubVectorType >::type reference
Definition: StlIterators.h:376
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE void setValue(T v) const
Definition: XprHelper.h:139
static EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE EIGEN_CONSTEXPR T value()
Definition: XprHelper.h:135
const unsigned int DirectAccessBit
Definition: Constants.h:155
EIGEN_CONSTEXPR Index size(const T &x)
Definition: Meta.h:479
Namespace containing all symbols from the Eigen library.
Definition: LDLT.h:16
EIGEN_DEFAULT_DENSE_INDEX_TYPE Index
The Index type as used for the API.
Definition: Meta.h:74
type
The type the bitset is encoded with.
Definition: bitset.hpp:44
Definition: document.h:416
const GenericPointer< typename T::ValueType > T2 T::AllocatorType & a
Definition: pointer.h:1181
Definition: ForwardDeclarations.h:26
generic_randaccess_stl_iterator< typename internal::remove_const< XprType >::type > non_const_iterator
Definition: StlIterators.h:263
generic_randaccess_stl_iterator< typename internal::add_const< XprType >::type > const_iterator
Definition: StlIterators.h:264
_XprType XprType
Definition: StlIterators.h:262
_XprType XprType
Definition: StlIterators.h:307
subvector_stl_iterator< typename internal::remove_const< XprType >::type, Direction > non_const_iterator
Definition: StlIterators.h:308
subvector_stl_iterator< typename internal::add_const< XprType >::type, Direction > const_iterator
Definition: StlIterators.h:309
subvector_stl_reverse_iterator< typename internal::remove_const< XprType >::type, Direction > non_const_iterator
Definition: StlIterators.h:356
subvector_stl_reverse_iterator< typename internal::add_const< XprType >::type, Direction > const_iterator
Definition: StlIterators.h:357
_XprType XprType
Definition: StlIterators.h:355
Definition: StlIterators.h:18
Definition: XprHelper.h:660
Definition: ForwardDeclarations.h:17