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.
basic_layout< 0, StrideOrder, layout_prop_e::contiguous > contiguous_layout_with_stride_order
Contiguous layout policy with arbitrary 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).
idx_map< Rank, 0, C_stride_order< Rank >, layout_prop_e::contiguous > mapping
Multi-dimensional to flat index mapping.
C_stride_layout with_lowest_guarantee_t
The same layout policy, but with no guarantee of contiguity.
C_layout contiguous_t
The same layout policy, but with guarantee of contiguity.
Strided (non-contiguous) layout policy with C-order (row-major order).
idx_map< Rank, 0, C_stride_order< Rank >, layout_prop_e::none > mapping
Multi-dimensional to flat index mapping.
C_stride_layout with_lowest_guarantee_t
The same layout policy, but with no guarantee of contiguity.
C_layout contiguous_t
The same layout policy, but with guarantee of contiguity.
Contiguous layout policy with Fortran-order (column-major order).
F_stride_layout with_lowest_guarantee_t
The same layout policy, but with no guarantee of contiguity.
F_layout contiguous_t
The same layout policy, but with guarantee of contiguity.
idx_map< Rank, 0, Fortran_stride_order< Rank >, layout_prop_e::contiguous > mapping
Multi-dimensional to flat index mapping.
Strided (non-contiguous) layout policy with Fortran-order (column-major order).
F_stride_layout with_lowest_guarantee_t
The same layout policy, but with no guarantee of contiguity.
F_layout contiguous_t
The same layout policy, but with guarantee of contiguity.
idx_map< Rank, 0, Fortran_stride_order< Rank >, layout_prop_e::none > mapping
Multi-dimensional to flat index mapping.
Generic layout policy with arbitrary order.
basic_layout< StaticExtents, StrideOrder, layout_prop_e::contiguous > contiguous_t
basic_layout< StaticExtents, StrideOrder, layout_prop_e::none > with_lowest_guarantee_t
The same layout policy, but with no guarantee of contiguity.
idx_map< Rank, StaticExtents, StrideOrder, LayoutProp > mapping
Multi-dimensional to flat index mapping.
Provides type traits for the nda library.