10 #ifndef EIGEN_CXX11_TENSOR_TENSOR_LAYOUT_SWAP_H 11 #define EIGEN_CXX11_TENSOR_TENSOR_LAYOUT_SWAP_H 38 template<
typename XprType>
41 typedef typename XprType::Scalar
Scalar;
45 typedef typename XprType::Nested
Nested;
51 template<
typename XprType>
57 template<
typename XprType>
67 template<
typename XprType>
89 Assign assign(*
this, other);
94 template<
typename OtherDerived>
99 Assign assign(*
this, other);
110 template<
typename ArgType,
typename Device>
127 : m_impl(op.expression(), device)
129 for(
int i = 0; i < NumDims; ++i) {
130 m_dimensions[i] = m_impl.dimensions()[NumDims-1-i];
141 return m_impl.evalSubExprsIfNeeded(data);
149 return m_impl.coeff(index);
152 template<
int LoadMode>
155 return m_impl.template packet<LoadMode>(index);
159 return m_impl.costPerCoeff(vectorized);
162 EIGEN_DEVICE_FUNC Scalar*
data()
const {
return m_impl.data(); }
173 template<
typename ArgType,
typename Device>
198 return this->m_impl.coeffRef(index);
203 this->m_impl.template writePacket<StoreMode>(index, x);
209 #endif // EIGEN_CXX11_TENSOR_TENSOR_LAYOUT_SWAP_H Eigen::internal::traits< TensorLayoutSwapOp >::Scalar Scalar
XprType::CoeffReturnType CoeffReturnType
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE PacketReturnType packet(Index index) const
EIGEN_DEVICE_FUNC Scalar * data() const
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE bool evalSubExprsIfNeeded(CoeffReturnType *data)
#define EIGEN_STRONG_INLINE
DSizes< Index, NumDims > Dimensions
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE const Dimensions & dimensions() const
TensorLayoutSwapOp< ArgType > XprType
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE CoeffReturnType & coeffRef(Index index)
internal::remove_const< typename XprType::CoeffReturnType >::type CoeffReturnType
Eigen::internal::traits< TensorLayoutSwapOp >::StorageKind StorageKind
traits< XprType > XprTraits
Eigen::internal::traits< TensorLayoutSwapOp >::Index Index
EIGEN_DEVICE_FUNC const internal::remove_all< typename XprType::Nested >::type & expression() const
TensorLayoutSwapOp< ArgType > XprType
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE TensorEvaluator(const XprType &op, const Device &device)
A cost model used to limit the number of threads used for evaluating tensor expression.
XprTraits::StorageKind StorageKind
TensorEvaluator< ArgType, Device > m_impl
Eigen::internal::nested< TensorLayoutSwapOp >::type Nested
remove_reference< Nested >::type _Nested
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE TensorEvaluator(const XprType &op, const Device &device)
const TensorLayoutSwapOp< XprType > & type
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE CoeffReturnType coeff(Index index) const
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE TensorOpCost costPerCoeff(bool vectorized) const
PacketType< CoeffReturnType, Device >::type PacketReturnType
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE TensorLayoutSwapOp(const XprType &expr)
EIGEN_DEFAULT_DENSE_INDEX_TYPE Index
The Index type as used for the API.
static EIGEN_DEVICE_FUNC void run(const Expression &expr, const Device &device=Device())
TensorEvaluator< const TensorLayoutSwapOp< ArgType >, Device > Base
PacketType< CoeffReturnType, Device >::type PacketReturnType
Eigen::NumTraits< Scalar >::Real RealScalar
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE void cleanup()
XprType::CoeffReturnType CoeffReturnType
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE void writePacket(Index index, const PacketReturnType &x)
TensorLayoutSwapOp< XprType > type
internal::packet_traits< Scalar >::type type
const TensorEvaluator< ArgType, Device > & impl() const