diff options
author | Rasmus Munk Larsen <rmlarsen@google.com> | 2019-05-09 11:07:04 -0700 |
---|---|---|
committer | Rasmus Munk Larsen <rmlarsen@google.com> | 2019-05-09 11:07:04 -0700 |
commit | d3ef7cf03ed080fb5b35045b73812bb34c6119a3 (patch) | |
tree | 86dc43438bd4da017cf8c40ab9b7f1e007156b68 /Eigen/src/Core/functors | |
parent | 45b40d91ca82abbafa0566504c132641bd5bbafe (diff) |
Fix build with clang on Windows.
Diffstat (limited to 'Eigen/src/Core/functors')
-rw-r--r-- | Eigen/src/Core/functors/UnaryFunctors.h | 31 |
1 files changed, 13 insertions, 18 deletions
diff --git a/Eigen/src/Core/functors/UnaryFunctors.h b/Eigen/src/Core/functors/UnaryFunctors.h index 7da1ccb9e..56522a38f 100644 --- a/Eigen/src/Core/functors/UnaryFunctors.h +++ b/Eigen/src/Core/functors/UnaryFunctors.h @@ -904,16 +904,6 @@ struct scalar_logistic_op { return pdiv(one, padd(one, pexp(pnegate(x)))); } }; -template <typename T> -struct functor_traits<scalar_logistic_op<T> > { - enum { - 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 - }; -}; /** \internal * \brief Template specialization of the logistic function for float. @@ -978,15 +968,20 @@ struct scalar_logistic_op<float> { } }; -template <> -struct functor_traits<scalar_logistic_op<float> > { +template <typename T> +struct functor_traits<scalar_logistic_op<T> > { 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 + Cost = scalar_div_cost<T, packet_traits<T>::HasDiv>::value + + (internal::is_same<T, float>::value + ? NumTraits<T>::AddCost * 12 + NumTraits<T>::MulCost * 11 + : NumTraits<T>::AddCost * 2 + + functor_traits<scalar_exp_op<T> >::Cost), + PacketAccess = + packet_traits<T>::HasAdd && packet_traits<T>::HasDiv && + (internal::is_same<T, float>::value + ? packet_traits<T>::HasMul && packet_traits<T>::HasMax && + packet_traits<T>::HasMin + : packet_traits<T>::HasNegate && packet_traits<T>::HasExp) }; }; |