14#include <mdspan/mdspan.hpp>
20namespace lagrange::image::experimental {
25template <
class T,
typename Extent,
typename Layout>
26using mdspan = MDSPAN_IMPL_STANDARD_NAMESPACE::mdspan<T, Extent, Layout>;
28template <
class IndexType,
size_t... Extents>
29using extents = MDSPAN_IMPL_STANDARD_NAMESPACE::extents<IndexType, Extents...>;
31template <
typename IndexType,
size_t Rank>
32using dextents = MDSPAN_IMPL_STANDARD_NAMESPACE::dextents<IndexType, Rank>;
34using layout_left = MDSPAN_IMPL_STANDARD_NAMESPACE::layout_left;
35using layout_right = MDSPAN_IMPL_STANDARD_NAMESPACE::layout_right;
36using layout_stride = MDSPAN_IMPL_STANDARD_NAMESPACE::layout_stride;
38using full_extent_t = MDSPAN_IMPL_STANDARD_NAMESPACE::full_extent_t;
40constexpr auto dynamic_extent = MDSPAN_IMPL_STANDARD_NAMESPACE::dynamic_extent;
43using View3D = mdspan<T, dextents<size_t, 3>, layout_stride>;