21 #ifndef __KokkosUtilities_hpp__
22 #define __KokkosUtilities_hpp__
34 template<
typename ExecutionSpace>
37 return Kokkos::SpaceAccessibility<ExecutionSpace, HostSpace>::accessible;
40 template<
typename ExecutionSpace>
43 return Kokkos::SpaceAccessibility<
45 DefaultExecutionSpace::memory_space>::accessible;
49 template<
typename ExecutionSpace,
typename MemoerySpace>
52 return Kokkos::SpaceAccessibility<ExecutionSpace, MemoerySpace>::accessible;
55 template<
typename Type,
typename... Properties>
59 Kokkos::realloc(Kokkos::WithoutInitializing, view, len);
62 template<
typename Type,
typename... Properties>
66 Kokkos::realloc(Kokkos::WithoutInitializing, view, len);
69 template<
typename Type,
typename... Properties>
74 Kokkos::deep_copy(view, val);
77 template<
typename Type,
typename... Properties>
81 Kokkos::realloc(view, len1, len2);
84 template<
typename Type,
typename... Properties>
88 Kokkos::realloc(Kokkos::WithoutInitializing, view, len1, len2);
91 template<
typename Type,
typename... Properties>
101 Kokkos::deep_copy(view, val);
104 template<
typename Type,
typename... Properties>
113 Kokkos::realloc(view, len1, len2, len3);
116 template<
typename Type,
typename... Properties>
125 Kokkos::realloc(Kokkos::WithoutInitializing, view, len1, len2, len3);
128 template<
typename Type,
typename... Properties>
139 Kokkos::deep_copy(view, val);
142 template<
typename Type,
typename... Properties>
146 Kokkos::resize(view, newLen);
149 template<
typename Type,
typename... Properties>
153 Kokkos::resize(Kokkos::WithoutInitializing, view, newLen);
156 template<
typename ViewType>
161 std::is_move_assignable_v<ViewType> &&
162 std::is_move_constructible_v<ViewType>,
163 "swapViews arguments must be move assignable and move constructible"
166 ViewType tmp = std::move(v1);
171 template<
typename T1,
typename T2>
175 os <<
'(' << p.first <<
" " << p.second <<
')';
179 template<
typename T,
typename... properties>
183 return span<T>(v.data(), v.size());
186 template<
typename T,
typename... properties>
190 return span<T>(v.data(), size);
193 template<
typename T,
typename... properties>
197 return span<T>(
const_cast<T*
>(v.data()), v.size());
200 template<
typename T,
typename... properties>
204 return span<T>(
const_cast<T*
>(v.data()), size);
207 template<
typename T,
typename... properties>
211 using ExSpace =
typename ViewType1D<T, properties...>::execution_space;
214 isHostAccessible<ExSpace>(),
"View memory is not accessible from Host"
217 span<T> spn(v.data(), v.size());
225 #endif //__KokkosUtilities_hpp__