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
This commit is contained in:
Jitse Niesen 2010-05-24 17:43:27 +01:00
parent 7a43a4408b
commit 8a3f552e39
3 changed files with 12 additions and 8 deletions

View File

@ -135,6 +135,8 @@ template<typename _MatrixType> 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<typename _MatrixType> 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<typename _MatrixType> 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;

View File

@ -223,7 +223,7 @@ template<typename _MatrixType> 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<typename _MatrixType> 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;

View File

@ -264,7 +264,7 @@ template<typename _MatrixType> 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<typename _MatrixType> class SelfAdjointEigenSolver
*
* \sa eigenvalues()
*/
MatrixType eigenvectors() const
const MatrixType& eigenvectors() const
{
#ifndef NDEBUG
ei_assert(m_eigenvectorsOk);
@ -290,7 +290,7 @@ template<typename _MatrixType> 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<typename _MatrixType> 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.
*