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>
199 m_ptr = xpr.data() + index * m_incr.value();
209 m_incr.setValue(
other.m_incr);
232 return (m_ptr - other.
m_ptr)/m_incr.value();
236 return (m_ptr - other.m_ptr)/m_incr.value();
248 bool operator< (
const other_iterator&
other)
const {
return m_ptr < other.m_ptr; }
250 bool operator> (
const other_iterator&
other)
const {
return m_ptr > other.m_ptr; }
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>
463 #endif // EIGEN_STLITERATORS_H bool operator<=(const other_iterator &other) const
Derived & operator-=(Index b)
XprType::Scalar value_type
bool operator!=(const pointer_based_stl_iterator &other) const
pointer_based_stl_iterator & operator--()
bool operator==(const other_iterator &other) const
reference::PlainObject value_type
friend Derived operator+(const indexed_based_stl_iterator_base &a, Index b)
indexed_based_stl_iterator_traits< Derived > traits
internal::conditional< Direction==Vertical, typename XprType::ConstColXpr, typename XprType::ConstRowXpr >::type ConstSubVectorType
const Derived & derived() const
reference operator[](Index i) const
std::random_access_iterator_tag iterator_category
subvector_stl_iterator< typename internal::add_const< XprType >::type, Direction > const_iterator
reference operator*() const
difference_type operator-(const pointer_based_stl_iterator &other) const
pointer_based_stl_iterator(XprType &xpr, Index index) EIGEN_NO_THROW
difference_type operator-(const indexed_based_stl_iterator_base &other) const
bool operator==(const indexed_based_stl_iterator_base &other) const
const value_type read_only_ref_t
difference_type operator-(const indexed_based_stl_reverse_iterator_base &other) const
const unsigned int DirectAccessBit
subvector_stl_iterator< typename internal::remove_const< XprType >::type, Direction > non_const_iterator
pointer_based_stl_iterator< typename internal::add_const< XprType >::type > const_iterator
subvector_stl_reverse_iterator_ptr pointer
indexed_based_stl_iterator_traits< Derived > traits
bool operator!=(const other_iterator &other) const
bool operator>=(const indexed_based_stl_reverse_iterator_base &other) const
reference operator*() const
subvector_stl_iterator_ptr(const reference &subvector)
indexed_based_stl_reverse_iterator_base & operator=(const non_const_iterator &other)
Namespace containing all symbols from the Eigen library.
internal::conditional< Direction==Vertical, typename XprType::ConstColXpr, typename XprType::ConstRowXpr >::type ConstSubVectorType
Derived & operator+=(Index b)
bool operator<=(const indexed_based_stl_iterator_base &other) const
bool operator<=(const pointer_based_stl_iterator &other) const
internal::conditional< bool(is_lvalue), SubVectorType, ConstSubVectorType >::type reference
pointer operator->() const
bool operator!=(const indexed_based_stl_iterator_base &other) const
Derived & operator+=(Index b)
bool operator>=(const other_iterator &other) const
internal::conditional< bool(is_lvalue), value_type *, const value_type * >::type pointer
friend Derived operator+(Index a, const indexed_based_stl_iterator_base &b)
bool operator>=(const pointer_based_stl_iterator &other) const
generic_randaccess_stl_iterator< typename internal::add_const< XprType >::type > const_iterator
internal::conditional< internal::is_const< XprType >::value, non_const_iterator, const_iterator >::type other_iterator
friend pointer_based_stl_iterator operator+(Index a, const pointer_based_stl_iterator &b)
friend pointer_based_stl_iterator operator+(const pointer_based_stl_iterator &a, Index b)
pointer_based_stl_iterator & operator++()
friend Derived operator+(Index a, const indexed_based_stl_reverse_iterator_base &b)
internal::conditional< internal::is_const< XprType >::value, non_const_iterator, const_iterator >::type other_iterator
bool operator!=(const other_iterator &other) const
difference_type operator-(const other_iterator &other) const
subvector_stl_reverse_iterator(XprType &xpr, Index index)
internal::conditional< bool(is_lvalue), value_type &, read_only_ref_t >::type reference
indexed_based_stl_iterator_base & operator=(const non_const_iterator &other)
indexed_based_stl_reverse_iterator_base< subvector_stl_reverse_iterator > Base
reference operator[](Index i) const
pointer operator->() const
Generic expression where a coefficient-wise binary operator is applied to two expressions.
subvector_stl_reverse_iterator()
friend Derived operator-(Index a, const indexed_based_stl_reverse_iterator_base &b)
generic_randaccess_stl_iterator(XprType &xpr, Index index)
pointer_based_stl_iterator(const non_const_iterator &other) EIGEN_NO_THROW
bool operator>=(const indexed_based_stl_iterator_base &other) const
bool operator!=(const indexed_based_stl_reverse_iterator_base &other) const
internal::conditional< Direction==Vertical, typename XprType::ColXpr, typename XprType::RowXpr >::type SubVectorType
bool operator==(const pointer_based_stl_iterator &other) const
pointer_based_stl_iterator & operator=(const non_const_iterator &other) EIGEN_NO_THROW
subvector_stl_iterator(XprType &xpr, Index index)
friend Derived operator+(const indexed_based_stl_reverse_iterator_base &a, Index b)
reference operator[](Index i) const
EIGEN_DEFAULT_DENSE_INDEX_TYPE Index
The Index type as used for the API.
internal::variable_if_dynamic< Index, XprType::InnerStrideAtCompileTime > m_incr
pointer_based_stl_iterator operator--(int)
bool operator>=(const other_iterator &other) const
subvector_stl_reverse_iterator< typename internal::add_const< XprType >::type, Direction > const_iterator
internal::conditional< internal::is_const< XprType >::value, non_const_iterator, const_iterator >::type other_iterator
pointer_based_stl_iterator< typename internal::remove_const< XprType >::type > non_const_iterator
bool operator>=(const other_iterator &other) const
reference operator*() const
indexed_based_stl_iterator_base< typename traits::const_iterator > const_iterator
indexed_based_stl_reverse_iterator_base< typename traits::const_iterator > const_iterator
Derived & operator-=(Index b)
pointer operator->() const
indexed_based_stl_iterator_base< typename traits::non_const_iterator > non_const_iterator
subvector_stl_reverse_iterator_ptr(const reference &subvector)
internal::conditional< Direction==Vertical, typename XprType::ColXpr, typename XprType::RowXpr >::type SubVectorType
generic_randaccess_stl_iterator< typename internal::remove_const< XprType >::type > non_const_iterator
indexed_based_stl_iterator_base< subvector_stl_iterator > Base
std::random_access_iterator_tag iterator_category
bool operator>(const indexed_based_stl_iterator_base &other) const
bool operator<=(const other_iterator &other) const
reference::PlainObject value_type
friend Derived operator-(const indexed_based_stl_reverse_iterator_base &a, Index b)
indexed_based_stl_reverse_iterator_base< typename traits::non_const_iterator > non_const_iterator
reference operator*() const
indexed_based_stl_iterator_base< generic_randaccess_stl_iterator > Base
difference_type operator-(const other_iterator &other) const
bool operator==(const other_iterator &other) const
bool operator==(const other_iterator &other) const
EIGEN_CONSTEXPR Index size(const T &x)
indexed_based_stl_reverse_iterator_base(const non_const_iterator &other)
pointer_based_stl_iterator operator++(int)
bool operator==(const indexed_based_stl_reverse_iterator_base &other) const
difference_type operator-(const other_iterator &other) const
friend Derived operator-(Index a, const indexed_based_stl_iterator_base &b)
internal::conditional< bool(is_lvalue), SubVectorType, ConstSubVectorType >::type reference
CwiseBinaryOp< internal::scalar_sum_op< double, double >, const CpyMatrixXd, const CpyMatrixXd > XprType
generic_randaccess_stl_iterator(const typename Base::non_const_iterator &other)
pointer_based_stl_iterator & operator+=(Index b)
pointer operator->() const
bool operator!=(const other_iterator &other) const
friend pointer_based_stl_iterator operator-(Index a, const pointer_based_stl_iterator &b)
const_iterator cbegin() const
indexed_based_stl_reverse_iterator_base(XprType &xpr, Index index)
std::random_access_iterator_tag iterator_category
friend Derived operator-(const indexed_based_stl_iterator_base &a, Index b)
subvector_stl_iterator_ptr pointer
XprType::Scalar value_type
Generic expression where a coefficient-wise unary operator is applied to an expression.
bool operator<=(const other_iterator &other) const
subvector_stl_reverse_iterator< typename internal::remove_const< XprType >::type, Direction > non_const_iterator
indexed_based_stl_iterator_base(const non_const_iterator &other) EIGEN_NO_THROW
generic_randaccess_stl_iterator()
indexed_based_stl_iterator_base(XprType &xpr, Index index) EIGEN_NO_THROW
#define EIGEN_STATIC_ASSERT_VECTOR_ONLY(TYPE)
pointer_based_stl_iterator & operator-=(Index b)
reference operator[](Index i) const
bool operator<(const indexed_based_stl_iterator_base &other) const
friend pointer_based_stl_iterator operator-(const pointer_based_stl_iterator &a, Index b)
bool operator<=(const indexed_based_stl_reverse_iterator_base &other) const
const Derived & derived() const
const_iterator cend() const