20 #ifndef RAJA_pattern_tensor_ET_ExpressionTemplateBase_HPP
21 #define RAJA_pattern_tensor_ET_ExpressionTemplateBase_HPP
23 #include "RAJA/config.hpp"
40 class TensorRegisterConcreteBase;
49 template<
typename TENSOR_REGISTER_TYPE,
typename REF_TYPE>
50 class TensorLoadStore;
53 template<
typename LHS_TYPE,
typename RHS_TYPE>
56 template<
typename LHS_TYPE,
typename RHS_TYPE>
59 template<
typename TENSOR_TYPE>
62 template<
typename TENSOR_TYPE>
63 class TensorTranspose;
70 template<
typename DERIVED_TYPE>
85 constexpr
self_type const* getThis()
const
87 return static_cast<self_type const*
>(
this);
94 constexpr camp::idx_t
getDimBegin(camp::idx_t)
const {
return 0; }
97 template<
typename RHS>
106 template<
typename RHS>
125 template<
typename RHS>
135 template<
typename RHS>
RAJA header defining expression template behavior for operator*.
RAJA header file defining SIMD/SIMT register operations.
Definition: BinaryOperator.hpp:46
Definition: TensorDivide.hpp:320
Definition: ExpressionTemplateBase.hpp:72
RAJA_SUPPRESS_HD_WARN RAJA_INLINE RAJA_HOST_DEVICE TensorMultiply< self_type, normalize_operand_t< RHS > > operator*(RHS const &rhs) const
Definition: ExpressionTemplateBase.hpp:128
DERIVED_TYPE self_type
Definition: ExpressionTemplateBase.hpp:74
RAJA_SUPPRESS_HD_WARN RAJA_INLINE RAJA_HOST_DEVICE TensorAdd< self_type, normalize_operand_t< RHS > > operator+(RHS const &rhs) const
Definition: ExpressionTemplateBase.hpp:99
RAJA_SUPPRESS_HD_WARN RAJA_INLINE RAJA_HOST_DEVICE TensorDivide< self_type, normalize_operand_t< RHS > > operator/(RHS const &rhs) const
Definition: ExpressionTemplateBase.hpp:137
RAJA_SUPPRESS_HD_WARN RAJA_INLINE RAJA_HOST_DEVICE TensorTranspose< self_type > transpose() const
Definition: ExpressionTemplateBase.hpp:147
RAJA_SUPPRESS_HD_WARN RAJA_INLINE RAJA_HOST_DEVICE TensorSubtract< self_type, normalize_operand_t< RHS > > operator-(RHS const &rhs) const
Definition: ExpressionTemplateBase.hpp:109
RAJA_SUPPRESS_HD_WARN RAJA_INLINE RAJA_HOST_DEVICE TensorNegate< self_type > operator-() const
Definition: ExpressionTemplateBase.hpp:119
RAJA_INLINE constexpr RAJA_HOST_DEVICE camp::idx_t getDimBegin(camp::idx_t) const
Definition: ExpressionTemplateBase.hpp:94
Definition: ExpressionTemplateBase.hpp:68
Definition: TensorMultiply.hpp:50
Definition: TensorNegate.hpp:42
Definition: TensorTranspose.hpp:42
Header file for common RAJA internal macro definitions.
#define RAJA_HOST_DEVICE
Definition: macros.hpp:65
#define RAJA_SUPPRESS_HD_WARN
Definition: macros.hpp:68
RAJA_INLINE RAJA_HOST_DEVICE auto normalizeOperand(RHS const &rhs) -> typename NormalizeOperandHelper< RHS >::return_type
Definition: normalizeOperand.hpp:73
Definition: AlignedRangeIndexSetBuilders.cpp:35
RAJA header file defining SIMD/SIMT register operations.