xstrides
Defined in xtensor/xstrides.hpp
- group xt_xstrides
Enums
Functions
-
template<class offset_type, class S, class Arg, class ...Args>
inline offset_type data_offset(const S &strides, Arg arg, Args... args) noexcept Return the flat index for an array index.
Given
m
arguments, and dimensionn
of the array (n == strides.size()
).If
m == n
, the index isstrides[0] * index[0] + ... + strides[n - 1] * index[n - 1]
.If
m < n
and the last argument isxt::missing
the indices are zero-padded at the end to match the dimension of the array. The index is thenstrides[0] * index[0] + ... + strides[m - 1] * index[m - 1]
.If
m < n
(and the last argument is notxt::missing
), the index isstrides[n - m - 1] * index[0] + ... + strides[n - 1] * index[m - 1]
.If
m > n
, then the firstm - n
arguments are ignored. The index is thenstrides[0] * index[m - n] + ... + strides[n - 1] * index[m - 1]
.
- Parameters:
strides – Strides of the array.
args – Array index.
- Returns:
The flat index.
-
template<layout_type L = layout_type::dynamic, class shape_type, class strides_type>
inline std::size_t compute_strides(const shape_type &shape, layout_type l, strides_type &strides) Compute the strides given the shape and the layout of an array.
- Parameters:
shape – Shape of the array.
l – Layout type, see xt::layout_type().
strides – (output) Strides of the array.
- Returns:
The size: the product of the shape.
-
template<class S, class ...Args>
inline void normalize_periodic(const S &shape, Args&... args) Normalise an index of a periodic array.
For example if the shape is
(3, 4)
and the index is(3, -4)
the result is(0, 0)
.- Parameters:
shape – Shape of the array.
args – (input/output) Array index.
-
template<class E>
inline auto strides(const E &e, stride_type type = stride_type::normal) noexcept Get strides of an object.
- Parameters:
a – an array
- Returns:
array
-
template<class E>
inline auto strides(const E &e, std::size_t axis, stride_type type = stride_type::normal) noexcept Get stride of an object along an axis.
- Parameters:
a – an array
- Returns:
integer
-
template<class offset_type, class S, class Arg, class ...Args>