Propagate functor to ScalarBinaryOpTraits

This commit is contained in:
Gael Guennebaud 2016-06-15 09:58:49 +02:00
parent c55035b9c0
commit 4794834397
2 changed files with 5 additions and 5 deletions

View File

@ -103,7 +103,7 @@ namespace Eigen
#else #else
template<typename Derived,typename ScalarExponent> template<typename Derived,typename ScalarExponent>
inline typename internal::enable_if< !(internal::is_same<typename Derived::Scalar,ScalarExponent>::value) 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 const EIGEN_EXPR_BINARYOP_SCALAR_RETURN_TYPE(Derived,ScalarExponent,pow) >::type
pow(const Eigen::ArrayBase<Derived>& x, const ScalarExponent& exponent) { pow(const Eigen::ArrayBase<Derived>& x, const ScalarExponent& exponent) {
return x.derived().pow(exponent); return x.derived().pow(exponent);
@ -157,7 +157,7 @@ namespace Eigen
#else #else
template<typename Scalar, typename Derived> template<typename Scalar, typename Derived>
inline typename internal::enable_if< !(internal::is_same<typename Derived::Scalar,Scalar>::value) 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 const EIGEN_SCALAR_BINARYOP_EXPR_RETURN_TYPE(Scalar,Derived,pow) >::type
pow(const Scalar& x, const Eigen::ArrayBase<Derived>& exponents) pow(const Scalar& x, const Eigen::ArrayBase<Derived>& exponents)
{ {
@ -188,7 +188,7 @@ namespace Eigen
#else #else
template<typename Scalar, typename Derived> template<typename Scalar, typename Derived>
inline typename internal::enable_if< !(internal::is_same<typename Derived::Scalar,Scalar>::value) 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 const EIGEN_SCALAR_BINARYOP_EXPR_RETURN_TYPE(Scalar,Derived,quotient) >::type
operator/(const Scalar& s, const Eigen::ArrayBase<Derived>& a) operator/(const Scalar& s, const Eigen::ArrayBase<Derived>& a)
{ {

View File

@ -914,7 +914,7 @@ namespace Eigen {
} \ } \
\ \
template <typename T> EIGEN_DEVICE_FUNC inline \ 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 \ const EIGEN_EXPR_BINARYOP_SCALAR_RETURN_TYPE(Derived,T,OPNAME) >::type \
(METHOD)(const T& scalar) const { \ (METHOD)(const T& scalar) const { \
return EIGEN_EXPR_BINARYOP_SCALAR_RETURN_TYPE(Derived,T,OPNAME)(derived(), \ 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 \ 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 \ const EIGEN_SCALAR_BINARYOP_EXPR_RETURN_TYPE(T,Derived,OPNAME) >::type \
(METHOD)(const T& scalar, const StorageBaseType& matrix) { \ (METHOD)(const T& scalar, const StorageBaseType& matrix) { \
return EIGEN_SCALAR_BINARYOP_EXPR_RETURN_TYPE(T,Derived,OPNAME)( \ return EIGEN_SCALAR_BINARYOP_EXPR_RETURN_TYPE(T,Derived,OPNAME)( \