diff options
author | Rasmus Munk Larsen <rmlarsen@google.com> | 2019-05-03 15:49:09 -0700 |
---|---|---|
committer | Rasmus Munk Larsen <rmlarsen@google.com> | 2019-05-03 15:49:09 -0700 |
commit | 8e33844fc76bcafb70bcf71d5fd8355ba6255902 (patch) | |
tree | 394343ffec7d4069ceed85505af882c419958ce2 /Eigen/src | |
parent | e9f0eb8a5e6c5b17d85cff6ea45fe9aec35a0248 (diff) |
Fix traits for scalar_logistic_op.
Diffstat (limited to 'Eigen/src')
-rw-r--r-- | Eigen/src/Core/functors/UnaryFunctors.h | 18 |
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 |