aboutsummaryrefslogtreecommitdiffhomepage
path: root/unsupported/Eigen/CXX11/src/Tensor/TensorSyclPlaceHolder.h
diff options
context:
space:
mode:
Diffstat (limited to 'unsupported/Eigen/CXX11/src/Tensor/TensorSyclPlaceHolder.h')
-rw-r--r--unsupported/Eigen/CXX11/src/Tensor/TensorSyclPlaceHolder.h142
1 files changed, 45 insertions, 97 deletions
diff --git a/unsupported/Eigen/CXX11/src/Tensor/TensorSyclPlaceHolder.h b/unsupported/Eigen/CXX11/src/Tensor/TensorSyclPlaceHolder.h
index 87995a25e..43a63c73d 100644
--- a/unsupported/Eigen/CXX11/src/Tensor/TensorSyclPlaceHolder.h
+++ b/unsupported/Eigen/CXX11/src/Tensor/TensorSyclPlaceHolder.h
@@ -19,8 +19,8 @@
*
*****************************************************************/
-#ifndef UNSUPPORTED_EIGEN_CXX11_SRC_TENSORYSYCL_PLACEHOLDER_HPP
-#define UNSUPPORTED_EIGEN_CXX11_SRC_TENSORYSYCL_PLACEHOLDER_HPP
+#ifndef UNSUPPORTED_EIGEN_CXX11_SRC_TENSOR_TENSORSYCL_PLACEHOLDER_HPP
+#define UNSUPPORTED_EIGEN_CXX11_SRC_TENSOR_TENSORSYCL_PLACEHOLDER_HPP
namespace Eigen {
namespace internal {
@@ -31,91 +31,52 @@ namespace internal {
template <typename Scalar, size_t N>
struct PlaceHolder {
static constexpr size_t I = N;
- using Type = Scalar;
+ typedef Scalar Type;
};
-template <typename PlainObjectType, int Options_,
- template <class> class MakePointer_, size_t N>
-struct PlaceHolder<const TensorMap<PlainObjectType, Options_, MakePointer_>,
- N> {
- static constexpr size_t I = N;
-
- using Type = const TensorMap<PlainObjectType, Options_, MakePointer_>;
-
- typedef typename Type::Self Self;
- typedef typename Type::Base Base;
- typedef typename Type::Nested Nested;
- typedef typename Type::StorageKind StorageKind;
- typedef typename Type::Index Index;
- typedef typename Type::Scalar Scalar;
- typedef typename Type::RealScalar RealScalar;
- typedef typename Type::CoeffReturnType CoeffReturnType;
+/// \brief specialisation of the PlaceHolder node for const TensorMap
+#define TENSORMAPPLACEHOLDER(CVQual)\
+template <typename PlainObjectType, int Options_, template <class> class MakePointer_, size_t N>\
+struct PlaceHolder<CVQual TensorMap<PlainObjectType, Options_, MakePointer_>, N> {\
+ static const size_t I = N;\
+ typedef CVQual TensorMap<PlainObjectType, Options_, MakePointer_> Type;\
+ typedef typename Type::Self Self;\
+ typedef typename Type::Base Base;\
+ typedef typename Type::Nested Nested;\
+ typedef typename Type::StorageKind StorageKind;\
+ typedef typename Type::Index Index;\
+ typedef typename Type::Scalar Scalar;\
+ typedef typename Type::RealScalar RealScalar;\
+ typedef typename Type::CoeffReturnType CoeffReturnType;\
};
-/// \brief specialisation of the PlaceHolder node for TensorForcedEvalOp. The
-/// TensorForcedEvalOp act as a leaf node for its parent node.
-template <typename Expression, size_t N>
-struct PlaceHolder<const TensorForcedEvalOp<Expression>, N> {
- static constexpr size_t I = N;
-
- using Type = const TensorForcedEvalOp<Expression>;
-
- typedef typename Type::Nested Nested;
- typedef typename Type::StorageKind StorageKind;
- typedef typename Type::Index Index;
-
- typedef typename Type::Scalar Scalar;
- typedef typename Type::Packet Packet;
+TENSORMAPPLACEHOLDER(const)
+TENSORMAPPLACEHOLDER()
+#undef TENSORMAPPLACEHOLDER
- typedef typename Type::RealScalar RealScalar;
- typedef typename Type::CoeffReturnType CoeffReturnType;
- typedef typename Type::PacketReturnType PacketReturnType;
+/// \brief specialisation of the PlaceHolder node for TensorForcedEvalOp. The
+/// TensorForcedEvalOp acts as a leaf node for its parent node.
+#define TENSORFORCEDEVALPLACEHOLDER(CVQual)\
+template <typename Expression, size_t N>\
+struct PlaceHolder<CVQual TensorForcedEvalOp<Expression>, N> {\
+ static const size_t I = N;\
+ typedef CVQual TensorForcedEvalOp<Expression> Type;\
+ typedef typename Type::Nested Nested;\
+ typedef typename Type::StorageKind StorageKind;\
+ typedef typename Type::Index Index;\
+ typedef typename Type::Scalar Scalar;\
+ typedef typename Type::Packet Packet;\
+ typedef typename Type::RealScalar RealScalar;\
+ typedef typename Type::CoeffReturnType CoeffReturnType;\
+ typedef typename Type::PacketReturnType PacketReturnType;\
};
-template <typename Expression, size_t N>
-struct PlaceHolder<TensorForcedEvalOp<Expression>, N> {
- static constexpr size_t I = N;
-
- using Type = TensorForcedEvalOp<Expression>;
-
- typedef typename Type::Nested Nested;
- typedef typename Type::StorageKind StorageKind;
- typedef typename Type::Index Index;
+TENSORFORCEDEVALPLACEHOLDER(const)
+TENSORFORCEDEVALPLACEHOLDER()
+#undef TENSORFORCEDEVALPLACEHOLDER
- typedef typename Type::Scalar Scalar;
- typedef typename Type::Packet Packet;
-
- typedef typename Type::RealScalar RealScalar;
- typedef typename Type::CoeffReturnType CoeffReturnType;
- typedef typename Type::PacketReturnType PacketReturnType;
-};
-
-/// \brief specialisation of the PlaceHolder node for const TensorMap
-template <typename PlainObjectType, int Options_,
- template <class> class Makepointer_, size_t N>
-struct PlaceHolder<TensorMap<PlainObjectType, Options_, Makepointer_>, N> {
- static constexpr size_t I = N;
-
- using Type = TensorMap<PlainObjectType, Options_, Makepointer_>;
-
- typedef typename Type::Self Self;
- typedef typename Type::Base Base;
- typedef typename Type::Nested Nested;
- typedef typename Type::StorageKind StorageKind;
- typedef typename Type::Index Index;
- typedef typename Type::Scalar Scalar;
- typedef typename Type::Packet Packet;
- typedef typename Type::RealScalar RealScalar;
- typedef typename Type::CoeffReturnType CoeffReturnType;
- typedef typename Base::PacketReturnType PacketReturnType;
-};
-
-/// specialisation of the traits struct for PlaceHolder
-template <typename PlainObjectType, int Options_,
- template <class> class Makepointer_, size_t N>
-struct traits<
- PlaceHolder<TensorMap<PlainObjectType, Options_, Makepointer_>, N>>
- : public traits<PlainObjectType> {
+template <typename PlainObjectType, int Options_, template <class> class Makepointer_, size_t N>
+struct traits<PlaceHolder<const TensorMap<PlainObjectType, Options_, Makepointer_>, N> >: public traits<PlainObjectType> {
typedef traits<PlainObjectType> BaseTraits;
typedef typename BaseTraits::Scalar Scalar;
typedef typename BaseTraits::StorageKind StorageKind;
@@ -128,24 +89,11 @@ struct traits<
};
};
-template <typename PlainObjectType, int Options_,
- template <class> class Makepointer_, size_t N>
-struct traits<
- PlaceHolder<const TensorMap<PlainObjectType, Options_, Makepointer_>, N>>
- : public traits<PlainObjectType> {
- typedef traits<PlainObjectType> BaseTraits;
- typedef typename BaseTraits::Scalar Scalar;
- typedef typename BaseTraits::StorageKind StorageKind;
- typedef typename BaseTraits::Index Index;
- static const int NumDimensions = BaseTraits::NumDimensions;
- static const int Layout = BaseTraits::Layout;
- enum {
- Options = Options_,
- Flags = BaseTraits::Flags,
- };
-};
+template <typename PlainObjectType, int Options_, template <class> class Makepointer_, size_t N>
+struct traits<PlaceHolder<TensorMap<PlainObjectType, Options_, Makepointer_>, N> >
+: traits<PlaceHolder<const TensorMap<PlainObjectType, Options_, Makepointer_>, N> > {};
-} // end namespoace internal
+} // end namespace internal
} // end namespoace Eigen
-#endif // UNSUPPORTED_EIGEN_CXX11_SRC_TENSORYSYCL_PLACEHOLDER_HPP
+#endif // UNSUPPORTED_EIGEN_CXX11_SRC_TENSOR_TENSORSYCL_PLACEHOLDER_HPP