Fix traits for scalar_logistic_op.

This commit is contained in:
Rasmus Munk Larsen 2019-05-03 15:49:09 -07:00
parent e9f0eb8a5e
commit 8e33844fc7

View File

@ -905,9 +905,11 @@ struct scalar_logistic_op {
} }
}; };
template <typename T> template <typename T>
struct functor_traits<scalar_logistic_op<T> > { struct functor_traits<scalar_logistic_op<T>> {
enum { enum {
Cost = NumTraits<T>::AddCost * 2 + NumTraits<T>::MulCost * 6, Cost = NumTraits<T>::AddCost * 2 + NumTraits<T>::MulCost * 6 +
scalar_div_cost<T, packet_traits<T>::HasDiv>::value +
functor_traits<scalar_exp_op<T>>::Cost,
PacketAccess = packet_traits<T>::HasAdd && packet_traits<T>::HasDiv && PacketAccess = packet_traits<T>::HasAdd && packet_traits<T>::HasDiv &&
packet_traits<T>::HasNegate && packet_traits<T>::HasExp packet_traits<T>::HasNegate && packet_traits<T>::HasExp
}; };
@ -976,6 +978,18 @@ struct scalar_logistic_op<float> {
} }
}; };
template <>
struct functor_traits<scalar_logistic_op<float>> {
enum {
Cost = NumTraits<float>::AddCost * 12 + NumTraits<float>::MulCost * 11 +
scalar_div_cost<float, packet_traits<float>::HasDiv>::value,
PacketAccess = packet_traits<float>::HasAdd &&
packet_traits<float>::HasMul &&
packet_traits<float>::HasDiv &&
packet_traits<float>::HasMax && packet_traits<float>::HasMin
};
};
} // end namespace internal } // end namespace internal
} // end namespace Eigen } // end namespace Eigen