15 #include "atlas/array/ArrayIdx.h" 16 #include "atlas/array/ArrayLayout.h" 17 #include "atlas/array/ArrayShape.h" 18 #include "atlas/array/ArraySpec.h" 19 #include "atlas/array/ArrayStrides.h" 26 #ifndef DOXYGEN_SHOULD_SKIP_THIS 38 typedef const typename remove_const<T>::type type;
49 virtual void updateDevice()
const = 0;
50 virtual void updateHost()
const = 0;
51 virtual bool valid()
const = 0;
52 virtual void syncHostDevice()
const = 0;
53 virtual bool hostNeedsUpdate()
const = 0;
54 virtual bool deviceNeedsUpdate()
const = 0;
55 virtual void reactivateDeviceWriteViews()
const = 0;
56 virtual void reactivateHostWriteViews()
const = 0;
57 virtual void* voidDataStore() = 0;
58 virtual void* voidHostData() = 0;
59 virtual void* voidDeviceData() = 0;
60 template <
typename Value>
62 return static_cast<Value*
>( voidHostData() );
64 template <
typename Value>
66 return static_cast<Value*
>( voidDeviceData() );
70 #ifndef DOXYGEN_SHOULD_SKIP_THIS 72 static constexpr
char array_dim() {
73 return Dim == 0 ?
'i' : (
Dim == 1 ?
'j' : (
Dim == 2 ?
'k' : (
Dim == 3 ?
'l' : (
Dim == 4 ?
'm' : (
'*' ) ) ) ) );
76 void throw_OutOfRange(
const std::string& class_name,
char idx_str,
int idx,
int max );
Definition: ArrayUtil.h:46
Definition: ArrayUtil.h:28
Definition: ArrayUtil.h:37
Contains all atlas classes and methods.
Definition: atlas-grids.cc:33
Definition: ArrayViewDefs.h:20