Eigen::internal::PacketConv< SrcPacket, TargetPacket, LoadMode, ActuallyVectorize, IsSameT > Struct Template Reference

#include <TensorConversion.h>

Public Types

typedef internal::unpacket_traits< SrcPacket >::type SrcType
 
typedef internal::unpacket_traits< TargetPacket >::type TargetType
 

Static Public Member Functions

template<typename ArgType , typename Device >
static EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE TargetPacket run (const TensorEvaluator< ArgType, Device > &impl, Index index)
 

Static Public Attributes

static constexpr int PacketSize = internal::unpacket_traits<TargetPacket>::size
 

Member Typedef Documentation

◆ SrcType

template<typename SrcPacket , typename TargetPacket , int LoadMode, bool ActuallyVectorize, bool IsSameT>
typedef internal::unpacket_traits<SrcPacket>::type Eigen::internal::PacketConv< SrcPacket, TargetPacket, LoadMode, ActuallyVectorize, IsSameT >::SrcType

◆ TargetType

template<typename SrcPacket , typename TargetPacket , int LoadMode, bool ActuallyVectorize, bool IsSameT>
typedef internal::unpacket_traits<TargetPacket>::type Eigen::internal::PacketConv< SrcPacket, TargetPacket, LoadMode, ActuallyVectorize, IsSameT >::TargetType

Member Function Documentation

◆ run()

template<typename SrcPacket , typename TargetPacket , int LoadMode, bool ActuallyVectorize, bool IsSameT>
template<typename ArgType , typename Device >
static EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE TargetPacket Eigen::internal::PacketConv< SrcPacket, TargetPacket, LoadMode, ActuallyVectorize, IsSameT >::run ( const TensorEvaluator< ArgType, Device > &  impl,
Index  index 
)
inlinestatic
242  {
243  internal::scalar_cast_op<SrcType, TargetType> converter;
244  EIGEN_ALIGN_MAX std::remove_const_t<TargetType> values[PacketSize];
246  for (int i = 0; i < PacketSize; ++i) {
247  values[i] = converter(impl.coeff(index + i));
248  }
249  TargetPacket rslt = internal::pload<TargetPacket>(values);
250  return rslt;
251  }
int i
Definition: BiCGSTAB_step_by_step.cpp:9
#define EIGEN_ALIGN_MAX
Definition: ConfigureVectorization.h:146
#define EIGEN_UNROLL_LOOP
Definition: Macros.h:1298
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE CoeffReturnType coeff(Index index) const
Definition: TensorEvaluator.h:89
static constexpr int PacketSize
Definition: TensorConversion.h:238

References Eigen::TensorEvaluator< Derived, Device >::coeff(), EIGEN_ALIGN_MAX, EIGEN_UNROLL_LOOP, i, and Eigen::internal::PacketConv< SrcPacket, TargetPacket, LoadMode, ActuallyVectorize, IsSameT >::PacketSize.

Referenced by Eigen::TensorEvaluator< const TensorConversionOp< TargetType, ArgType >, Device >::packet().

Member Data Documentation

◆ PacketSize

template<typename SrcPacket , typename TargetPacket , int LoadMode, bool ActuallyVectorize, bool IsSameT>
constexpr int Eigen::internal::PacketConv< SrcPacket, TargetPacket, LoadMode, ActuallyVectorize, IsSameT >::PacketSize = internal::unpacket_traits<TargetPacket>::size
staticconstexpr

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