5#ifndef IPPL_EXPRESSIONS_H
6#define IPPL_EXPRESSIONS_H
25 template <
typename E,
size_t N = sizeof(E)>
27 constexpr static unsigned dim = E::dim;
33 return static_cast<const E&
>(*this)[i];
43 template <
typename E,
size_t N = sizeof(E)>
45 constexpr static unsigned dim = E::dim;
47 template <
typename... Args>
48 KOKKOS_INLINE_FUNCTION
auto operator()(Args... args)
const {
49 static_assert(
sizeof...(Args) ==
dim ||
dim == 0);
50 return reinterpret_cast<const E&
>(*this)(args...);
63 constexpr static unsigned dim = 0;
82 template <
typename... Args>
KOKKOS_INLINE_FUNCTION auto operator[](size_t i) const
static constexpr unsigned dim
KOKKOS_INLINE_FUNCTION auto operator()(Args... args) const
static constexpr unsigned dim
KOKKOS_INLINE_FUNCTION value_type operator[](size_t) const
KOKKOS_FUNCTION Scalar(value_type val)
KOKKOS_INLINE_FUNCTION auto operator()(Args...) const
static constexpr unsigned dim