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

#include <Visitor.h>

Public Types

using result_type = Index
 
using Packet = typename packet_traits< Scalar >::type
 

Public Member Functions

EIGEN_DEVICE_FUNC void init (const Scalar &value, Index, Index)
 
EIGEN_DEVICE_FUNC void init (const Scalar &value, Index)
 
EIGEN_DEVICE_FUNC Index count_redux (const Packet &p) const
 
EIGEN_DEVICE_FUNC void initpacket (const Packet &p, Index, Index)
 
EIGEN_DEVICE_FUNC void initpacket (const Packet &p, Index)
 
EIGEN_DEVICE_FUNC void operator() (const Scalar &value, Index, Index)
 
EIGEN_DEVICE_FUNC void operator() (const Scalar &value, Index)
 
EIGEN_DEVICE_FUNC void packet (const Packet &p, Index, Index)
 
EIGEN_DEVICE_FUNC void packet (const Packet &p, Index)
 

Public Attributes

Index res = 0
 

Member Typedef Documentation

◆ Packet

template<typename Scalar >
using Eigen::internal::count_visitor< Scalar >::Packet = typename packet_traits<Scalar>::type

◆ result_type

template<typename Scalar >
using Eigen::internal::count_visitor< Scalar >::result_type = Index

Member Function Documentation

◆ count_redux()

template<typename Scalar >
EIGEN_DEVICE_FUNC Index Eigen::internal::count_visitor< Scalar >::count_redux ( const Packet p) const
inline
606  {
607  const Packet cst_one = pset1<Packet>(Scalar(1));
608  Packet true_vals = pandnot(cst_one, pcmp_eq(p, pzero(p)));
609  Scalar num_true = predux(true_vals);
610  return static_cast<Index>(num_true);
611  }
float * p
Definition: Tutorial_Map_using.cpp:9
SCALAR Scalar
Definition: bench_gemm.cpp:45
EIGEN_STRONG_INLINE Packet8f pzero(const Packet8f &)
Definition: AVX/PacketMath.h:774
EIGEN_STRONG_INLINE Packet8h pandnot(const Packet8h &a, const Packet8h &b)
Definition: AVX/PacketMath.h:2323
EIGEN_DEVICE_FUNC unpacket_traits< Packet >::type predux(const Packet &a)
Definition: GenericPacketMath.h:1232
EIGEN_STRONG_INLINE Packet2cf pcmp_eq(const Packet2cf &a, const Packet2cf &b)
Definition: AltiVec/Complex.h:353
EIGEN_DEFAULT_DENSE_INDEX_TYPE Index
The Index type as used for the API.
Definition: Meta.h:83

References p, Eigen::internal::pandnot(), Eigen::internal::pcmp_eq(), Eigen::internal::predux(), and Eigen::internal::pzero().

Referenced by Eigen::internal::count_visitor< Scalar >::initpacket(), and Eigen::internal::count_visitor< Scalar >::packet().

◆ init() [1/2]

template<typename Scalar >
EIGEN_DEVICE_FUNC void Eigen::internal::count_visitor< Scalar >::init ( const Scalar value,
Index   
)
inline
605 { res = value != Scalar(0) ? 1 : 0; }
squared absolute value
Definition: GlobalFunctions.h:87
Index res
Definition: Visitor.h:622

References Eigen::internal::count_visitor< Scalar >::res, and Eigen::value.

◆ init() [2/2]

template<typename Scalar >
EIGEN_DEVICE_FUNC void Eigen::internal::count_visitor< Scalar >::init ( const Scalar value,
Index  ,
Index   
)
inline
604 { res = value != Scalar(0) ? 1 : 0; }

References Eigen::internal::count_visitor< Scalar >::res, and Eigen::value.

◆ initpacket() [1/2]

template<typename Scalar >
EIGEN_DEVICE_FUNC void Eigen::internal::count_visitor< Scalar >::initpacket ( const Packet p,
Index   
)
inline
613 { res = count_redux(p); }
EIGEN_DEVICE_FUNC Index count_redux(const Packet &p) const
Definition: Visitor.h:606

References Eigen::internal::count_visitor< Scalar >::count_redux(), p, and Eigen::internal::count_visitor< Scalar >::res.

◆ initpacket() [2/2]

template<typename Scalar >
EIGEN_DEVICE_FUNC void Eigen::internal::count_visitor< Scalar >::initpacket ( const Packet p,
Index  ,
Index   
)
inline

◆ operator()() [1/2]

template<typename Scalar >
EIGEN_DEVICE_FUNC void Eigen::internal::count_visitor< Scalar >::operator() ( const Scalar value,
Index   
)
inline
617  {
618  if (value != Scalar(0)) res++;
619  }

References Eigen::internal::count_visitor< Scalar >::res, and Eigen::value.

◆ operator()() [2/2]

template<typename Scalar >
EIGEN_DEVICE_FUNC void Eigen::internal::count_visitor< Scalar >::operator() ( const Scalar value,
Index  ,
Index   
)
inline
614  {
615  if (value != Scalar(0)) res++;
616  }

References Eigen::internal::count_visitor< Scalar >::res, and Eigen::value.

◆ packet() [1/2]

◆ packet() [2/2]

Member Data Documentation

◆ res


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