Eigen  5.0.1
 
Loading...
Searching...
No Matches
Eigen::Stride< OuterStrideAtCompileTime_, InnerStrideAtCompileTime_ > Class Template Reference

#include <Eigen/src/Core/Stride.h>

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:

// SPDX-FileCopyrightText: The Eigen Authors
// SPDX-License-Identifier: MPL-2.0
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;
constexpr Stride()
Definition Stride.h:62

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 RowsAtCompileTime==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

using Index
 

Public Member Functions

constexpr Index inner () const
 
constexpr Stride & operator= (const Stride &other)
 
constexpr Index outer () const
 
constexpr Stride ()
 
constexpr Stride (const Stride &other)=default
 
constexpr Stride (Index outerStride, Index innerStride)
 

Member Typedef Documentation

◆ Index

template<int OuterStrideAtCompileTime_, int InnerStrideAtCompileTime_>
using Eigen::Stride< OuterStrideAtCompileTime_, InnerStrideAtCompileTime_ >::Index

Constructor & Destructor Documentation

◆ Stride() [1/3]

template<int OuterStrideAtCompileTime_, int InnerStrideAtCompileTime_>
Eigen::Stride< OuterStrideAtCompileTime_, InnerStrideAtCompileTime_ >::Stride ( )
inlineconstexpr

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 )
inlineconstexpr

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)
constexprdefault

Copy constructor

Member Function Documentation

◆ inner()

template<int OuterStrideAtCompileTime_, int InnerStrideAtCompileTime_>
Index Eigen::Stride< OuterStrideAtCompileTime_, InnerStrideAtCompileTime_ >::inner ( ) const
inlineconstexpr
Returns
the inner stride

◆ operator=()

template<int OuterStrideAtCompileTime_, int InnerStrideAtCompileTime_>
Stride & Eigen::Stride< OuterStrideAtCompileTime_, InnerStrideAtCompileTime_ >::operator= ( const Stride< OuterStrideAtCompileTime_, InnerStrideAtCompileTime_ > & other)
inlineconstexpr

Copy assignment operator

◆ outer()

template<int OuterStrideAtCompileTime_, int InnerStrideAtCompileTime_>
Index Eigen::Stride< OuterStrideAtCompileTime_, InnerStrideAtCompileTime_ >::outer ( ) const
inlineconstexpr
Returns
the outer stride

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