39 struct C_stride_layout;
40 struct F_stride_layout;
114 template <u
int64_t StaticExtents, u
int64_t Str
ideOrder, layout_prop_e LayoutProp>
131 template <u
int64_t Str
ideOrder>
140 template <
int Rank, u
int64_t Str
ideOrder>
142 std::conditional_t<StrideOrder == C_stride_order<Rank>,
C_layout,
149 template <
typename L>
150 struct layout_to_policy;
154 template <
int Rank, u
int64_t StaticExtents, u
int64_t Str
ideOrder, layout_prop_e LayoutProp>
155 struct layout_to_policy<
idx_map<Rank, StaticExtents, StrideOrder, LayoutProp>> {
Layout that specifies how to map multi-dimensional indices to a linear/flat index.
constexpr uint64_t C_stride_order
C/Row-major stride order.
constexpr uint64_t Fortran_stride_order
Fortran/Column-major stride order.
std::conditional_t< StrideOrder==C_stride_order< Rank >, C_layout, std::conditional_t< StrideOrder==Fortran_stride_order< Rank >, F_layout, contiguous_layout_with_stride_order< StrideOrder > > > get_contiguous_layout_policy
Get the contiguous layout policy for a given rank and stride order.
layout_prop_e
Compile-time guarantees of the memory layout of an array/view.
Provides a class that maps multi-dimensional indices to a linear index and vice versa.
Contiguous layout policy with C-order (row-major order).
Strided (non-contiguous) layout policy with C-order (row-major order).
Contiguous layout policy with Fortran-order (column-major order).
Strided (non-contiguous) layout policy with Fortran-order (column-major order).
Generic layout policy with arbitrary order.
Provides type traits for the nda library.