aboutsummaryrefslogtreecommitdiffhomepage
path: root/Eigen/src/Core/functors
diff options
context:
space:
mode:
authorGravatar Rasmus Munk Larsen <rmlarsen@google.com>2019-05-09 11:07:04 -0700
committerGravatar Rasmus Munk Larsen <rmlarsen@google.com>2019-05-09 11:07:04 -0700
commitd3ef7cf03ed080fb5b35045b73812bb34c6119a3 (patch)
tree86dc43438bd4da017cf8c40ab9b7f1e007156b68 /Eigen/src/Core/functors
parent45b40d91ca82abbafa0566504c132641bd5bbafe (diff)
Fix build with clang on Windows.
Diffstat (limited to 'Eigen/src/Core/functors')
-rw-r--r--Eigen/src/Core/functors/UnaryFunctors.h31
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)
};
};