10 #ifndef EIGEN_CXX11_TENSOR_TENSOR_FORWARD_DECLARATIONS_H
11 #define EIGEN_CXX11_TENSOR_TENSOR_FORWARD_DECLARATIONS_H
28 return const_cast<T*
>(
data);
41 static const bool val=
false;
44 static const bool val =
true;
52 template<
typename PlainObjectType,
int Options_ = Unaligned,
template <
class>
class MakePointer_ =
MakePointer>
class TensorMap;
53 template<
typename Scalar_,
int NumIndices_,
int Options_ = 0,
typename IndexType = DenseIndex>
class Tensor;
54 template<
typename Scalar_,
typename Dimensions,
int Options_ = 0,
typename IndexType = DenseIndex>
class TensorFixedSize;
56 template<
typename Derived,
int AccessLevel>
class TensorBase;
60 template<
typename BinaryOp,
typename LeftXprType,
typename RightXprType>
class TensorCwiseBinaryOp;
61 template<
typename TernaryOp,
typename Arg1XprType,
typename Arg2XprType,
typename Arg3XprType>
class TensorCwiseTernaryOp;
62 template<
typename IfXprType,
typename ThenXprType,
typename ElseXprType>
class TensorSelectOp;
67 template<
typename Dimensions,
typename LeftXprType,
typename RightXprType,
typename OutputKernelType>
class TensorContractionOp;
69 template<
typename Dimensions,
typename InputXprType,
typename KernelXprType>
class TensorConvolutionOp;
70 template<
typename FFT,
typename XprType,
int FFTDataType,
int FFTDirection>
class TensorFFTOp;
73 template<DenseIndex Planes, DenseIndex Rows, DenseIndex Cols,
typename XprType>
class TensorVolumePatchOp;
78 template<
typename StartIndices,
typename Sizes,
typename XprType>
class TensorSlicingOp;
86 template<
typename LeftXprType,
typename RightXprType>
class TensorAssignOp;
91 template<
typename CustomBinaryFunc,
typename LhsXprType,
typename RhsXprType>
class TensorCustomBinaryOp;
96 template<
typename ExpressionType,
typename DeviceType>
class TensorDevice;
97 template<
typename ExpressionType,
typename DeviceType,
typename DoneCallback>
class TensorAsyncDevice;
103 struct ThreadPoolDevice;
107 #ifdef EIGEN_USE_SYCL
109 template <
typename T>
struct MakeSYCLPointer {
110 typedef Eigen::TensorSycl::internal::RangeAccess<cl::sycl::access::mode::read_write, T>
Type;
113 template <
typename T>
114 EIGEN_STRONG_INLINE const Eigen::TensorSycl::internal::RangeAccess<cl::sycl::access::mode::read_write, T>&
115 constCast(
const Eigen::TensorSycl::internal::RangeAccess<cl::sycl::access::mode::read_write, T>&
data) {
119 template <
typename T>
120 struct StorageMemory<
T, SyclDevice> : MakeSYCLPointer<T> {};
121 template <
typename T>
122 struct StorageMemory<
T, const SyclDevice> : StorageMemory<T, SyclDevice> {};
124 namespace TensorSycl {
126 template <
typename Evaluator,
typename Op>
class GenericNondeterministicReducer;
146 template <
typename Device,
typename Expression>
151 template <
typename Expression>
163 template <
typename Device,
typename Expression>
176 template <
typename Expression,
typename Device,
181 template <
typename Expression,
typename Device,
typename DoneCallback,
191 #endif // EIGEN_CXX11_TENSOR_TENSOR_FORWARD_DECLARATIONS_H