Public Types | Public Member Functions | Static Public Attributes | Protected Attributes | List of all members
Eigen::TensorContractionEvaluatorBase< Derived > Struct Template Reference

#include <TensorContraction.h>

Inheritance diagram for Eigen::TensorContractionEvaluatorBase< Derived >:
Inheritance graph
[legend]

Public Types

enum  {
  IsAligned = true, PacketAccess = (PacketType<CoeffReturnType, Device>::size > 1), BlockAccess = false, PreferBlockAccess = false,
  Layout = TensorEvaluator<LeftArgType, Device>::Layout, CoordAccess = false, RawAccess = true
}
 
typedef XprType::CoeffReturnType CoeffReturnType
 
typedef array< Index, ContractDimscontract_t
 
typedef internal::traits< Derived >::Device Device
 
typedef DSizes< Index, NumDimsDimensions
 
typedef internal::conditional< static_cast< int >Layout)==static_cast< int >ColMajor), LeftArgType, RightArgType >::type EvalLeftArgType
 
typedef internal::conditional< static_cast< int >Layout)==static_cast< int >ColMajor), RightArgType, LeftArgType >::type EvalRightArgType
 
typedef Storage::Type EvaluatorPointerType
 
typedef XprType::Index Index
 
typedef internal::traits< Derived >::Indices Indices
 
typedef array< Index, LDims - ContractDimsleft_nocontract_t
 
typedef internal::traits< Derived >::LeftArgType LeftArgType
 
typedef TensorEvaluator< EvalLeftArgType, DeviceLeftEvaluatorType
 
typedef internal::traits< Derived >::OutputKernelType OutputKernelType
 
typedef PacketType< CoeffReturnType, Device >::type PacketReturnType
 
typedef array< Index, RDims - ContractDimsright_nocontract_t
 
typedef internal::traits< Derived >::RightArgType RightArgType
 
typedef TensorEvaluator< EvalRightArgType, DeviceRightEvaluatorType
 
typedef internal::remove_const< typename XprType::Scalar >::type Scalar
 
typedef StorageMemory< Scalar, DeviceStorage
 
typedef internal::TensorBlockNotImplemented TensorBlock
 
typedef TensorContractionOp< Indices, LeftArgType, RightArgType, OutputKernelTypeXprType
 

Public Member Functions

EIGEN_STRONG_INLINE void cleanup ()
 
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE CoeffReturnType coeff (Index index) const
 
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE TensorOpCost costPerCoeff (bool) const
 
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE EvaluatorPointerType data () const
 
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE const Dimensionsdimensions () const
 
template<bool lhs_inner_dim_contiguous, bool rhs_inner_dim_contiguous, bool rhs_inner_dim_reordered, int Alignment>
EIGEN_DEVICE_FUNC void evalGemm (Scalar *buffer) const
 
template<bool lhs_inner_dim_contiguous, bool rhs_inner_dim_contiguous, bool rhs_inner_dim_reordered, int Alignment, bool use_output_kernel>
EIGEN_DEVICE_FUNC void evalGemmPartial (Scalar *buffer, Index k_start, Index k_end, int num_threads) const
 
template<bool lhs_inner_dim_contiguous, bool rhs_inner_dim_contiguous, bool rhs_inner_dim_reordered, int Alignment>
EIGEN_DEVICE_FUNC void evalGemmPartialWithoutOutputKernel (Scalar *buffer, Index k_start, Index k_end, int num_threads) const
 
template<bool lhs_inner_dim_contiguous, bool rhs_inner_dim_contiguous, bool rhs_inner_dim_reordered, int Alignment>
EIGEN_DEVICE_FUNC void evalGemv (Scalar *buffer) const
 
template<bool lhs_inner_dim_contiguous, bool rhs_inner_dim_contiguous, bool rhs_inner_dim_reordered, int Alignment>
void evalProductSequential (Scalar *buffer) const
 
EIGEN_STRONG_INLINE bool evalSubExprsIfNeeded (EvaluatorPointerType data)
 
EIGEN_DEVICE_FUNC void evalTo (Scalar *buffer) const
 
template<int LoadMode>
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE PacketReturnType packet (Index index) const
 
EIGEN_STRONG_INLINE TensorContractionEvaluatorBase (const XprType &op, const Device &device)
 

Static Public Attributes

static const int ContractDims = internal::array_size<Indices>::value
 
static const int LDims
 
static const int NumDims = LDims + RDims - 2 * ContractDims
 
static const int RDims
 

Protected Attributes

const Device EIGEN_DEVICE_REF m_device
 
Dimensions m_dimensions
 
Index m_i_size
 
left_nocontract_t m_i_strides
 
Index m_j_size
 
right_nocontract_t m_j_strides
 
Index m_k_size
 
contract_t m_k_strides
 
contract_t m_left_contracting_strides
 
left_nocontract_t m_left_nocontract_strides
 
TensorEvaluator< EvalLeftArgType, Devicem_leftImpl
 
bool m_lhs_inner_dim_contiguous
 
OutputKernelType m_output_kernel
 
EvaluatorPointerType m_result
 
bool m_rhs_inner_dim_contiguous
 
bool m_rhs_inner_dim_reordered
 
contract_t m_right_contracting_strides
 
right_nocontract_t m_right_nocontract_strides
 
TensorEvaluator< EvalRightArgType, Devicem_rightImpl
 
TensorContractionParams m_tensor_contraction_params
 

Detailed Description

template<typename Derived>
struct Eigen::TensorContractionEvaluatorBase< Derived >

Definition at line 365 of file TensorContraction.h.

Member Typedef Documentation

◆ CoeffReturnType

template<typename Derived>
typedef XprType::CoeffReturnType Eigen::TensorContractionEvaluatorBase< Derived >::CoeffReturnType

Definition at line 376 of file TensorContraction.h.

◆ contract_t

template<typename Derived>
typedef array<Index, ContractDims> Eigen::TensorContractionEvaluatorBase< Derived >::contract_t

Definition at line 414 of file TensorContraction.h.

◆ Device

template<typename Derived>
typedef internal::traits<Derived>::Device Eigen::TensorContractionEvaluatorBase< Derived >::Device

Definition at line 371 of file TensorContraction.h.

◆ Dimensions

template<typename Derived>
typedef DSizes<Index, NumDims> Eigen::TensorContractionEvaluatorBase< Derived >::Dimensions

Definition at line 418 of file TensorContraction.h.

◆ EvalLeftArgType

template<typename Derived>
typedef internal::conditional< static_cast<int>Layout) == static_cast<int>ColMajor), LeftArgType, RightArgType>::type Eigen::TensorContractionEvaluatorBase< Derived >::EvalLeftArgType

Definition at line 400 of file TensorContraction.h.

◆ EvalRightArgType

template<typename Derived>
typedef internal::conditional< static_cast<int>Layout) == static_cast<int>ColMajor), RightArgType, LeftArgType>::type Eigen::TensorContractionEvaluatorBase< Derived >::EvalRightArgType

Definition at line 402 of file TensorContraction.h.

◆ EvaluatorPointerType

template<typename Derived>
typedef Storage::Type Eigen::TensorContractionEvaluatorBase< Derived >::EvaluatorPointerType

Definition at line 379 of file TensorContraction.h.

◆ Index

template<typename Derived>
typedef XprType::Index Eigen::TensorContractionEvaluatorBase< Derived >::Index

Definition at line 375 of file TensorContraction.h.

◆ Indices

template<typename Derived>
typedef internal::traits<Derived>::Indices Eigen::TensorContractionEvaluatorBase< Derived >::Indices

Definition at line 367 of file TensorContraction.h.

◆ left_nocontract_t

template<typename Derived>
typedef array<Index, LDims - ContractDims> Eigen::TensorContractionEvaluatorBase< Derived >::left_nocontract_t

Definition at line 415 of file TensorContraction.h.

◆ LeftArgType

template<typename Derived>
typedef internal::traits<Derived>::LeftArgType Eigen::TensorContractionEvaluatorBase< Derived >::LeftArgType

Definition at line 368 of file TensorContraction.h.

◆ LeftEvaluatorType

Definition at line 404 of file TensorContraction.h.

◆ OutputKernelType

template<typename Derived>
typedef internal::traits<Derived>::OutputKernelType Eigen::TensorContractionEvaluatorBase< Derived >::OutputKernelType

Definition at line 370 of file TensorContraction.h.

◆ PacketReturnType

Definition at line 377 of file TensorContraction.h.

◆ right_nocontract_t

template<typename Derived>
typedef array<Index, RDims - ContractDims> Eigen::TensorContractionEvaluatorBase< Derived >::right_nocontract_t

Definition at line 416 of file TensorContraction.h.

◆ RightArgType

template<typename Derived>
typedef internal::traits<Derived>::RightArgType Eigen::TensorContractionEvaluatorBase< Derived >::RightArgType

Definition at line 369 of file TensorContraction.h.

◆ RightEvaluatorType

Definition at line 405 of file TensorContraction.h.

◆ Scalar

template<typename Derived>
typedef internal::remove_const<typename XprType::Scalar>::type Eigen::TensorContractionEvaluatorBase< Derived >::Scalar

Definition at line 374 of file TensorContraction.h.

◆ Storage

template<typename Derived>
typedef StorageMemory<Scalar, Device> Eigen::TensorContractionEvaluatorBase< Derived >::Storage

Definition at line 378 of file TensorContraction.h.

◆ TensorBlock

Definition at line 392 of file TensorContraction.h.

◆ XprType

Definition at line 373 of file TensorContraction.h.

Member Enumeration Documentation

◆ anonymous enum

template<typename Derived>
anonymous enum
Enumerator
IsAligned 
PacketAccess 
BlockAccess 
PreferBlockAccess 
Layout 
CoordAccess 
RawAccess 

Definition at line 381 of file TensorContraction.h.

Constructor & Destructor Documentation

◆ TensorContractionEvaluatorBase()

template<typename Derived>
EIGEN_STRONG_INLINE Eigen::TensorContractionEvaluatorBase< Derived >::TensorContractionEvaluatorBase ( const XprType op,
const Device device 
)
inline

Definition at line 421 of file TensorContraction.h.

Member Function Documentation

◆ cleanup()

template<typename Derived>
EIGEN_STRONG_INLINE void Eigen::TensorContractionEvaluatorBase< Derived >::cleanup ( )
inline

Definition at line 915 of file TensorContraction.h.

◆ coeff()

template<typename Derived>
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE CoeffReturnType Eigen::TensorContractionEvaluatorBase< Derived >::coeff ( Index  index) const
inline

Definition at line 925 of file TensorContraction.h.

◆ costPerCoeff()

template<typename Derived>
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE TensorOpCost Eigen::TensorContractionEvaluatorBase< Derived >::costPerCoeff ( bool  ) const
inline

Definition at line 929 of file TensorContraction.h.

◆ data()

template<typename Derived>
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE EvaluatorPointerType Eigen::TensorContractionEvaluatorBase< Derived >::data ( ) const
inline

Definition at line 938 of file TensorContraction.h.

◆ dimensions()

template<typename Derived>
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE const Dimensions& Eigen::TensorContractionEvaluatorBase< Derived >::dimensions ( ) const
inline

Definition at line 603 of file TensorContraction.h.

◆ evalGemm()

template<typename Derived>
template<bool lhs_inner_dim_contiguous, bool rhs_inner_dim_contiguous, bool rhs_inner_dim_reordered, int Alignment>
EIGEN_DEVICE_FUNC void Eigen::TensorContractionEvaluatorBase< Derived >::evalGemm ( Scalar buffer) const
inline

Definition at line 781 of file TensorContraction.h.

◆ evalGemmPartial()

template<typename Derived>
template<bool lhs_inner_dim_contiguous, bool rhs_inner_dim_contiguous, bool rhs_inner_dim_reordered, int Alignment, bool use_output_kernel>
EIGEN_DEVICE_FUNC void Eigen::TensorContractionEvaluatorBase< Derived >::evalGemmPartial ( Scalar buffer,
Index  k_start,
Index  k_end,
int  num_threads 
) const
inline

Definition at line 801 of file TensorContraction.h.

◆ evalGemmPartialWithoutOutputKernel()

template<typename Derived>
template<bool lhs_inner_dim_contiguous, bool rhs_inner_dim_contiguous, bool rhs_inner_dim_reordered, int Alignment>
EIGEN_DEVICE_FUNC void Eigen::TensorContractionEvaluatorBase< Derived >::evalGemmPartialWithoutOutputKernel ( Scalar buffer,
Index  k_start,
Index  k_end,
int  num_threads 
) const
inline

Definition at line 792 of file TensorContraction.h.

◆ evalGemv()

template<typename Derived>
template<bool lhs_inner_dim_contiguous, bool rhs_inner_dim_contiguous, bool rhs_inner_dim_reordered, int Alignment>
EIGEN_DEVICE_FUNC void Eigen::TensorContractionEvaluatorBase< Derived >::evalGemv ( Scalar buffer) const
inline

Definition at line 732 of file TensorContraction.h.

◆ evalProductSequential()

template<typename Derived>
template<bool lhs_inner_dim_contiguous, bool rhs_inner_dim_contiguous, bool rhs_inner_dim_reordered, int Alignment>
void Eigen::TensorContractionEvaluatorBase< Derived >::evalProductSequential ( Scalar buffer) const
inline

Definition at line 717 of file TensorContraction.h.

◆ evalSubExprsIfNeeded()

template<typename Derived>
EIGEN_STRONG_INLINE bool Eigen::TensorContractionEvaluatorBase< Derived >::evalSubExprsIfNeeded ( EvaluatorPointerType  data)
inline

Definition at line 605 of file TensorContraction.h.

◆ evalTo()

template<typename Derived>
EIGEN_DEVICE_FUNC void Eigen::TensorContractionEvaluatorBase< Derived >::evalTo ( Scalar buffer) const
inline

Definition at line 702 of file TensorContraction.h.

◆ packet()

template<typename Derived>
template<int LoadMode>
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE PacketReturnType Eigen::TensorContractionEvaluatorBase< Derived >::packet ( Index  index) const
inline

Definition at line 934 of file TensorContraction.h.

Member Data Documentation

◆ ContractDims

template<typename Derived>
const int Eigen::TensorContractionEvaluatorBase< Derived >::ContractDims = internal::array_size<Indices>::value
static

Definition at line 411 of file TensorContraction.h.

◆ LDims

template<typename Derived>
const int Eigen::TensorContractionEvaluatorBase< Derived >::LDims
static
Initial value:
=
internal::array_size<typename TensorEvaluator<EvalLeftArgType, Device>::Dimensions>::value

Definition at line 407 of file TensorContraction.h.

◆ m_device

template<typename Derived>
const Device EIGEN_DEVICE_REF Eigen::TensorContractionEvaluatorBase< Derived >::m_device
protected

Definition at line 964 of file TensorContraction.h.

◆ m_dimensions

template<typename Derived>
Dimensions Eigen::TensorContractionEvaluatorBase< Derived >::m_dimensions
protected

Definition at line 941 of file TensorContraction.h.

◆ m_i_size

template<typename Derived>
Index Eigen::TensorContractionEvaluatorBase< Derived >::m_i_size
protected

Definition at line 956 of file TensorContraction.h.

◆ m_i_strides

template<typename Derived>
left_nocontract_t Eigen::TensorContractionEvaluatorBase< Derived >::m_i_strides
protected

Definition at line 951 of file TensorContraction.h.

◆ m_j_size

template<typename Derived>
Index Eigen::TensorContractionEvaluatorBase< Derived >::m_j_size
protected

Definition at line 957 of file TensorContraction.h.

◆ m_j_strides

template<typename Derived>
right_nocontract_t Eigen::TensorContractionEvaluatorBase< Derived >::m_j_strides
protected

Definition at line 952 of file TensorContraction.h.

◆ m_k_size

template<typename Derived>
Index Eigen::TensorContractionEvaluatorBase< Derived >::m_k_size
protected

Definition at line 958 of file TensorContraction.h.

◆ m_k_strides

template<typename Derived>
contract_t Eigen::TensorContractionEvaluatorBase< Derived >::m_k_strides
protected

Definition at line 943 of file TensorContraction.h.

◆ m_left_contracting_strides

template<typename Derived>
contract_t Eigen::TensorContractionEvaluatorBase< Derived >::m_left_contracting_strides
protected

Definition at line 944 of file TensorContraction.h.

◆ m_left_nocontract_strides

template<typename Derived>
left_nocontract_t Eigen::TensorContractionEvaluatorBase< Derived >::m_left_nocontract_strides
protected

Definition at line 953 of file TensorContraction.h.

◆ m_leftImpl

template<typename Derived>
TensorEvaluator<EvalLeftArgType, Device> Eigen::TensorContractionEvaluatorBase< Derived >::m_leftImpl
protected

Definition at line 962 of file TensorContraction.h.

◆ m_lhs_inner_dim_contiguous

template<typename Derived>
bool Eigen::TensorContractionEvaluatorBase< Derived >::m_lhs_inner_dim_contiguous
protected

Definition at line 947 of file TensorContraction.h.

◆ m_output_kernel

template<typename Derived>
OutputKernelType Eigen::TensorContractionEvaluatorBase< Derived >::m_output_kernel
protected

Definition at line 965 of file TensorContraction.h.

◆ m_result

template<typename Derived>
EvaluatorPointerType Eigen::TensorContractionEvaluatorBase< Derived >::m_result
protected

Definition at line 966 of file TensorContraction.h.

◆ m_rhs_inner_dim_contiguous

template<typename Derived>
bool Eigen::TensorContractionEvaluatorBase< Derived >::m_rhs_inner_dim_contiguous
protected

Definition at line 948 of file TensorContraction.h.

◆ m_rhs_inner_dim_reordered

template<typename Derived>
bool Eigen::TensorContractionEvaluatorBase< Derived >::m_rhs_inner_dim_reordered
protected

Definition at line 949 of file TensorContraction.h.

◆ m_right_contracting_strides

template<typename Derived>
contract_t Eigen::TensorContractionEvaluatorBase< Derived >::m_right_contracting_strides
protected

Definition at line 945 of file TensorContraction.h.

◆ m_right_nocontract_strides

template<typename Derived>
right_nocontract_t Eigen::TensorContractionEvaluatorBase< Derived >::m_right_nocontract_strides
protected

Definition at line 954 of file TensorContraction.h.

◆ m_rightImpl

template<typename Derived>
TensorEvaluator<EvalRightArgType, Device> Eigen::TensorContractionEvaluatorBase< Derived >::m_rightImpl
protected

Definition at line 963 of file TensorContraction.h.

◆ m_tensor_contraction_params

template<typename Derived>
TensorContractionParams Eigen::TensorContractionEvaluatorBase< Derived >::m_tensor_contraction_params
protected

Definition at line 960 of file TensorContraction.h.

◆ NumDims

template<typename Derived>
const int Eigen::TensorContractionEvaluatorBase< Derived >::NumDims = LDims + RDims - 2 * ContractDims
static

Definition at line 412 of file TensorContraction.h.

◆ RDims

template<typename Derived>
const int Eigen::TensorContractionEvaluatorBase< Derived >::RDims
static
Initial value:
=
internal::array_size<typename TensorEvaluator<EvalRightArgType, Device>::Dimensions>::value

Definition at line 409 of file TensorContraction.h.


The documentation for this struct was generated from the following file:


gtsam
Author(s):
autogenerated on Tue Jul 4 2023 02:43:45