Go to the documentation of this file.
22 #ifndef UNSUPPORTED_EIGEN_CXX11_SRC_TENSOR_TENSORSYCL_CONVERT_TO_DEVICE_EXPRESSION_HPP
23 #define UNSUPPORTED_EIGEN_CXX11_SRC_TENSOR_TENSORSYCL_CONVERT_TO_DEVICE_EXPRESSION_HPP
26 namespace TensorSycl {
34 template <
typename Expr>
35 struct ConvertToDeviceExpression;
37 template<
template<
class...>
class NonOpCategory,
bool IsConst,
typename... Args>
38 struct NonOpConversion{
43 template<
template<
class,
template <
class>
class >
class NonOpCategory, bool IsConst, typename Args>
50 #define TENSORMAPCONVERT(CVQual)\
51 template <typename Scalar_, int Options_, int Options2_, int NumIndices_, typename IndexType_, template <class> class MakePointer_>\
52 struct ConvertToDeviceExpression<CVQual TensorMap<Tensor<Scalar_, NumIndices_, Options_, IndexType_>, Options2_, MakePointer_> > {\
53 typedef CVQual TensorMap<Tensor<Scalar_, NumIndices_, Options_, IndexType_>, Options2_, MakeGlobalPointer> Type;\
58 #undef TENSORMAPCONVERT
62 #define CATEGORYCONVERT(CVQual)\
63 template <template<class, class...> class Category, typename OP, typename... subExprs>\
64 struct ConvertToDeviceExpression<CVQual Category<OP, subExprs...> > {\
65 typedef CVQual Category<OP, typename ConvertToDeviceExpression<subExprs>::Type... > Type;\
69 #undef CATEGORYCONVERT
74 #define SELECTOPCONVERT(CVQual, Res)\
75 template <typename IfExpr, typename ThenExpr, typename ElseExpr>\
76 struct ConvertToDeviceExpression<CVQual TensorSelectOp<IfExpr, ThenExpr, ElseExpr> >\
77 : NonOpConversion<TensorSelectOp, Res, IfExpr, ThenExpr, ElseExpr> {};
80 #undef SELECTOPCONVERT
84 #define ASSIGNCONVERT(CVQual, Res)\
85 template <typename LHSExpr, typename RHSExpr>\
86 struct ConvertToDeviceExpression<CVQual TensorAssignOp<LHSExpr, RHSExpr> >\
87 : NonOpConversion<TensorAssignOp, Res, LHSExpr, RHSExpr>{};
95 #define KERNELBROKERCONVERT(CVQual, Res, ExprNode)\
96 template <typename Expr>\
97 struct ConvertToDeviceExpression<CVQual ExprNode<Expr> > \
98 : DeviceConvertor<ExprNode, Res, Expr>{};
104 #undef KERNELBROKERCONVERT
107 #define KERNELBROKERCONVERTREDUCTION(CVQual)\
108 template <typename OP, typename Dim, typename subExpr, template <class> class MakePointer_>\
109 struct ConvertToDeviceExpression<CVQual TensorReductionOp<OP, Dim, subExpr, MakePointer_> > {\
110 typedef CVQual TensorReductionOp<OP, Dim, typename ConvertToDeviceExpression<subExpr>::Type, MakeGlobalPointer> Type;\
115 #undef KERNELBROKERCONVERTREDUCTION
121 #endif // UNSUPPORTED_EIGEN_CXX1
#define CATEGORYCONVERT(CVQual)
#define KERNELBROKERCONVERTREDUCTION(CVQual)
specialisation of the ConvertToDeviceExpression struct when the node type is TensorReductionOp
#define ASSIGNCONVERT(CVQual, Res)
#define KERNELBROKERCONVERT(CVQual, Res, ExprNode)
GetType< IsConst, NonOpCategory< typename ConvertToDeviceExpression< Args >::Type... > >::Type Type
#define TENSORMAPCONVERT(CVQual)
#define SELECTOPCONVERT(CVQual, Res)
control_box_rst
Author(s): Christoph Rösmann
autogenerated on Wed Mar 2 2022 00:07:05