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>
struct functor_traits<scalar_logistic_op<T> > {
struct functor_traits<scalar_logistic_op<T>> {
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 &&
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 Eigen