Eigen::internal::scalar_boolean_select_op< ThenScalar, ElseScalar, ConditionScalar > Struct Template Reference

#include <TernaryFunctors.h>

Public Types

using Scalar = ThenScalar
 
using result_type = Scalar
 

Public Member Functions

EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE Scalar operator() (const ThenScalar &a, const ElseScalar &b, const ConditionScalar &cond) const
 
template<typename Packet >
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE Packet packetOp (const Packet &a, const Packet &b, const Packet &cond) const
 

Static Public Attributes

static constexpr bool ThenElseAreSame = is_same<ThenScalar, ElseScalar>::value
 

Member Typedef Documentation

◆ result_type

template<typename ThenScalar , typename ElseScalar , typename ConditionScalar >
using Eigen::internal::scalar_boolean_select_op< ThenScalar, ElseScalar, ConditionScalar >::result_type = Scalar

◆ Scalar

template<typename ThenScalar , typename ElseScalar , typename ConditionScalar >
using Eigen::internal::scalar_boolean_select_op< ThenScalar, ElseScalar, ConditionScalar >::Scalar = ThenScalar

Member Function Documentation

◆ operator()()

template<typename ThenScalar , typename ElseScalar , typename ConditionScalar >
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE Scalar Eigen::internal::scalar_boolean_select_op< ThenScalar, ElseScalar, ConditionScalar >::operator() ( const ThenScalar &  a,
const ElseScalar &  b,
const ConditionScalar &  cond 
) const
inline
29  {
30  return cond == ConditionScalar(0) ? b : a;
31  }
Scalar * b
Definition: benchVecAdd.cpp:17
const Scalar * a
Definition: level2_cplx_impl.h:32

References a, and b.

◆ packetOp()

template<typename ThenScalar , typename ElseScalar , typename ConditionScalar >
template<typename Packet >
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE Packet Eigen::internal::scalar_boolean_select_op< ThenScalar, ElseScalar, ConditionScalar >::packetOp ( const Packet a,
const Packet b,
const Packet cond 
) const
inline
33  {
34  return pselect(pcmp_eq(cond, pzero(cond)), b, a);
35  }
EIGEN_STRONG_INLINE Packet8f pzero(const Packet8f &)
Definition: AVX/PacketMath.h:774
EIGEN_STRONG_INLINE Packet2cf pcmp_eq(const Packet2cf &a, const Packet2cf &b)
Definition: AltiVec/Complex.h:353
EIGEN_STRONG_INLINE Packet4f pselect(const Packet4f &mask, const Packet4f &a, const Packet4f &b)
Definition: AltiVec/PacketMath.h:1474

References a, b, Eigen::internal::pcmp_eq(), Eigen::internal::pselect(), and Eigen::internal::pzero().

Member Data Documentation

◆ ThenElseAreSame

template<typename ThenScalar , typename ElseScalar , typename ConditionScalar >
constexpr bool Eigen::internal::scalar_boolean_select_op< ThenScalar, ElseScalar, ConditionScalar >::ThenElseAreSame = is_same<ThenScalar, ElseScalar>::value
staticconstexpr

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