mirror of
https://gitlab.com/libeigen/eigen.git
synced 2025-09-23 14:53:13 +08:00
add default parameters for InnerStride/OuterStride to be
able to simply write OuterStride<> instead of OuterStride<Dynamic>
This commit is contained in:
parent
4056db01e7
commit
ec07c4109d
@ -57,7 +57,9 @@
|
|||||||
*
|
*
|
||||||
* Here's an example of mapping an array while specifying an outer stride. Here, since we're mapping
|
* Here's an example of mapping an array while specifying an outer stride. Here, since we're mapping
|
||||||
* as a column-major matrix, 'outer stride' means the pointer increment between two consecutive columns.
|
* as a column-major matrix, 'outer stride' means the pointer increment between two consecutive columns.
|
||||||
* Here, we're specifying the outer stride as a runtime parameter.
|
* Here, we're specifying the outer stride as a runtime parameter. Note that here \c OuterStride<> is
|
||||||
|
* a short version of \c OuterStride<Dynamic> because the default template parameter of OuterStride
|
||||||
|
* is \c Dynamic
|
||||||
* \include Map_outer_stride.cpp
|
* \include Map_outer_stride.cpp
|
||||||
* Output: \verbinclude Map_outer_stride.out
|
* Output: \verbinclude Map_outer_stride.out
|
||||||
*
|
*
|
||||||
|
@ -46,6 +46,7 @@
|
|||||||
* \param _OuterStrideAtCompileTime the outer stride, or Dynamic if you want to specify it at runtime.
|
* \param _OuterStrideAtCompileTime the outer stride, or Dynamic if you want to specify it at runtime.
|
||||||
* \param _InnerStrideAtCompileTime the inner stride, or Dynamic if you want to specify it at runtime.
|
* \param _InnerStrideAtCompileTime the inner stride, or Dynamic if you want to specify it at runtime.
|
||||||
*
|
*
|
||||||
|
* Here is an example:
|
||||||
* \include Map_general_stride.cpp
|
* \include Map_general_stride.cpp
|
||||||
* Output: \verbinclude Map_general_stride.out
|
* Output: \verbinclude Map_general_stride.out
|
||||||
*
|
*
|
||||||
@ -90,8 +91,9 @@ class Stride
|
|||||||
ei_variable_if_dynamic<Index, InnerStrideAtCompileTime> m_inner;
|
ei_variable_if_dynamic<Index, InnerStrideAtCompileTime> m_inner;
|
||||||
};
|
};
|
||||||
|
|
||||||
/** \brief Convenience specialization of Stride to specify only an inner stride */
|
/** \brief Convenience specialization of Stride to specify only an inner stride
|
||||||
template<int Value>
|
* See class Map for some examples */
|
||||||
|
template<int Value = Dynamic>
|
||||||
class InnerStride : public Stride<0, Value>
|
class InnerStride : public Stride<0, Value>
|
||||||
{
|
{
|
||||||
typedef Stride<0, Value> Base;
|
typedef Stride<0, Value> Base;
|
||||||
@ -101,8 +103,9 @@ class InnerStride : public Stride<0, Value>
|
|||||||
InnerStride(Index v) : Base(0, v) {}
|
InnerStride(Index v) : Base(0, v) {}
|
||||||
};
|
};
|
||||||
|
|
||||||
/** \brief Convenience specialization of Stride to specify only an outer stride */
|
/** \brief Convenience specialization of Stride to specify only an outer stride
|
||||||
template<int Value>
|
* See class Map for some examples */
|
||||||
|
template<int Value = Dynamic>
|
||||||
class OuterStride : public Stride<Value, 0>
|
class OuterStride : public Stride<Value, 0>
|
||||||
{
|
{
|
||||||
typedef Stride<Value, 0> Base;
|
typedef Stride<Value, 0> Base;
|
||||||
|
@ -1,5 +1,3 @@
|
|||||||
int array[12];
|
int array[12];
|
||||||
for(int i = 0; i < 12; ++i) array[i] = i;
|
for(int i = 0; i < 12; ++i) array[i] = i;
|
||||||
cout << Map<MatrixXi, 0, OuterStride<Dynamic> >
|
cout << Map<MatrixXi, 0, OuterStride<> >(array, 3, 3, OuterStride<>(4)) << endl;
|
||||||
(array, 3, 3, OuterStride<Dynamic>(4))
|
|
||||||
<< endl;
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user