Eigen::internal::inner_product_evaluator< Func, Lhs, Rhs > Struct Template Reference

#include <InnerProduct.h>

Public Types

using Scalar = typename Func::result_type
 
using Packet = typename find_inner_product_packet< Scalar, SizeAtCompileTime >::type
 

Public Member Functions

EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE inner_product_evaluator (const Lhs &lhs, const Rhs &rhs, Func func=Func())
 
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE Index size () const
 
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE Scalar coeff (Index index) const
 
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE Scalar coeff (const Scalar &value, Index index) const
 
template<typename PacketType , int LhsMode = LhsAlignment, int RhsMode = RhsAlignment>
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE PacketType packet (Index index) const
 
template<typename PacketType , int LhsMode = LhsAlignment, int RhsMode = RhsAlignment>
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE PacketType packet (const PacketType &value, Index index) const
 

Public Attributes

const Func m_func
 
const evaluator< Lhsm_lhs
 
const evaluator< Rhsm_rhs
 
const variable_if_dynamic< Index, SizeAtCompileTimem_size
 

Static Public Attributes

static constexpr int LhsFlags = evaluator<Lhs>::Flags
 
static constexpr int RhsFlags = evaluator<Rhs>::Flags
 
static constexpr int SizeAtCompileTime = min_size_prefer_fixed(Lhs::SizeAtCompileTime, Rhs::SizeAtCompileTime)
 
static constexpr int LhsAlignment = evaluator<Lhs>::Alignment
 
static constexpr int RhsAlignment = evaluator<Rhs>::Alignment
 
static constexpr bool Vectorize
 

Member Typedef Documentation

◆ Packet

template<typename Func , typename Lhs , typename Rhs >
using Eigen::internal::inner_product_evaluator< Func, Lhs, Rhs >::Packet = typename find_inner_product_packet<Scalar, SizeAtCompileTime>::type

◆ Scalar

template<typename Func , typename Lhs , typename Rhs >
using Eigen::internal::inner_product_evaluator< Func, Lhs, Rhs >::Scalar = typename Func::result_type

Constructor & Destructor Documentation

◆ inner_product_evaluator()

template<typename Func , typename Lhs , typename Rhs >
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE Eigen::internal::inner_product_evaluator< Func, Lhs, Rhs >::inner_product_evaluator ( const Lhs lhs,
const Rhs rhs,
Func  func = Func() 
)
inlineexplicit
73  : m_func(func), m_lhs(lhs), m_rhs(rhs), m_size(lhs.size()) {
75  }
static EIGEN_DEVICE_FUNC void run(const Lhs &lhs, const Rhs &rhs)
Definition: InnerProduct.h:50
const evaluator< Rhs > m_rhs
Definition: InnerProduct.h:101
const Func m_func
Definition: InnerProduct.h:99
const variable_if_dynamic< Index, SizeAtCompileTime > m_size
Definition: InnerProduct.h:102
const evaluator< Lhs > m_lhs
Definition: InnerProduct.h:100
Definition: benchGeometry.cpp:21

References Eigen::internal::inner_product_assert< Lhs, Rhs >::run().

Member Function Documentation

◆ coeff() [1/2]

template<typename Func , typename Lhs , typename Rhs >
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE Scalar Eigen::internal::inner_product_evaluator< Func, Lhs, Rhs >::coeff ( const Scalar value,
Index  index 
) const
inline

◆ coeff() [2/2]

◆ packet() [1/2]

template<typename Func , typename Lhs , typename Rhs >
template<typename PacketType , int LhsMode = LhsAlignment, int RhsMode = RhsAlignment>
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE PacketType Eigen::internal::inner_product_evaluator< Func, Lhs, Rhs >::packet ( const PacketType value,
Index  index 
) const
inline
94  {
95  return m_func.packet(value, m_lhs.template packet<LhsMode, PacketType>(index),
96  m_rhs.template packet<RhsMode, PacketType>(index));
97  }

References Eigen::internal::inner_product_evaluator< Func, Lhs, Rhs >::m_func, Eigen::internal::inner_product_evaluator< Func, Lhs, Rhs >::m_lhs, Eigen::internal::inner_product_evaluator< Func, Lhs, Rhs >::m_rhs, and Eigen::value.

◆ packet() [2/2]

template<typename Func , typename Lhs , typename Rhs >
template<typename PacketType , int LhsMode = LhsAlignment, int RhsMode = RhsAlignment>
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE PacketType Eigen::internal::inner_product_evaluator< Func, Lhs, Rhs >::packet ( Index  index) const
inline
88  {
89  return m_func.packet(m_lhs.template packet<LhsMode, PacketType>(index),
90  m_rhs.template packet<RhsMode, PacketType>(index));
91  }

References Eigen::internal::inner_product_evaluator< Func, Lhs, Rhs >::m_func, Eigen::internal::inner_product_evaluator< Func, Lhs, Rhs >::m_lhs, and Eigen::internal::inner_product_evaluator< Func, Lhs, Rhs >::m_rhs.

◆ size()

template<typename Func , typename Lhs , typename Rhs >
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE Index Eigen::internal::inner_product_evaluator< Func, Lhs, Rhs >::size ( ) const
inline
77 { return m_size.value(); }
static EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE EIGEN_CONSTEXPR T value()
Definition: XprHelper.h:161

References Eigen::internal::inner_product_evaluator< Func, Lhs, Rhs >::m_size, and Eigen::internal::variable_if_dynamic< T, Value >::value().

Member Data Documentation

◆ LhsAlignment

template<typename Func , typename Lhs , typename Rhs >
constexpr int Eigen::internal::inner_product_evaluator< Func, Lhs, Rhs >::LhsAlignment = evaluator<Lhs>::Alignment
static

◆ LhsFlags

template<typename Func , typename Lhs , typename Rhs >
constexpr int Eigen::internal::inner_product_evaluator< Func, Lhs, Rhs >::LhsFlags = evaluator<Lhs>::Flags
staticconstexpr

◆ m_func

◆ m_lhs

◆ m_rhs

◆ m_size

template<typename Func , typename Lhs , typename Rhs >
const variable_if_dynamic<Index, SizeAtCompileTime> Eigen::internal::inner_product_evaluator< Func, Lhs, Rhs >::m_size

◆ RhsAlignment

template<typename Func , typename Lhs , typename Rhs >
constexpr int Eigen::internal::inner_product_evaluator< Func, Lhs, Rhs >::RhsAlignment = evaluator<Rhs>::Alignment
static

◆ RhsFlags

template<typename Func , typename Lhs , typename Rhs >
constexpr int Eigen::internal::inner_product_evaluator< Func, Lhs, Rhs >::RhsFlags = evaluator<Rhs>::Flags
static

◆ SizeAtCompileTime

template<typename Func , typename Lhs , typename Rhs >
constexpr int Eigen::internal::inner_product_evaluator< Func, Lhs, Rhs >::SizeAtCompileTime = min_size_prefer_fixed(Lhs::SizeAtCompileTime, Rhs::SizeAtCompileTime)
static

◆ Vectorize

template<typename Func , typename Lhs , typename Rhs >
constexpr bool Eigen::internal::inner_product_evaluator< Func, Lhs, Rhs >::Vectorize
staticconstexpr
Initial value:
=
bool(LhsFlags & RhsFlags & PacketAccessBit) && Func::PacketAccess &&
const unsigned int PacketAccessBit
Definition: Constants.h:97
const int Dynamic
Definition: Constants.h:25
static constexpr int SizeAtCompileTime
Definition: InnerProduct.h:61
static constexpr int RhsFlags
Definition: InnerProduct.h:60
static constexpr int LhsFlags
Definition: InnerProduct.h:60
@ size
Definition: GenericPacketMath.h:139

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