10 #ifndef EIGEN_CXX11_TENSOR_TENSOR_EXPR_H 11 #define EIGEN_CXX11_TENSOR_TENSOR_EXPR_H 31 template<
typename NullaryOp,
typename XprType>
36 typedef typename XprType::Scalar
Scalar;
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;
94 template<
typename UnaryOp,
typename XprType>
100 template<
typename UnaryOp,
typename XprType>
110 template<
typename UnaryOp,
typename XprType>
124 : m_xpr(xpr), m_functor(func) {}
127 const UnaryOp&
functor()
const {
return m_functor; }
141 template<
typename BinaryOp,
typename LhsXprType,
typename RhsXprType>
149 BinaryOp(
typename LhsXprType::Scalar,
150 typename RhsXprType::Scalar)>::type
Scalar;
162 static const int NumDimensions = XprTraits::NumDimensions;
163 static const int Layout = XprTraits::Layout;
170 template<
typename BinaryOp,
typename LhsXprType,
typename RhsXprType>
176 template<
typename BinaryOp,
typename LhsXprType,
typename RhsXprType>
186 template<
typename BinaryOp,
typename LhsXprType,
typename RhsXprType>
200 : m_lhs_xpr(lhs), m_rhs_xpr(rhs), m_functor(func) {}
203 const BinaryOp&
functor()
const {
return m_functor; }
222 template<
typename TernaryOp,
typename Arg1XprType,
typename Arg2XprType,
typename Arg3XprType>
227 TernaryOp(
typename Arg1XprType::Scalar,
228 typename Arg2XprType::Scalar,
229 typename Arg3XprType::Scalar)>::type
Scalar;
239 static const int NumDimensions = XprTraits::NumDimensions;
240 static const int Layout = XprTraits::Layout;
247 template<
typename TernaryOp,
typename Arg1XprType,
typename Arg2XprType,
typename Arg3XprType>
253 template<
typename TernaryOp,
typename Arg1XprType,
typename Arg2XprType,
typename Arg3XprType>
263 template<
typename TernaryOp,
typename Arg1XprType,
typename Arg2XprType,
typename Arg3XprType>
275 : m_arg1_xpr(arg1), m_arg2_xpr(arg2), m_arg3_xpr(arg3), m_functor(func) {}
278 const TernaryOp&
functor()
const {
return m_functor; }
302 template<
typename IfXprType,
typename ThenXprType,
typename ElseXprType>
315 static const int NumDimensions = XprTraits::NumDimensions;
316 static const int Layout = XprTraits::Layout;
319 template<
typename IfXprType,
typename ThenXprType,
typename ElseXprType>
325 template<
typename IfXprType,
typename ThenXprType,
typename ElseXprType>
334 template<
typename IfXprType,
typename ThenXprType,
typename ElseXprType>
348 const ThenXprType& a_then,
349 const ElseXprType& a_else)
350 : m_condition(a_condition), m_then(a_then), m_else(a_else)
371 #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
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_DEVICE_FUNC const BinaryOp & functor() const
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
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
XprType::CoeffReturnType CoeffReturnType
Eigen::internal::traits< TensorCwiseBinaryOp >::Index Index
RhsXprType::Nested RhsNested
traits< ThenXprType >::Scalar Scalar
traits< LhsXprType > XprTraits
Eigen::internal::traits< TensorCwiseUnaryOp >::Scalar Scalar
EIGEN_DEVICE_FUNC const IfXprType & ifExpression() const
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE TensorCwiseTernaryOp(const Arg1XprType &arg1, const Arg2XprType &arg2, const Arg3XprType &arg3, const TernaryOp &func=TernaryOp())
EIGEN_DEVICE_FUNC const internal::remove_all< typename XprType::Nested >::type & nestedExpression() const
traits< Arg1XprType >::StorageKind StorageKind
EIGEN_DEVICE_FUNC const TernaryOp & functor() const
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
EIGEN_DEVICE_FUNC const internal::remove_all< typename Arg2XprType::Nested >::type & arg2Expression() const
IfXprType::Nested IfNested
EIGEN_DEVICE_FUNC const internal::remove_all< typename Arg3XprType::Nested >::type & arg3Expression() const
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
EIGEN_DEVICE_FUNC const ThenXprType & thenExpression() const
EIGEN_DEVICE_FUNC const internal::remove_all< typename XprType::Nested >::type & nestedExpression() const
traits< ThenXprType > XprTraits
Eigen::internal::traits< TensorSelectOp >::Scalar Scalar
Eigen::NumTraits< Scalar >::Real RealScalar
const TensorSelectOp< IfXprType, ThenXprType, ElseXprType > & type
Eigen::internal::nested< TensorCwiseUnaryOp >::type Nested
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 NullaryOp & functor() const
Eigen::NumTraits< Scalar >::Real RealScalar
TensorCwiseUnaryOp< UnaryOp, XprType > type
Eigen::NumTraits< Scalar >::Real RealScalar
EIGEN_DEVICE_FUNC const internal::remove_all< typename Arg1XprType::Nested >::type & arg1Expression() const
Eigen::internal::traits< TensorSelectOp >::Index Index
Eigen::internal::traits< TensorCwiseBinaryOp >::Scalar Scalar
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
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
EIGEN_DEVICE_FUNC const ElseXprType & elseExpression() const
Arg3XprType::Nested Arg3Nested
result_of< UnaryOp(typename XprType::Scalar)>::type Scalar
Arg1XprType::Nested Arg1Nested
EIGEN_DEVICE_FUNC const internal::remove_all< typename RhsXprType::Nested >::type & rhsExpression() const
EIGEN_DEVICE_FUNC const UnaryOp & functor() const
ElseXprType::Nested ElseNested
Arg1XprType::Nested m_arg1_xpr
traits< XprType > XprTraits
const NullaryOp m_functor
XprType::Nested XprTypeNested