20 #ifndef RAJA_pattern_tensor_TensorRegister_HPP
21 #define RAJA_pattern_tensor_TensorRegister_HPP
23 #include "RAJA/config.hpp"
27 #include "camp/camp.hpp"
37 class TensorRegisterConcreteBase;
45 template<
typename REGISTER_POLICY,
typename T,
typename LAYOUT,
typename SIZES>
55 typename std::enable_if<std::is_arithmetic<LEFT>::value,
bool>::type =
true,
56 typename std::enable_if<
62 return RIGHT(lhs).add(rhs);
72 typename std::enable_if<std::is_arithmetic<LEFT>::value,
bool>::type =
true,
73 typename std::enable_if<
79 return RIGHT(lhs).subtract(rhs);
89 typename std::enable_if<std::is_arithmetic<LEFT>::value,
bool>::type =
true,
90 typename std::enable_if<
96 return rhs.scale(lhs);
106 typename std::enable_if<std::is_arithmetic<LEFT>::value,
bool>::type =
true,
107 typename std::enable_if<
113 return RIGHT(lhs).divide(rhs);
RAJA header file defining SIMD/SIMT register operations.
RAJA header file defining SIMD/SIMT register operations.
RAJA header file defining SIMD/SIMT register operations.
Header file containing RAJA simd policy definitions.
Definition: TensorRegister.hpp:46
Definition: TensorRegisterBase.hpp:96
Header file for common RAJA internal macro definitions.
#define RAJA_HOST_DEVICE
Definition: macros.hpp:65
RAJA_INLINE RAJA_HOST_DEVICE RIGHT operator+(LEFT const &lhs, RIGHT const &rhs)
Definition: TensorRegister.hpp:60
RAJA_INLINE RAJA_HOST_DEVICE RIGHT operator-(LEFT const &lhs, RIGHT const &rhs)
Definition: TensorRegister.hpp:77
RAJA_INLINE RAJA_HOST_DEVICE RIGHT operator/(LEFT const &lhs, RIGHT const &rhs)
Definition: TensorRegister.hpp:111
RAJA_INLINE RAJA_HOST_DEVICE RIGHT operator*(LEFT const &lhs, RIGHT const &rhs)
Definition: TensorRegister.hpp:94
Definition: AlignedRangeIndexSetBuilders.cpp:35