W3cubDocs

/Eigen3

Eigen::Stride

template<int _OuterStrideAtCompileTime, int _InnerStrideAtCompileTime>
class Eigen::Stride< _OuterStrideAtCompileTime, _InnerStrideAtCompileTime >

Holds strides information for Map.

This class holds the strides information for mapping arrays with strides with class Map.

It holds two values: the inner stride and the outer stride.

The inner stride is the pointer increment between two consecutive entries within a given row of a row-major matrix or within a given column of a column-major matrix.

The outer stride is the pointer increment between two consecutive rows of a row-major matrix or between two consecutive columns of a column-major matrix.

These two values can be passed either at compile-time as template parameters, or at runtime as arguments to the constructor.

Indeed, this class takes two template parameters:

Template Parameters
_OuterStrideAtCompileTime the outer stride, or Dynamic if you want to specify it at runtime.
_InnerStrideAtCompileTime the inner stride, or Dynamic if you want to specify it at runtime.

Here is an example:

int array[24];
for(int i = 0; i < 24; ++i) array[i] = i;
cout << Map<MatrixXi, 0, Stride<Dynamic,2> >
         (array, 3, 3, Stride<Dynamic,2>(8, 2))
     << endl;

Output:

 0  8 16
 2 10 18
 4 12 20

Both strides can be negative, however, a negative stride of -1 cannot be specified at compiletime because of the ambiguity with Dynamic which is defined to -1 (historically, negative strides were not allowed).

See also
class InnerStride, class OuterStride, Storage orders
typedef Eigen::Index Index
EIGEN_CONSTEXPR Index inner () const
EIGEN_CONSTEXPR Index outer () const
Stride ()
Stride (const Stride &other)
Stride (Index outerStride, Index innerStride)

Index

template<int _OuterStrideAtCompileTime, int _InnerStrideAtCompileTime>
typedef Eigen::Index Eigen::Stride< _OuterStrideAtCompileTime, _InnerStrideAtCompileTime >::Index
Deprecated:
since Eigen 3.3

Stride() [1/3]

template<int _OuterStrideAtCompileTime, int _InnerStrideAtCompileTime>
Eigen::Stride< _OuterStrideAtCompileTime, _InnerStrideAtCompileTime >::Stride ( )
inline

Default constructor, for use when strides are fixed at compile time

Stride() [2/3]

template<int _OuterStrideAtCompileTime, int _InnerStrideAtCompileTime>
Eigen::Stride< _OuterStrideAtCompileTime, _InnerStrideAtCompileTime >::Stride ( Index outerStride,
Index innerStride
)
inline

Constructor allowing to pass the strides at runtime

Stride() [3/3]

template<int _OuterStrideAtCompileTime, int _InnerStrideAtCompileTime>
Eigen::Stride< _OuterStrideAtCompileTime, _InnerStrideAtCompileTime >::Stride ( const Stride< _OuterStrideAtCompileTime, _InnerStrideAtCompileTime > & other )
inline

Copy constructor

inner()

template<int _OuterStrideAtCompileTime, int _InnerStrideAtCompileTime>
EIGEN_CONSTEXPR Index Eigen::Stride< _OuterStrideAtCompileTime, _InnerStrideAtCompileTime >::inner ( ) const
inline
Returns
the inner stride

outer()

template<int _OuterStrideAtCompileTime, int _InnerStrideAtCompileTime>
EIGEN_CONSTEXPR Index Eigen::Stride< _OuterStrideAtCompileTime, _InnerStrideAtCompileTime >::outer ( ) const
inline
Returns
the outer stride

The documentation for this class was generated from the following file:

© Eigen.
Licensed under the MPL2 License.
https://eigen.tuxfamily.org/dox/classEigen_1_1Stride.html