Eigen::internal::scalar_boolean_not_op< Scalar > Struct Template Reference

Template functor to compute the logical not of a scalar as if it were a boolean. More...

#include <UnaryFunctors.h>

Public Types

using result_type = Scalar
 

Public Member Functions

EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE Scalar operator() (const Scalar &a) const
 
template<typename Packet >
EIGEN_STRONG_INLINE Packet packetOp (const Packet &a) const
 

Detailed Description

template<typename Scalar>
struct Eigen::internal::scalar_boolean_not_op< Scalar >

Template functor to compute the logical not of a scalar as if it were a boolean.

See also
class CwiseUnaryOp, ArrayBase::operator!

Member Typedef Documentation

◆ result_type

template<typename Scalar >
using Eigen::internal::scalar_boolean_not_op< Scalar >::result_type = Scalar

Member Function Documentation

◆ operator()()

template<typename Scalar >
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE Scalar Eigen::internal::scalar_boolean_not_op< Scalar >::operator() ( const Scalar a) const
inline
1103  {
1104  return a == Scalar(0) ? Scalar(1) : Scalar(0);
1105  }
SCALAR Scalar
Definition: bench_gemm.cpp:45
const Scalar * a
Definition: level2_cplx_impl.h:32

References a.

◆ packetOp()

template<typename Scalar >
template<typename Packet >
EIGEN_STRONG_INLINE Packet Eigen::internal::scalar_boolean_not_op< Scalar >::packetOp ( const Packet a) const
inline
1107  {
1108  const Packet cst_one = pset1<Packet>(Scalar(1));
1109  Packet not_a = pcmp_eq(a, pzero(a));
1110  return pand(not_a, cst_one);
1111  }
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 Packet8h pand(const Packet8h &a, const Packet8h &b)
Definition: AVX/PacketMath.h:2319

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


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