aboutsummaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
authorGravatar Gael Guennebaud <g.gael@free.fr>2016-06-15 09:58:49 +0200
committerGravatar Gael Guennebaud <g.gael@free.fr>2016-06-15 09:58:49 +0200
commit4794834397aa0e2a6570a2f736b65b72b7db1aad (patch)
treebca27753c733cdfb9313faebd0fd7b4501382d2a
parentc55035b9c0c894551850d122ac8b0cf1a053c28e (diff)
Propagate functor to ScalarBinaryOpTraits
-rw-r--r--Eigen/src/Core/GlobalFunctions.h6
-rw-r--r--Eigen/src/Core/util/Macros.h4
2 files changed, 5 insertions, 5 deletions
diff --git a/Eigen/src/Core/GlobalFunctions.h b/Eigen/src/Core/GlobalFunctions.h
index 5ffa6c694..0361b40ad 100644
--- a/Eigen/src/Core/GlobalFunctions.h
+++ b/Eigen/src/Core/GlobalFunctions.h
@@ -103,7 +103,7 @@ namespace Eigen
#else
template<typename Derived,typename ScalarExponent>
inline typename internal::enable_if< !(internal::is_same<typename Derived::Scalar,ScalarExponent>::value)
- && ScalarBinaryOpTraits<typename Derived::Scalar,ScalarExponent>::Defined,
+ && ScalarBinaryOpTraits<typename Derived::Scalar,ScalarExponent,internal::scalar_pow_op<typename Derived::Scalar,ScalarExponent> >::Defined,
const EIGEN_EXPR_BINARYOP_SCALAR_RETURN_TYPE(Derived,ScalarExponent,pow) >::type
pow(const Eigen::ArrayBase<Derived>& x, const ScalarExponent& exponent) {
return x.derived().pow(exponent);
@@ -157,7 +157,7 @@ namespace Eigen
#else
template<typename Scalar, typename Derived>
inline typename internal::enable_if< !(internal::is_same<typename Derived::Scalar,Scalar>::value)
- && ScalarBinaryOpTraits<Scalar,typename Derived::Scalar>::Defined,
+ && ScalarBinaryOpTraits<Scalar,typename Derived::Scalar,internal::scalar_pow_op<Scalar,typename Derived::Scalar> >::Defined,
const EIGEN_SCALAR_BINARYOP_EXPR_RETURN_TYPE(Scalar,Derived,pow) >::type
pow(const Scalar& x, const Eigen::ArrayBase<Derived>& exponents)
{
@@ -188,7 +188,7 @@ namespace Eigen
#else
template<typename Scalar, typename Derived>
inline typename internal::enable_if< !(internal::is_same<typename Derived::Scalar,Scalar>::value)
- && ScalarBinaryOpTraits<Scalar,typename Derived::Scalar>::Defined,
+ && ScalarBinaryOpTraits<Scalar,typename Derived::Scalar,internal::scalar_pow_op<Scalar,typename Derived::Scalar> >::Defined,
const EIGEN_SCALAR_BINARYOP_EXPR_RETURN_TYPE(Scalar,Derived,quotient) >::type
operator/(const Scalar& s, const Eigen::ArrayBase<Derived>& a)
{
diff --git a/Eigen/src/Core/util/Macros.h b/Eigen/src/Core/util/Macros.h
index 031e0892e..87cc44657 100644
--- a/Eigen/src/Core/util/Macros.h
+++ b/Eigen/src/Core/util/Macros.h
@@ -914,7 +914,7 @@ namespace Eigen {
} \
\
template <typename T> EIGEN_DEVICE_FUNC inline \
- typename internal::enable_if<ScalarBinaryOpTraits<Scalar,T>::Defined, \
+ typename internal::enable_if<ScalarBinaryOpTraits<Scalar,T,EIGEN_CAT(EIGEN_CAT(internal::scalar_,OPNAME),_op)<Scalar,T> >::Defined, \
const EIGEN_EXPR_BINARYOP_SCALAR_RETURN_TYPE(Derived,T,OPNAME) >::type \
(METHOD)(const T& scalar) const { \
return EIGEN_EXPR_BINARYOP_SCALAR_RETURN_TYPE(Derived,T,OPNAME)(derived(), \
@@ -930,7 +930,7 @@ namespace Eigen {
} \
\
template <typename T> EIGEN_DEVICE_FUNC inline friend \
- typename internal::enable_if<ScalarBinaryOpTraits<T,Scalar>::Defined, \
+ typename internal::enable_if<ScalarBinaryOpTraits<T,Scalar,EIGEN_CAT(EIGEN_CAT(internal::scalar_,OPNAME),_op)<T,Scalar> >::Defined, \
const EIGEN_SCALAR_BINARYOP_EXPR_RETURN_TYPE(T,Derived,OPNAME) >::type \
(METHOD)(const T& scalar, const StorageBaseType& matrix) { \
return EIGEN_SCALAR_BINARYOP_EXPR_RETURN_TYPE(T,Derived,OPNAME)( \