9 template <
typename T,
unsigned Dim>
12 typename std::enable_if<
13 sizeof...(Args) == Dim && (std::is_convertible_v<Args, PRegion<T>> && ...),
bool>::type>
15 : regions_m{args...} {}
17 template <
typename T,
unsigned Dim>
19 for (
unsigned int i = 0; i < Dim; i++) {
20 regions_m[i] = nr.regions_m[i];
24 template <
typename T,
unsigned Dim>
25 KOKKOS_INLINE_FUNCTION NDRegion<T, Dim>& NDRegion<T, Dim>::operator=(
26 const NDRegion<T, Dim>& nr) {
27 for (
unsigned int i = 0; i < Dim; i++) {
28 regions_m[i] = nr.regions_m[i];
33 template <
typename T,
unsigned Dim>
34 KOKKOS_INLINE_FUNCTION
const PRegion<T>& NDRegion<T, Dim>::operator[](
unsigned d)
const {
38 template <
typename T,
unsigned Dim>
39 KOKKOS_INLINE_FUNCTION PRegion<T>& NDRegion<T, Dim>::operator[](
unsigned d) {
43 template <
typename T,
unsigned Dim>
45 for (
unsigned int i = 0; i < Dim; i++) {
51 template <
typename T,
unsigned Dim>
53 for (
unsigned int i = 0; i < Dim; i++) {
59 template <
typename T,
unsigned Dim>
60 KOKKOS_INLINE_FUNCTION NDRegion<T, Dim>& NDRegion<T, Dim>::operator*=(
const T t) {
61 for (
unsigned int i = 0; i < Dim; i++) {
67 template <
typename T,
unsigned Dim>
68 KOKKOS_INLINE_FUNCTION NDRegion<T, Dim>& NDRegion<T, Dim>::operator/=(
const T t) {
70 for (
unsigned int i = 0; i < Dim; i++) {
77 template <
typename T,
unsigned Dim>
78 KOKKOS_INLINE_FUNCTION
bool NDRegion<T, Dim>::empty()
const {
80 for (
unsigned int i = 0; i < Dim; i++) {
81 isEmpty &= regions_m[i].empty();
86 template <
typename T,
unsigned Dim>
87 inline std::ostream& operator<<(std::ostream& out,
const NDRegion<T, Dim>& idx) {
89 for (
unsigned d = 0; d < Dim; ++d) {
90 out << idx[d] << ((d == Dim - 1) ?
'}' :
',');
KOKKOS_FUNCTION NDRegion()
Definition NDRegion.h:26