10 #ifndef EIGEN_CXX11_TENSOR_TENSOR_EXPR_H 11 #define EIGEN_CXX11_TENSOR_TENSOR_EXPR_H 31 template<
typename NullaryOp,
typename XprType>
39 static const int NumDimensions = XprTraits::NumDimensions;
40 static const int Layout = XprTraits::Layout;
51 template<
typename NullaryOp,
typename XprType>
63 : m_xpr(xpr), m_functor(
func) {}
70 const NullaryOp&
functor()
const {
return m_functor; }
80 template<
typename UnaryOp,
typename XprType>
90 static const int NumDimensions = XprTraits::NumDimensions;
91 static const int Layout = XprTraits::Layout;
93 typename XprTraits::PointerType
98 template<
typename UnaryOp,
typename XprType>
104 template<
typename UnaryOp,
typename XprType>
114 template<
typename UnaryOp,
typename XprType>
128 : m_xpr(xpr), m_functor(
func) {}
131 const UnaryOp&
functor()
const {
return m_functor; }
145 template<
typename BinaryOp,
typename LhsXprType,
typename RhsXprType>
166 static const int NumDimensions = XprTraits::NumDimensions;
167 static const int Layout = XprTraits::Layout;
179 template<
typename BinaryOp,
typename LhsXprType,
typename RhsXprType>
185 template<
typename BinaryOp,
typename LhsXprType,
typename RhsXprType>
195 template<
typename BinaryOp,
typename LhsXprType,
typename RhsXprType>
209 : m_lhs_xpr(lhs), m_rhs_xpr(rhs), m_functor(
func) {}
212 const BinaryOp&
functor()
const {
return m_functor; }
231 template<
typename TernaryOp,
typename Arg1XprType,
typename Arg2XprType,
typename Arg3XprType>
248 static const int NumDimensions = XprTraits::NumDimensions;
249 static const int Layout = XprTraits::Layout;
261 template<
typename TernaryOp,
typename Arg1XprType,
typename Arg2XprType,
typename Arg3XprType>
267 template<
typename TernaryOp,
typename Arg1XprType,
typename Arg2XprType,
typename Arg3XprType>
277 template<
typename TernaryOp,
typename Arg1XprType,
typename Arg2XprType,
typename Arg3XprType>
289 : m_arg1_xpr(arg1), m_arg2_xpr(arg2), m_arg3_xpr(arg3), m_functor(
func) {}
292 const TernaryOp&
functor()
const {
return m_functor; }
316 template<
typename IfXprType,
typename ThenXprType,
typename ElseXprType>
329 static const int NumDimensions = XprTraits::NumDimensions;
330 static const int Layout = XprTraits::Layout;
336 template<
typename IfXprType,
typename ThenXprType,
typename ElseXprType>
342 template<
typename IfXprType,
typename ThenXprType,
typename ElseXprType>
351 template<
typename IfXprType,
typename ThenXprType,
typename ElseXprType>
365 const ThenXprType& a_then,
366 const ElseXprType& a_else)
367 : m_condition(a_condition), m_then(a_then), m_else(a_else)
388 #endif // EIGEN_CXX11_TENSOR_TENSOR_EXPR_H const TernaryOp m_functor
remove_reference< RhsNested >::type _RhsNested
const TensorCwiseUnaryOp< UnaryOp, XprType > & type
IfXprType::Nested m_condition
remove_reference< Arg3Nested >::type _Arg3Nested
traits< XprType > XprTraits
Eigen::internal::traits< TensorSelectOp >::StorageKind StorageKind
Eigen::internal::traits< TensorCwiseUnaryOp >::StorageKind StorageKind
#define EIGEN_STRONG_INLINE
EIGEN_DEVICE_FUNC const IfXprType & ifExpression() const
LhsXprType::Nested m_lhs_xpr
TensorCwiseBinaryOp< BinaryOp, LhsXprType, RhsXprType > type
Eigen::internal::traits< TensorCwiseNullaryOp >::Index Index
result_of< BinaryOp(typename LhsXprType::Scalar, typename RhsXprType::Scalar)>::type Scalar
Eigen::internal::traits< TensorCwiseBinaryOp >::StorageKind StorageKind
remove_reference< LhsNested >::type _LhsNested
const TensorCwiseTernaryOp< TernaryOp, Arg1XprType, Arg2XprType, Arg3XprType > & type
Eigen::internal::nested< TensorCwiseBinaryOp >::type Nested
Eigen::NumTraits< Scalar >::Real RealScalar
XprType::Nested XprTypeNested
EIGEN_DEVICE_FUNC const internal::remove_all< typename LhsXprType::Nested >::type & lhsExpression() const
EIGEN_DEVICE_FUNC const BinaryOp & functor() const
remove_reference< XprTypeNested >::type _XprTypeNested
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE TensorCwiseBinaryOp(const LhsXprType &lhs, const RhsXprType &rhs, const BinaryOp &func=BinaryOp())
const TensorCwiseBinaryOp< BinaryOp, LhsXprType, RhsXprType > & type
remove_reference< Arg2Nested >::type _Arg2Nested
EIGEN_DEVICE_FUNC TensorSelectOp(const IfXprType &a_condition, const ThenXprType &a_then, const ElseXprType &a_else)
ThenXprType::Nested ThenNested
TensorCwiseNullaryOp< NullaryOp, XprType > Nested
Eigen::internal::traits< TensorCwiseTernaryOp >::Index Index
Eigen::internal::nested< TensorSelectOp >::type Nested
result_of< TernaryOp(typename Arg1XprType::Scalar, typename Arg2XprType::Scalar, typename Arg3XprType::Scalar)>::type Scalar
Namespace containing all symbols from the Eigen library.
EIGEN_DEVICE_FUNC const ThenXprType & thenExpression() const
XprType::CoeffReturnType CoeffReturnType
EIGEN_DEVICE_FUNC const internal::remove_all< typename Arg1XprType::Nested >::type & arg1Expression() const
Eigen::internal::traits< TensorCwiseBinaryOp >::Index Index
EIGEN_DEVICE_FUNC const ElseXprType & elseExpression() const
RhsXprType::Nested RhsNested
EIGEN_DEVICE_FUNC const TernaryOp & functor() const
TypeConversion< Scalar, typename XprTraits::PointerType >::type PointerType
traits< ThenXprType >::Scalar Scalar
traits< LhsXprType > XprTraits
Eigen::internal::traits< TensorCwiseUnaryOp >::Scalar Scalar
EIGEN_DEVICE_FUNC const internal::remove_all< typename XprType::Nested >::type & nestedExpression() const
conditional< Pointer_type_promotion< typename ThenXprType::Scalar, Scalar >::val, typename traits< ThenXprType >::PointerType, typename traits< ElseXprType >::PointerType >::type PointerType
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE TensorCwiseTernaryOp(const Arg1XprType &arg1, const Arg2XprType &arg2, const Arg3XprType &arg3, const TernaryOp &func=TernaryOp())
traits< Arg1XprType >::StorageKind StorageKind
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE TensorCwiseUnaryOp(const XprType &xpr, const UnaryOp &func=UnaryOp())
Eigen::NumTraits< Scalar >::Real RealScalar
TensorCwiseTernaryOp< TernaryOp, Arg1XprType, Arg2XprType, Arg3XprType > type
Generic expression where a coefficient-wise binary operator is applied to two expressions.
IfXprType::Nested IfNested
RhsXprType::Nested m_rhs_xpr
Eigen::internal::traits< TensorCwiseNullaryOp >::Scalar Scalar
ThenXprType::Nested m_then
Arg2XprType::Nested Arg2Nested
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE TensorCwiseNullaryOp(const XprType &xpr, const NullaryOp &func=NullaryOp())
Eigen::internal::traits< TensorCwiseTernaryOp >::Scalar Scalar
traits< ThenXprType > XprTraits
Eigen::internal::traits< TensorSelectOp >::Scalar Scalar
EIGEN_DEVICE_FUNC const internal::remove_all< typename RhsXprType::Nested >::type & rhsExpression() const
Eigen::NumTraits< Scalar >::Real RealScalar
const TensorSelectOp< IfXprType, ThenXprType, ElseXprType > & type
Eigen::internal::nested< TensorCwiseUnaryOp >::type Nested
EIGEN_DEVICE_FUNC const UnaryOp & functor() const
Eigen::internal::nested< TensorCwiseTernaryOp >::type Nested
Eigen::internal::traits< TensorCwiseTernaryOp >::StorageKind StorageKind
promote_index_type< typename traits< LhsXprType >::Index, typename traits< RhsXprType >::Index >::type Index
EIGEN_DEVICE_FUNC const internal::remove_all< typename Arg2XprType::Nested >::type & arg2Expression() const
Eigen::NumTraits< Scalar >::Real RealScalar
TensorCwiseUnaryOp< UnaryOp, XprType > type
Eigen::NumTraits< Scalar >::Real RealScalar
Eigen::internal::traits< TensorSelectOp >::Index Index
#define EIGEN_DEVICE_FUNC
TypeConversion< Scalar, typename conditional< Pointer_type_promotion< typename LhsXprType::Scalar, Scalar >::val, typename traits< LhsXprType >::PointerType, typename traits< RhsXprType >::PointerType >::type >::type PointerType
Eigen::internal::traits< TensorCwiseBinaryOp >::Scalar Scalar
TypeConversion< Scalar, typename conditional< Pointer_type_promotion< typename Arg2XprType::Scalar, Scalar >::val, typename traits< Arg2XprType >::PointerType, typename traits< Arg3XprType >::PointerType >::type >::type PointerType
TensorSelectOp< IfXprType, ThenXprType, ElseXprType > type
Eigen::internal::traits< TensorCwiseUnaryOp >::Index Index
internal::promote_storage_type< typename ThenXprType::CoeffReturnType, typename ElseXprType::CoeffReturnType >::ret CoeffReturnType
Arg2XprType::Nested m_arg2_xpr
traits< Arg1XprType > XprTraits
LhsXprType::Nested LhsNested
Eigen::internal::traits< TensorCwiseNullaryOp >::StorageKind StorageKind
promote_storage_type< typename traits< ThenXprType >::StorageKind, typename traits< ElseXprType >::StorageKind >::ret StorageKind
traits< Arg1XprType >::Index Index
Arg3XprType::Nested m_arg3_xpr
ElseXprType::Nested m_else
remove_reference< Arg1Nested >::type _Arg1Nested
EIGEN_DEVICE_FUNC const NullaryOp & functor() const
EIGEN_DEVICE_FUNC const internal::remove_all< typename Arg3XprType::Nested >::type & arg3Expression() const
promote_storage_type< typename traits< LhsXprType >::StorageKind, typename traits< RhsXprType >::StorageKind >::ret StorageKind
remove_reference< XprTypeNested >::type _XprTypeNested
promote_index_type< typename traits< ElseXprType >::Index, typename traits< ThenXprType >::Index >::type Index
XprTraits::PointerType PointerType
Generic expression where a coefficient-wise unary operator is applied to an expression.
Arg3XprType::Nested Arg3Nested
result_of< UnaryOp(typename XprType::Scalar)>::type Scalar
Arg1XprType::Nested Arg1Nested
ElseXprType::Nested ElseNested
Arg1XprType::Nested m_arg1_xpr
traits< XprType > XprTraits
const NullaryOp m_functor
XprType::Nested XprTypeNested
EIGEN_DEVICE_FUNC const internal::remove_all< typename XprType::Nested >::type & nestedExpression() const