mirror of
https://gitlab.com/libeigen/eigen.git
synced 2025-08-11 19:29:02 +08:00
Advertize the packet api of the tensor reducers iff the corresponding packet primitives are available.
This commit is contained in:
parent
84df9142e7
commit
bb3ff8e9d9
@ -87,7 +87,7 @@ struct functor_traits<scalar_sigmoid_op<T> > {
|
||||
// Standard reduction functors
|
||||
template <typename T> struct SumReducer
|
||||
{
|
||||
static const bool PacketAccess = true;
|
||||
static const bool PacketAccess = packet_traits<T>::HasAdd;
|
||||
static const bool IsStateful = false;
|
||||
|
||||
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE void reduce(const T t, T* accum) const {
|
||||
@ -121,7 +121,7 @@ template <typename T> struct SumReducer
|
||||
|
||||
template <typename T> struct MeanReducer
|
||||
{
|
||||
static const bool PacketAccess = !NumTraits<T>::IsInteger;
|
||||
static const bool PacketAccess = packet_traits<T>::HasAdd && !NumTraits<T>::IsInteger;
|
||||
static const bool IsStateful = true;
|
||||
|
||||
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE
|
||||
@ -164,7 +164,7 @@ template <typename T> struct MeanReducer
|
||||
|
||||
template <typename T> struct MaxReducer
|
||||
{
|
||||
static const bool PacketAccess = true;
|
||||
static const bool PacketAccess = packet_traits<T>::HasMax;
|
||||
static const bool IsStateful = false;
|
||||
|
||||
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE void reduce(const T t, T* accum) const {
|
||||
@ -197,7 +197,7 @@ template <typename T> struct MaxReducer
|
||||
|
||||
template <typename T> struct MinReducer
|
||||
{
|
||||
static const bool PacketAccess = true;
|
||||
static const bool PacketAccess = packet_traits<T>::HasMin;
|
||||
static const bool IsStateful = false;
|
||||
|
||||
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE void reduce(const T t, T* accum) const {
|
||||
@ -231,7 +231,7 @@ template <typename T> struct MinReducer
|
||||
|
||||
template <typename T> struct ProdReducer
|
||||
{
|
||||
static const bool PacketAccess = true;
|
||||
static const bool PacketAccess = packet_traits<T>::HasMul;
|
||||
static const bool IsStateful = false;
|
||||
|
||||
EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE void reduce(const T t, T* accum) const {
|
||||
|
Loading…
x
Reference in New Issue
Block a user