diff --git a/Eigen/src/Array/PartialRedux.h b/Eigen/src/Array/PartialRedux.h index 3a052ca8a..8173a1854 100644 --- a/Eigen/src/Array/PartialRedux.h +++ b/Eigen/src/Array/PartialRedux.h @@ -160,13 +160,15 @@ template class PartialRedux public: typedef typename ei_traits::Scalar Scalar; + typedef typename NumTraits::Real RealScalar; typedef typename ei_meta_if::ret, ExpressionType, const ExpressionType&>::ret ExpressionTypeNested; - template class Functor> struct ReturnType + template class Functor, + typename Scalar = typename ei_traits::Scalar> struct ReturnType { typedef PartialReduxExpr::Scalar>, + Functor, Direction > Type; }; @@ -217,7 +219,7 @@ template class PartialRedux * Output: \verbinclude PartialRedux_squaredNorm.out * * \sa MatrixBase::squaredNorm() */ - const typename ReturnType::Type squaredNorm() const + const typename ReturnType::Type squaredNorm() const { return _expression(); } /** \returns a row (or column) vector expression of the norm @@ -227,7 +229,7 @@ template class PartialRedux * Output: \verbinclude PartialRedux_norm.out * * \sa MatrixBase::norm() */ - const typename ReturnType::Type norm() const + const typename ReturnType::Type norm() const { return _expression(); } /** \returns a row (or column) vector expression of the sum