Public Types | Public Member Functions | Static Public Attributes | Protected Attributes | List of all members
Eigen::TensorEvaluator< Derived, Device > Class Template Reference

A cost model used to limit the number of threads used for evaluating tensor expression. More...

#include <TensorEvaluator.h>

Public Types

enum  {
  IsAligned = Derived::IsAligned, PacketAccess = (PacketType<CoeffReturnType, Device>::size > 1), BlockAccess = internal::is_arithmetic<typename internal::remove_const<Scalar>::type>::value, PreferBlockAccess = false,
  Layout = Derived::Layout
}
 
typedef Derived::Scalar CoeffReturnType
 
typedef Derived::Dimensions Dimensions
 
typedef Storage::Type EvaluatorPointerType
 
typedef Derived::Index Index
 
typedef PacketType< CoeffReturnType, Device >::type PacketReturnType
 
typedef Derived::Scalar Scalar
 
typedef internal::remove_const< Scalar >::type ScalarNoConst
 
typedef StorageMemory< Scalar, Device > Storage
 
typedef internal::TensorMaterializedBlock< ScalarNoConst, NumCoords, Layout, IndexTensorBlock
 
typedef internal::TensorBlockDescriptor< NumCoords, IndexTensorBlockDesc
 
typedef internal::TensorBlockScratchAllocator< Device > TensorBlockScratch
 
typedef internal::traits< Derived >::template MakePointer< Scalar >::Type TensorPointerType
 
typedef Derived XprType
 

Public Member Functions

EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE TensorBlock block (TensorBlockDesc &desc, TensorBlockScratch &scratch, bool=false) const
 
EIGEN_STRONG_INLINE void cleanup ()
 
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE CoeffReturnType coeff (Index index) const
 
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE CoeffReturnType coeff (const array< DenseIndex, NumCoords > &coords) const
 
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE CoeffReturnTypecoeffRef (Index index)
 
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE CoeffReturnTypecoeffRef (const array< DenseIndex, NumCoords > &coords)
 
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE TensorOpCost costPerCoeff (bool vectorized) const
 
EIGEN_DEVICE_FUNC EvaluatorPointerType data () const
 
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE const Dimensionsdimensions () const
 
EIGEN_STRONG_INLINE bool evalSubExprsIfNeeded (EvaluatorPointerType dest)
 
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE internal::TensorBlockResourceRequirements getResourceRequirements () const
 
template<int LoadMode>
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE PacketReturnType packet (Index index) const
 
template<typename PacketReturnTypeT >
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE internal::enable_if< internal::unpacket_traits< PacketReturnTypeT >::masked_load_available, PacketReturnTypeT >::type partialPacket (Index index, typename internal::unpacket_traits< PacketReturnTypeT >::mask_t umask) const
 
EIGEN_STRONG_INLINE TensorEvaluator (const Derived &m, const Device &device)
 
template<typename TensorBlock >
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE void writeBlock (const TensorBlockDesc &desc, const TensorBlock &block)
 
template<int StoreMode>
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE void writePacket (Index index, const PacketReturnType &x)
 

Static Public Attributes

static const int NumCoords
 
static const int PacketSize = PacketType<CoeffReturnType, Device>::size
 

Protected Attributes

EvaluatorPointerType m_data
 
const Device EIGEN_DEVICE_REF m_device
 
Dimensions m_dims
 

Detailed Description

template<typename Derived, typename Device>
class Eigen::TensorEvaluator< Derived, Device >

A cost model used to limit the number of threads used for evaluating tensor expression.

The tensor evaluator classes.

These classes are responsible for the evaluation of the tensor expression.

TODO: add support for more types of expressions, in particular expressions leading to lvalues (slicing, reshaping, etc...)

Definition at line 28 of file TensorEvaluator.h.

Member Typedef Documentation

◆ CoeffReturnType

template<typename Derived, typename Device>
typedef Derived::Scalar Eigen::TensorEvaluator< Derived, Device >::CoeffReturnType

Definition at line 32 of file TensorEvaluator.h.

◆ Dimensions

template<typename Derived, typename Device>
typedef Derived::Dimensions Eigen::TensorEvaluator< Derived, Device >::Dimensions

Definition at line 34 of file TensorEvaluator.h.

◆ EvaluatorPointerType

template<typename Derived, typename Device>
typedef Storage::Type Eigen::TensorEvaluator< Derived, Device >::EvaluatorPointerType

Definition at line 39 of file TensorEvaluator.h.

◆ Index

template<typename Derived, typename Device>
typedef Derived::Index Eigen::TensorEvaluator< Derived, Device >::Index

Definition at line 30 of file TensorEvaluator.h.

◆ PacketReturnType

template<typename Derived, typename Device>
typedef PacketType<CoeffReturnType, Device>::type Eigen::TensorEvaluator< Derived, Device >::PacketReturnType

Definition at line 33 of file TensorEvaluator.h.

◆ Scalar

template<typename Derived, typename Device>
typedef Derived::Scalar Eigen::TensorEvaluator< Derived, Device >::Scalar

Definition at line 31 of file TensorEvaluator.h.

◆ ScalarNoConst

template<typename Derived, typename Device>
typedef internal::remove_const<Scalar>::type Eigen::TensorEvaluator< Derived, Device >::ScalarNoConst

Definition at line 55 of file TensorEvaluator.h.

◆ Storage

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

Definition at line 38 of file TensorEvaluator.h.

◆ TensorBlock

template<typename Derived, typename Device>
typedef internal::TensorMaterializedBlock<ScalarNoConst, NumCoords, Layout, Index> Eigen::TensorEvaluator< Derived, Device >::TensorBlock

Definition at line 63 of file TensorEvaluator.h.

◆ TensorBlockDesc

template<typename Derived, typename Device>
typedef internal::TensorBlockDescriptor<NumCoords, Index> Eigen::TensorEvaluator< Derived, Device >::TensorBlockDesc

Definition at line 58 of file TensorEvaluator.h.

◆ TensorBlockScratch

template<typename Derived, typename Device>
typedef internal::TensorBlockScratchAllocator<Device> Eigen::TensorEvaluator< Derived, Device >::TensorBlockScratch

Definition at line 59 of file TensorEvaluator.h.

◆ TensorPointerType

template<typename Derived, typename Device>
typedef internal::traits<Derived>::template MakePointer<Scalar>::Type Eigen::TensorEvaluator< Derived, Device >::TensorPointerType

Definition at line 37 of file TensorEvaluator.h.

◆ XprType

template<typename Derived, typename Device>
typedef Derived Eigen::TensorEvaluator< Derived, Device >::XprType

Definition at line 35 of file TensorEvaluator.h.

Member Enumeration Documentation

◆ anonymous enum

template<typename Derived, typename Device>
anonymous enum
Enumerator
IsAligned 
PacketAccess 
BlockAccess 
PreferBlockAccess 
Layout 

Definition at line 45 of file TensorEvaluator.h.

Constructor & Destructor Documentation

◆ TensorEvaluator()

template<typename Derived, typename Device>
EIGEN_STRONG_INLINE Eigen::TensorEvaluator< Derived, Device >::TensorEvaluator ( const Derived &  m,
const Device &  device 
)
inline

Definition at line 66 of file TensorEvaluator.h.

Member Function Documentation

◆ block()

template<typename Derived, typename Device>
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE TensorBlock Eigen::TensorEvaluator< Derived, Device >::block ( TensorBlockDesc desc,
TensorBlockScratch scratch,
bool  = false 
) const
inline

Definition at line 158 of file TensorEvaluator.h.

◆ cleanup()

template<typename Derived, typename Device>
EIGEN_STRONG_INLINE void Eigen::TensorEvaluator< Derived, Device >::cleanup ( )
inline

Definition at line 92 of file TensorEvaluator.h.

◆ coeff() [1/2]

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

Definition at line 94 of file TensorEvaluator.h.

◆ coeff() [2/2]

template<typename Derived, typename Device>
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE CoeffReturnType Eigen::TensorEvaluator< Derived, Device >::coeff ( const array< DenseIndex, NumCoords > &  coords) const
inline

Definition at line 128 of file TensorEvaluator.h.

◆ coeffRef() [1/2]

template<typename Derived, typename Device>
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE CoeffReturnType& Eigen::TensorEvaluator< Derived, Device >::coeffRef ( Index  index)
inline

Definition at line 99 of file TensorEvaluator.h.

◆ coeffRef() [2/2]

template<typename Derived, typename Device>
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE CoeffReturnType& Eigen::TensorEvaluator< Derived, Device >::coeffRef ( const array< DenseIndex, NumCoords > &  coords)
inline

Definition at line 138 of file TensorEvaluator.h.

◆ costPerCoeff()

template<typename Derived, typename Device>
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE TensorOpCost Eigen::TensorEvaluator< Derived, Device >::costPerCoeff ( bool  vectorized) const
inline

Definition at line 147 of file TensorEvaluator.h.

◆ data()

template<typename Derived, typename Device>
EIGEN_DEVICE_FUNC EvaluatorPointerType Eigen::TensorEvaluator< Derived, Device >::data ( ) const
inline

Definition at line 181 of file TensorEvaluator.h.

◆ dimensions()

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

Definition at line 73 of file TensorEvaluator.h.

◆ evalSubExprsIfNeeded()

template<typename Derived, typename Device>
EIGEN_STRONG_INLINE bool Eigen::TensorEvaluator< Derived, Device >::evalSubExprsIfNeeded ( EvaluatorPointerType  dest)
inline

Definition at line 75 of file TensorEvaluator.h.

◆ getResourceRequirements()

template<typename Derived, typename Device>
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE internal::TensorBlockResourceRequirements Eigen::TensorEvaluator< Derived, Device >::getResourceRequirements ( ) const
inline

Definition at line 153 of file TensorEvaluator.h.

◆ packet()

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

Definition at line 105 of file TensorEvaluator.h.

◆ partialPacket()

template<typename Derived, typename Device>
template<typename PacketReturnTypeT >
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE internal::enable_if<internal::unpacket_traits<PacketReturnTypeT>::masked_load_available, PacketReturnTypeT>::type Eigen::TensorEvaluator< Derived, Device >::partialPacket ( Index  index,
typename internal::unpacket_traits< PacketReturnTypeT >::mask_t  umask 
) const
inline

Definition at line 117 of file TensorEvaluator.h.

◆ writeBlock()

template<typename Derived, typename Device>
template<typename TensorBlock >
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE void Eigen::TensorEvaluator< Derived, Device >::writeBlock ( const TensorBlockDesc desc,
const TensorBlock block 
)
inline

Definition at line 165 of file TensorEvaluator.h.

◆ writePacket()

template<typename Derived, typename Device>
template<int StoreMode>
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE void Eigen::TensorEvaluator< Derived, Device >::writePacket ( Index  index,
const PacketReturnType x 
)
inline

Definition at line 123 of file TensorEvaluator.h.

Member Data Documentation

◆ m_data

template<typename Derived, typename Device>
EvaluatorPointerType Eigen::TensorEvaluator< Derived, Device >::m_data
protected

Definition at line 190 of file TensorEvaluator.h.

◆ m_device

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

Definition at line 192 of file TensorEvaluator.h.

◆ m_dims

template<typename Derived, typename Device>
Dimensions Eigen::TensorEvaluator< Derived, Device >::m_dims
protected

Definition at line 191 of file TensorEvaluator.h.

◆ NumCoords

template<typename Derived, typename Device>
const int Eigen::TensorEvaluator< Derived, Device >::NumCoords
static
Initial value:
= internal::traits<Derived>::NumDimensions > 0 ?
internal::traits<Derived>::NumDimensions : 0

Definition at line 42 of file TensorEvaluator.h.

◆ PacketSize

template<typename Derived, typename Device>
const int Eigen::TensorEvaluator< Derived, Device >::PacketSize = PacketType<CoeffReturnType, Device>::size
static

Definition at line 36 of file TensorEvaluator.h.


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


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