Attempt to fix MatrixExponential/Function related warnings.
diff --git a/unsupported/Eigen/src/MatrixFunctions/MatrixExponential.h b/unsupported/Eigen/src/MatrixFunctions/MatrixExponential.h index a4d8277..2998092 100644 --- a/unsupported/Eigen/src/MatrixFunctions/MatrixExponential.h +++ b/unsupported/Eigen/src/MatrixFunctions/MatrixExponential.h
@@ -132,7 +132,7 @@ typedef typename NumTraits<Scalar>::Real RealScalar; /** \brief Reference to matrix whose exponential is to be computed. */ - const MatrixType& m_M; + const typename ei_nested<MatrixType>::type m_M; /** \brief Even-degree terms in numerator of Padé approximant. */ MatrixType m_U; @@ -313,7 +313,7 @@ template <typename ResultType> inline void evalTo(ResultType& result) const { - const typename ei_eval<Derived>::type srcEvaluated = m_src.eval(); + const typename Derived::PlainObject srcEvaluated = m_src.eval(); MatrixExponential<typename Derived::PlainObject> me(srcEvaluated); me.compute(result); }
diff --git a/unsupported/Eigen/src/MatrixFunctions/MatrixFunction.h b/unsupported/Eigen/src/MatrixFunctions/MatrixFunction.h index 9944675..17040c5 100644 --- a/unsupported/Eigen/src/MatrixFunctions/MatrixFunction.h +++ b/unsupported/Eigen/src/MatrixFunctions/MatrixFunction.h
@@ -117,7 +117,7 @@ } private: - const MatrixType& m_A; /**< \brief Reference to argument of matrix function. */ + const typename ei_nested<MatrixType>::type m_A; /**< \brief Reference to argument of matrix function. */ StemFunction *m_f; /**< \brief Stem function for matrix function under consideration */ MatrixFunction& operator=(const MatrixFunction&); @@ -167,7 +167,7 @@ void computeOffDiagonal(); DynMatrixType solveTriangularSylvester(const DynMatrixType& A, const DynMatrixType& B, const DynMatrixType& C); - const MatrixType& m_A; /**< \brief Reference to argument of matrix function. */ + const typename ei_nested<MatrixType>::type m_A; /**< \brief Reference to argument of matrix function. */ StemFunction *m_f; /**< \brief Stem function for matrix function under consideration */ MatrixType m_T; /**< \brief Triangular part of Schur decomposition */ MatrixType m_U; /**< \brief Unitary part of Schur decomposition */ @@ -520,7 +520,7 @@ template <typename ResultType> inline void evalTo(ResultType& result) const { - const typename ei_eval<Derived>::type Aevaluated = m_A.eval(); + const typename Derived::PlainObject Aevaluated = m_A.eval(); MatrixFunction<typename Derived::PlainObject> mf(Aevaluated, m_f); mf.compute(result); } @@ -529,7 +529,7 @@ Index cols() const { return m_A.cols(); } private: - const Derived& m_A; + const typename ei_nested<Derived>::type m_A; StemFunction *m_f; MatrixFunctionReturnValue& operator=(const MatrixFunctionReturnValue&);