9#include <Kokkos_Core.hpp>
11namespace ddc::detail {
13template <std::size_t N,
class ElementType,
bool CONTIGUOUS =
true>
18template <std::size_t N,
class ElementType>
19struct ViewNDMaker<N, ElementType,
true>
22 = Kokkos::mdspan<ElementType, Kokkos::dextents<std::size_t, N>, Kokkos::layout_right>;
25template <std::size_t N,
class ElementType>
26struct ViewNDMaker<N, ElementType,
false>
29 = Kokkos::mdspan<ElementType, Kokkos::dextents<std::size_t, N>, Kokkos::layout_stride>;
36template <std::size_t N,
class ElementType>
37using SpanND = Kokkos::mdspan<ElementType, Kokkos::dextents<std::size_t, N>>;
39template <std::size_t N,
class ElementType>
40using ViewND = SpanND<N, ElementType
const>;
42template <
class ElementType>
43using Span1D = SpanND<1, ElementType>;
45template <
class ElementType>
46using Span2D = SpanND<2, ElementType>;
48template <
class ElementType>
49using View1D = ViewND<1, ElementType>;
51template <
class ElementType>
52using View2D = ViewND<2, ElementType>;
54using DSpan1D =
ddc::Span1D<
double>;
56using DSpan2D =
ddc::Span2D<
double>;
58using CDSpan1D =
ddc::Span1D<
double const>;
60using CDSpan2D =
ddc::Span2D<
double const>;
62using DView1D = View1D<
double>;
64using DView2D = View2D<
double>;
friend class DiscreteDomain
KOKKOS_FUNCTION constexpr bool operator!=(DiscreteVector< OTags... > const &rhs) const noexcept
The top-level namespace of DDC.
constexpr bool is_non_uniform_bsplines_v
Indicates if a tag corresponds to non-uniform B-splines or not.