aboutsummaryrefslogtreecommitdiffhomepage
path: root/Eigen/src/Core/functors
diff options
context:
space:
mode:
authorGravatar Rasmus Munk Larsen <rmlarsen@google.com>2019-05-03 15:49:09 -0700
committerGravatar Rasmus Munk Larsen <rmlarsen@google.com>2019-05-03 15:49:09 -0700
commit8e33844fc76bcafb70bcf71d5fd8355ba6255902 (patch)
tree394343ffec7d4069ceed85505af882c419958ce2 /Eigen/src/Core/functors
parente9f0eb8a5e6c5b17d85cff6ea45fe9aec35a0248 (diff)
Fix traits for scalar_logistic_op.
Diffstat (limited to 'Eigen/src/Core/functors')
-rw-r--r--Eigen/src/Core/functors/UnaryFunctors.h18
1 files changed, 16 insertions, 2 deletions
diff --git a/Eigen/src/Core/functors/UnaryFunctors.h b/Eigen/src/Core/functors/UnaryFunctors.h
index 03f167ac9..fb5fddb76 100644
--- a/Eigen/src/Core/functors/UnaryFunctors.h
+++ b/Eigen/src/Core/functors/UnaryFunctors.h
@@ -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