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

@ -907,7 +907,9 @@ 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