From 8a3f552e39d3fee3ada1cfc1eb75b179c77f2a78 Mon Sep 17 00:00:00 2001 From: Jitse Niesen Date: Mon, 24 May 2010 17:43:27 +0100 Subject: [PATCH] Return matrices by constant reference where possible. This changes the return type of: * eigenvectors() and eigenvalues() in ComplexEigenSolver * eigenvalues() in EigenSolver * eigenvectors() and eigenvalues() in SelfAdjointEigenSolver --- Eigen/src/Eigenvalues/ComplexEigenSolver.h | 8 ++++++-- Eigen/src/Eigenvalues/EigenSolver.h | 4 ++-- Eigen/src/Eigenvalues/SelfAdjointEigenSolver.h | 8 ++++---- 3 files changed, 12 insertions(+), 8 deletions(-) diff --git a/Eigen/src/Eigenvalues/ComplexEigenSolver.h b/Eigen/src/Eigenvalues/ComplexEigenSolver.h index f6b90d70e..5f956e49d 100644 --- a/Eigen/src/Eigenvalues/ComplexEigenSolver.h +++ b/Eigen/src/Eigenvalues/ComplexEigenSolver.h @@ -135,6 +135,8 @@ template class ComplexEigenSolver } /** \brief Returns the eigenvectors of given matrix. + * + * \returns A const reference to the matrix whose columns are the eigenvectors. * * It is assumed that either the constructor * ComplexEigenSolver(const MatrixType& matrix) or the member @@ -151,13 +153,15 @@ template class ComplexEigenSolver * Example: \include ComplexEigenSolver_eigenvectors.cpp * Output: \verbinclude ComplexEigenSolver_eigenvectors.out */ - EigenvectorType eigenvectors() const + const EigenvectorType& eigenvectors() const { ei_assert(m_isInitialized && "ComplexEigenSolver is not initialized."); return m_eivec; } /** \brief Returns the eigenvalues of given matrix. + * + * \returns A const reference to the column vector containing the eigenvalues. * * It is assumed that either the constructor * ComplexEigenSolver(const MatrixType& matrix) or the member @@ -171,7 +175,7 @@ template class ComplexEigenSolver * Example: \include ComplexEigenSolver_eigenvalues.cpp * Output: \verbinclude ComplexEigenSolver_eigenvalues.out */ - EigenvalueType eigenvalues() const + const EigenvalueType& eigenvalues() const { ei_assert(m_isInitialized && "ComplexEigenSolver is not initialized."); return m_eivalues; diff --git a/Eigen/src/Eigenvalues/EigenSolver.h b/Eigen/src/Eigenvalues/EigenSolver.h index 7713e04b9..b619dc2eb 100644 --- a/Eigen/src/Eigenvalues/EigenSolver.h +++ b/Eigen/src/Eigenvalues/EigenSolver.h @@ -223,7 +223,7 @@ template class EigenSolver /** \brief Returns the eigenvalues of given matrix. * - * \returns Column vector containing the eigenvalues. + * \returns A const reference to the column vector containing the eigenvalues. * * \pre Either the constructor EigenSolver(const MatrixType&) or the * member function compute(const MatrixType&) has been called before. @@ -237,7 +237,7 @@ template class EigenSolver * \sa eigenvectors(), pseudoEigenvalueMatrix(), * MatrixBase::eigenvalues() */ - EigenvalueType eigenvalues() const + const EigenvalueType& eigenvalues() const { ei_assert(m_isInitialized && "EigenSolver is not initialized."); return m_eivalues; diff --git a/Eigen/src/Eigenvalues/SelfAdjointEigenSolver.h b/Eigen/src/Eigenvalues/SelfAdjointEigenSolver.h index 25b18dd8d..1abbed97b 100644 --- a/Eigen/src/Eigenvalues/SelfAdjointEigenSolver.h +++ b/Eigen/src/Eigenvalues/SelfAdjointEigenSolver.h @@ -264,7 +264,7 @@ template class SelfAdjointEigenSolver /** \brief Returns the eigenvectors of given matrix (pencil). * - * \returns %Matrix whose columns are the eigenvectors. + * \returns A const reference to the matrix whose columns are the eigenvectors. * * \pre The eigenvectors have been computed before. * @@ -280,7 +280,7 @@ template class SelfAdjointEigenSolver * * \sa eigenvalues() */ - MatrixType eigenvectors() const + const MatrixType& eigenvectors() const { #ifndef NDEBUG ei_assert(m_eigenvectorsOk); @@ -290,7 +290,7 @@ template class SelfAdjointEigenSolver /** \brief Returns the eigenvalues of given matrix (pencil). * - * \returns Column vector containing the eigenvalues. + * \returns A const reference to the column vector containing the eigenvalues. * * \pre The eigenvalues have been computed before. * @@ -302,7 +302,7 @@ template class SelfAdjointEigenSolver * * \sa eigenvectors(), MatrixBase::eigenvalues() */ - RealVectorType eigenvalues() const { return m_eivalues; } + const RealVectorType& eigenvalues() const { return m_eivalues; } /** \brief Computes the positive-definite square root of the matrix. *