Eigen  3.4.90 (git rev a4098ac676528a83cfb73d4d26ce1b42ec05f47c)
Eigen::Stride< OuterStrideAtCompileTime_, InnerStrideAtCompileTime_ > Class Template Reference

Detailed Description

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 compile time because of the ambiguity with Dynamic which is defined to -1 (historically, negative strides were not allowed).

Note that for compile-time vectors (ColsAtCompileTime==1 or RowsAtCompile==1), the inner stride is the pointer increment between two consecutive elements, regardless of storage layout.

See also
class InnerStride, class OuterStride, Storage orders

Public Types

typedef Eigen::Index Index
 

Public Member Functions

EIGEN_CONSTEXPR Index inner () const
 
EIGEN_CONSTEXPR Index outer () const
 
 Stride ()
 
 Stride (const Stride &other)
 
 Stride (Index outerStride, Index innerStride)
 

Member Typedef Documentation

◆ Index

template<int OuterStrideAtCompileTime_, int InnerStrideAtCompileTime_>
typedef Eigen::Index Eigen::Stride< OuterStrideAtCompileTime_, InnerStrideAtCompileTime_ >::Index
Deprecated:
since Eigen 3.3

Constructor & Destructor Documentation

◆ 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

Member Function Documentation

◆ 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: