25 typedef typename traits::XprType XprType;
34 typedef std::random_access_iterator_tag iterator_category;
40 : mp_xpr(other.mp_xpr), m_index(other.m_index)
45 mp_xpr = other.mp_xpr;
46 m_index = other.m_index;
50 Derived& operator++() { ++m_index;
return derived(); }
51 Derived& operator--() { --m_index;
return derived(); }
53 Derived operator++(
int) { Derived prev(derived()); operator++();
return prev;}
54 Derived operator--(
int) { Derived prev(derived()); operator--();
return prev;}
61 Derived& operator+=(
Index b) { m_index += b;
return derived(); }
62 Derived& operator-=(
Index b) { m_index -= b;
return derived(); }
66 eigen_assert(mp_xpr == other.mp_xpr);
67 return m_index - other.m_index;
72 eigen_assert(mp_xpr == other.mp_xpr);
73 return m_index - other.m_index;
83 bool operator==(
const other_iterator& other)
const { eigen_assert(mp_xpr == other.mp_xpr);
return m_index == other.m_index; }
84 bool operator!=(
const other_iterator& other)
const { eigen_assert(mp_xpr == other.mp_xpr);
return m_index != other.m_index; }
85 bool operator< (
const other_iterator& other)
const { eigen_assert(mp_xpr == other.mp_xpr);
return m_index < other.m_index; }
86 bool operator<=(
const other_iterator& other)
const { eigen_assert(mp_xpr == other.mp_xpr);
return m_index <= other.m_index; }
87 bool operator> (
const other_iterator& other)
const { eigen_assert(mp_xpr == other.mp_xpr);
return m_index > other.m_index; }
88 bool operator>=(
const other_iterator& other)
const { eigen_assert(mp_xpr == other.mp_xpr);
return m_index >= other.m_index; }
92 Derived& derived() {
return static_cast<Derived&
>(*this); }
93 const Derived& derived()
const {
return static_cast<const Derived&
>(*this); }
104 typedef typename traits::XprType XprType;
113 typedef std::random_access_iterator_tag iterator_category;
119 : mp_xpr(other.mp_xpr), m_index(other.m_index)
124 mp_xpr = other.mp_xpr;
125 m_index = other.m_index;
129 Derived& operator++() { --m_index;
return derived(); }
130 Derived& operator--() { ++m_index;
return derived(); }
132 Derived operator++(
int) { Derived prev(derived()); operator++();
return prev;}
133 Derived operator--(
int) { Derived prev(derived()); operator--();
return prev;}
140 Derived& operator+=(
Index b) { m_index -= b;
return derived(); }
141 Derived& operator-=(
Index b) { m_index += b;
return derived(); }
145 eigen_assert(mp_xpr == other.mp_xpr);
146 return other.m_index - m_index;
151 eigen_assert(mp_xpr == other.mp_xpr);
152 return other.m_index - m_index;
162 bool operator==(
const other_iterator& other)
const { eigen_assert(mp_xpr == other.mp_xpr);
return m_index == other.m_index; }
163 bool operator!=(
const other_iterator& other)
const { eigen_assert(mp_xpr == other.mp_xpr);
return m_index != other.m_index; }
164 bool operator< (
const other_iterator& other)
const { eigen_assert(mp_xpr == other.mp_xpr);
return m_index > other.m_index; }
165 bool operator<=(
const other_iterator& other)
const { eigen_assert(mp_xpr == other.mp_xpr);
return m_index >= other.m_index; }
166 bool operator> (
const other_iterator& other)
const { eigen_assert(mp_xpr == other.mp_xpr);
return m_index < other.m_index; }
167 bool operator>=(
const other_iterator& other)
const { eigen_assert(mp_xpr == other.mp_xpr);
return m_index <= other.m_index; }
171 Derived& derived() {
return static_cast<Derived&
>(*this); }
172 const Derived& derived()
const {
return static_cast<const Derived&
>(*this); }
191 typedef std::random_access_iterator_tag iterator_category;
199 m_ptr =
xpr.data() + index * m_incr.value();
203 : m_ptr(other.m_ptr), m_incr(other.m_incr)
209 m_incr.setValue(other.m_incr);
213 reference operator*()
const {
return *m_ptr; }
214 reference operator[](
Index i)
const {
return *(m_ptr+i*m_incr.value()); }
215 pointer operator->()
const {
return m_ptr; }
232 return (m_ptr - other.m_ptr)/m_incr.value();
236 return (m_ptr - other.m_ptr)/m_incr.value();
246 bool operator==(
const other_iterator& other)
const {
return m_ptr == other.m_ptr; }
247 bool operator!=(
const other_iterator& other)
const {
return m_ptr != other.m_ptr; }
249 bool operator<=(
const other_iterator& other)
const {
return m_ptr <= other.m_ptr; }
251 bool operator>=(
const other_iterator& other)
const {
return m_ptr >= other.m_ptr; }
const_iterator cbegin() const
returns a read-only const_iterator to the first element of the 1D vector or array \only_for_vectors
Definition StlIterators.h:426
const_iterator cend() const
returns a read-only const_iterator to the element following the last element of the 1D vector or arra...
Definition StlIterators.h:455
const unsigned int DirectAccessBit
Means that the underlying array of coefficients can be directly accessed as a plain strided array.
Definition Constants.h:155