mirror of
https://gitlab.com/libeigen/eigen.git
synced 2025-08-12 19:59:05 +08:00
Propagate functor to ScalarBinaryOpTraits
This commit is contained in:
parent
c55035b9c0
commit
4794834397
@ -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)
|
||||||
{
|
{
|
||||||
|
@ -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)( \
|
||||||
|
Loading…
x
Reference in New Issue
Block a user