<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html><head><meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1"> <title>Eigen::EigenSolver Class Reference</title> <link href="doxygen.css" rel="stylesheet" type="text/css"> <link href="tabs.css" rel="stylesheet" type="text/css"> </head><body> <div align="left"><a href="http://www.mrpt.org/">Main MRPT website</a> > <b>C++ reference</b> </div> <div align="right"> <a href="index.html"><img border="0" src="mrpt_logo.png" alt="MRPT logo"></a> </div> <!-- Generated by Doxygen 1.7.5 --> <script type="text/javascript"> var searchBox = new SearchBox("searchBox", "search",false,'Search'); </script> <div id="navrow1" class="tabs"> <ul class="tablist"> <li><a href="index.html"><span>Main Page</span></a></li> <li><a href="pages.html"><span>Related Pages</span></a></li> <li><a href="modules.html"><span>Modules</span></a></li> <li><a href="namespaces.html"><span>Namespaces</span></a></li> <li class="current"><a href="annotated.html"><span>Classes</span></a></li> <li><a href="files.html"><span>Files</span></a></li> <li> <div id="MSearchBox" class="MSearchBoxInactive"> <div class="left"> <form id="FSearchBox" action="search.php" method="get"> <img id="MSearchSelect" src="search/mag.png" alt=""/> <input type="text" id="MSearchField" name="query" value="Search" size="20" accesskey="S" onfocus="searchBox.OnSearchFieldFocus(true)" onblur="searchBox.OnSearchFieldFocus(false)"/> </form> </div><div class="right"></div> </div> </li> </ul> </div> <div id="navrow2" class="tabs2"> <ul class="tablist"> <li><a href="annotated.html"><span>Class List</span></a></li> <li><a href="classes.html"><span>Class Index</span></a></li> <li><a href="inherits.html"><span>Class Hierarchy</span></a></li> <li><a href="functions.html"><span>Class Members</span></a></li> </ul> </div> <div id="nav-path" class="navpath"> <ul> <li class="navelem"><a class="el" href="namespace_eigen.html">Eigen</a> </li> <li class="navelem"><a class="el" href="class_eigen_1_1_eigen_solver.html">EigenSolver</a> </li> </ul> </div> </div> <div class="header"> <div class="summary"> <a href="#pub-types">Public Types</a> | <a href="#pub-methods">Public Member Functions</a> | <a href="#pro-types">Protected Types</a> | <a href="#pro-attribs">Protected Attributes</a> | <a href="#pri-methods">Private Member Functions</a> </div> <div class="headertitle"> <div class="title">Eigen::EigenSolver Class Reference<div class="ingroups"><a class="el" href="group___eigenvalues___module.html">Eigenvalues module</a></div></div> </div> </div> <div class="contents"> <!-- doxytag: class="Eigen::EigenSolver" --><hr/><a name="details" id="details"></a><h2>Detailed Description</h2> <div class="textblock"><p>Computes eigenvalues and eigenvectors of general matrices</p> <dl><dt><b>Template Parameters:</b></dt><dd> <table class=""> <tr><td class="paramname">_MatrixType</td><td>the type of the matrix of which we are computing the eigendecomposition; this is expected to be an instantiation of the <a class="el" href="class_eigen_1_1_matrix.html" title="The matrix class, also used for vectors and row-vectors.">Matrix</a> class template. Currently, only real matrices are supported.</td></tr> </table> </dd> </dl> <p>The eigenvalues and eigenvectors of a matrix <img class="formulaInl" alt="$ A $" src="form_128.png"/> are scalars <img class="formulaInl" alt="$ \lambda $" src="form_168.png"/> and vectors <img class="formulaInl" alt="$ v $" src="form_144.png"/> such that <img class="formulaInl" alt="$ Av = \lambda v $" src="form_169.png"/>. If <img class="formulaInl" alt="$ D $" src="form_170.png"/> is a diagonal matrix with the eigenvalues on the diagonal, and <img class="formulaInl" alt="$ V $" src="form_171.png"/> is a matrix with the eigenvectors as its columns, then <img class="formulaInl" alt="$ A V = V D $" src="form_172.png"/>. The matrix <img class="formulaInl" alt="$ V $" src="form_171.png"/> is almost always invertible, in which case we have <img class="formulaInl" alt="$ A = V D V^{-1} $" src="form_173.png"/>. This is called the eigendecomposition.</p> <p>The eigenvalues and eigenvectors of a matrix may be complex, even when the matrix is real. However, we can choose real matrices <img class="formulaInl" alt="$ V $" src="form_171.png"/> and <img class="formulaInl" alt="$ D $" src="form_170.png"/> satisfying <img class="formulaInl" alt="$ A V = V D $" src="form_172.png"/>, just like the eigendecomposition, if the matrix <img class="formulaInl" alt="$ D $" src="form_170.png"/> is not required to be diagonal, but if it is allowed to have blocks of the form </p> <p class="formulaDsp"> <img class="formulaDsp" alt="\[ \begin{bmatrix} u & v \\ -v & u \end{bmatrix} \]" src="form_174.png"/> </p> <p> (where <img class="formulaInl" alt="$ u $" src="form_175.png"/> and <img class="formulaInl" alt="$ v $" src="form_144.png"/> are real numbers) on the diagonal. These blocks correspond to complex eigenvalue pairs <img class="formulaInl" alt="$ u \pm iv $" src="form_176.png"/>. We call this variant of the eigendecomposition the pseudo-eigendecomposition.</p> <p>Call the function <a class="el" href="class_eigen_1_1_eigen_solver.html#a63d925aaf62dfaf5ee74cf42275ab52b" title="Computes eigendecomposition of given matrix.">compute()</a> to compute the eigenvalues and eigenvectors of a given matrix. Alternatively, you can use the <a class="el" href="class_eigen_1_1_eigen_solver.html#a0e4819babceaf34a6f3c33687c62ff34" title="Constructor; computes eigendecomposition of given matrix.">EigenSolver(const MatrixType&, bool)</a> constructor which computes the eigenvalues and eigenvectors at construction time. Once the eigenvalue and eigenvectors are computed, they can be retrieved with the <a class="el" href="class_eigen_1_1_eigen_solver.html#aeab8ed14f125fb0e91a01cd6ea05766a" title="Returns the eigenvalues of given matrix.">eigenvalues()</a> and <a class="el" href="class_eigen_1_1_eigen_solver.html#a3dcb2b713fb3c3f913288943f18aef02" title="Returns the eigenvectors of given matrix.">eigenvectors()</a> functions. The <a class="el" href="class_eigen_1_1_eigen_solver.html#aefc542612371d02f6f35cdc92f4a9b3c" title="Returns the block-diagonal matrix in the pseudo-eigendecomposition.">pseudoEigenvalueMatrix()</a> and <a class="el" href="class_eigen_1_1_eigen_solver.html#a69b08aaa9ca0d51750a8a889db214444" title="Returns the pseudo-eigenvectors of given matrix.">pseudoEigenvectors()</a> methods allow the construction of the pseudo-eigendecomposition.</p> <p>The documentation for <a class="el" href="class_eigen_1_1_eigen_solver.html#a0e4819babceaf34a6f3c33687c62ff34" title="Constructor; computes eigendecomposition of given matrix.">EigenSolver(const MatrixType&, bool)</a> contains an example of the typical use of this class.</p> <dl class="note"><dt><b>Note:</b></dt><dd>The implementation is adapted from <a href="http://math.nist.gov/javanumerics/jama/">JAMA</a> (public domain). Their code is based on EISPACK.</dd></dl> <dl class="see"><dt><b>See also:</b></dt><dd><a class="el" href="class_eigen_1_1_matrix_base.html#ab03aad357e4c41a9c920eda05c791489" title="Computes the eigenvalues of a matrix.">MatrixBase::eigenvalues()</a>, class <a class="el" href="class_eigen_1_1_complex_eigen_solver.html">ComplexEigenSolver</a>, class <a class="el" href="class_eigen_1_1_self_adjoint_eigen_solver.html">SelfAdjointEigenSolver</a> </dd></dl> </div> <p><a href="class_eigen_1_1_eigen_solver-members.html">List of all members.</a></p> <table class="memberdecls"> <tr><td colspan="2"><h2><a name="pub-types"></a> Public Types</h2></td></tr> <tr><td class="memItemLeft" align="right" valign="top">enum  </td><td class="memItemRight" valign="bottom">{ <br/>   <a class="el" href="class_eigen_1_1_eigen_solver.html#a115b1b5fa20a33384fad804eb391282faa3bacbe5ec10f31efe90d97c9429c7f8">RowsAtCompileTime</a> = MatrixType::RowsAtCompileTime, <a class="el" href="class_eigen_1_1_eigen_solver.html#a115b1b5fa20a33384fad804eb391282fa242aaf58ca995bc4a9c9f0be00f0344b">ColsAtCompileTime</a> = MatrixType::ColsAtCompileTime, <a class="el" href="class_eigen_1_1_eigen_solver.html#a115b1b5fa20a33384fad804eb391282faf537b362490cf07c747f0e4bdef4c412">Options</a> = MatrixType::Options, <a class="el" href="class_eigen_1_1_eigen_solver.html#a115b1b5fa20a33384fad804eb391282fa23110896fcbd2e89f67aefca41499283">MaxRowsAtCompileTime</a> = MatrixType::MaxRowsAtCompileTime, <br/>   <a class="el" href="class_eigen_1_1_eigen_solver.html#a115b1b5fa20a33384fad804eb391282fa1086a910235d37e8dbf25261c4ae522a">MaxColsAtCompileTime</a> = MatrixType::MaxColsAtCompileTime <br/> }</td></tr> <tr><td class="memItemLeft" align="right" valign="top">typedef _MatrixType </td><td class="memItemRight" valign="bottom"><a class="el" href="class_eigen_1_1_eigen_solver.html#a33638b7ba9a1306dc5db93c72bee6a75">MatrixType</a></td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Synonym for the template parameter <code>_MatrixType</code>. <a href="#a33638b7ba9a1306dc5db93c72bee6a75"></a><br/></td></tr> <tr><td class="memItemLeft" align="right" valign="top">typedef MatrixType::Scalar </td><td class="memItemRight" valign="bottom"><a class="el" href="class_eigen_1_1_eigen_solver.html#a53ad834c1c07660d62dbf64df8902d01">Scalar</a></td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Scalar type for matrices of type <a class="el" href="class_eigen_1_1_eigen_solver.html#a33638b7ba9a1306dc5db93c72bee6a75" title="Synonym for the template parameter _MatrixType.">MatrixType</a>. <a href="#a53ad834c1c07660d62dbf64df8902d01"></a><br/></td></tr> <tr><td class="memItemLeft" align="right" valign="top">typedef <a class="el" href="struct_eigen_1_1_num_traits.html">NumTraits</a>< <a class="el" href="class_eigen_1_1_eigen_solver.html#a53ad834c1c07660d62dbf64df8902d01">Scalar</a> >::Real </td><td class="memItemRight" valign="bottom"><a class="el" href="class_eigen_1_1_eigen_solver.html#a48359b1951896b084599f701fedc89b6">RealScalar</a></td></tr> <tr><td class="memItemLeft" align="right" valign="top">typedef MatrixType::Index </td><td class="memItemRight" valign="bottom"><a class="el" href="class_eigen_1_1_eigen_solver.html#aa4c07ebd27c4edc2b4919fb35709e076">Index</a></td></tr> <tr><td class="memItemLeft" align="right" valign="top">typedef <a class="el" href="classstd_1_1complex.html">std::complex</a>< <a class="el" href="class_eigen_1_1_eigen_solver.html#a48359b1951896b084599f701fedc89b6">RealScalar</a> > </td><td class="memItemRight" valign="bottom"><a class="el" href="class_eigen_1_1_eigen_solver.html#ae41f767b6e3bead4e00f2cce0d9bd78a">ComplexScalar</a></td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Complex scalar type for <a class="el" href="class_eigen_1_1_eigen_solver.html#a33638b7ba9a1306dc5db93c72bee6a75" title="Synonym for the template parameter _MatrixType.">MatrixType</a>. <a href="#ae41f767b6e3bead4e00f2cce0d9bd78a"></a><br/></td></tr> <tr><td class="memItemLeft" align="right" valign="top">typedef <a class="el" href="class_eigen_1_1_matrix.html">Matrix</a>< <a class="el" href="class_eigen_1_1_eigen_solver.html#ae41f767b6e3bead4e00f2cce0d9bd78a">ComplexScalar</a>, <br class="typebreak"/> ColsAtCompileTime, 1, Options <br class="typebreak"/> &~RowMajor, <br class="typebreak"/> MaxColsAtCompileTime, 1 > </td><td class="memItemRight" valign="bottom"><a class="el" href="class_eigen_1_1_eigen_solver.html#a4c9bfce317a39a6d7b6c74f297165c44">EigenvalueType</a></td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Type for vector of eigenvalues as returned by <a class="el" href="class_eigen_1_1_eigen_solver.html#aeab8ed14f125fb0e91a01cd6ea05766a" title="Returns the eigenvalues of given matrix.">eigenvalues()</a>. <a href="#a4c9bfce317a39a6d7b6c74f297165c44"></a><br/></td></tr> <tr><td class="memItemLeft" align="right" valign="top">typedef <a class="el" href="class_eigen_1_1_matrix.html">Matrix</a>< <a class="el" href="class_eigen_1_1_eigen_solver.html#ae41f767b6e3bead4e00f2cce0d9bd78a">ComplexScalar</a>, <br class="typebreak"/> RowsAtCompileTime, <br class="typebreak"/> ColsAtCompileTime, Options, <br class="typebreak"/> MaxRowsAtCompileTime, <br class="typebreak"/> MaxColsAtCompileTime > </td><td class="memItemRight" valign="bottom"><a class="el" href="class_eigen_1_1_eigen_solver.html#a29f69d88514fe5b44dba0987a36067c5">EigenvectorsType</a></td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Type for matrix of eigenvectors as returned by <a class="el" href="class_eigen_1_1_eigen_solver.html#a3dcb2b713fb3c3f913288943f18aef02" title="Returns the eigenvectors of given matrix.">eigenvectors()</a>. <a href="#a29f69d88514fe5b44dba0987a36067c5"></a><br/></td></tr> <tr><td colspan="2"><h2><a name="pub-methods"></a> Public Member Functions</h2></td></tr> <tr><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="class_eigen_1_1_eigen_solver.html#a000ce4d8025fb12747510f474aefda2a">EigenSolver</a> ()</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Default constructor. <a href="#a000ce4d8025fb12747510f474aefda2a"></a><br/></td></tr> <tr><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="class_eigen_1_1_eigen_solver.html#a5f2129b72ff838f1797c5142e81c8302">EigenSolver</a> (<a class="el" href="class_eigen_1_1_eigen_solver.html#aa4c07ebd27c4edc2b4919fb35709e076">Index</a> size)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Default constructor with memory preallocation. <a href="#a5f2129b72ff838f1797c5142e81c8302"></a><br/></td></tr> <tr><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="class_eigen_1_1_eigen_solver.html#a0e4819babceaf34a6f3c33687c62ff34">EigenSolver</a> (const <a class="el" href="class_eigen_1_1_eigen_solver.html#a33638b7ba9a1306dc5db93c72bee6a75">MatrixType</a> &matrix, bool computeEigenvectors=true)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Constructor; computes eigendecomposition of given matrix. <a href="#a0e4819babceaf34a6f3c33687c62ff34"></a><br/></td></tr> <tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="class_eigen_1_1_eigen_solver.html#a29f69d88514fe5b44dba0987a36067c5">EigenvectorsType</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="class_eigen_1_1_eigen_solver.html#a3dcb2b713fb3c3f913288943f18aef02">eigenvectors</a> () const </td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Returns the eigenvectors of given matrix. <a href="#a3dcb2b713fb3c3f913288943f18aef02"></a><br/></td></tr> <tr><td class="memItemLeft" align="right" valign="top">const <a class="el" href="class_eigen_1_1_eigen_solver.html#a33638b7ba9a1306dc5db93c72bee6a75">MatrixType</a> & </td><td class="memItemRight" valign="bottom"><a class="el" href="class_eigen_1_1_eigen_solver.html#a69b08aaa9ca0d51750a8a889db214444">pseudoEigenvectors</a> () const </td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Returns the pseudo-eigenvectors of given matrix. <a href="#a69b08aaa9ca0d51750a8a889db214444"></a><br/></td></tr> <tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="class_eigen_1_1_eigen_solver.html#a33638b7ba9a1306dc5db93c72bee6a75">MatrixType</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="class_eigen_1_1_eigen_solver.html#aefc542612371d02f6f35cdc92f4a9b3c">pseudoEigenvalueMatrix</a> () const </td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Returns the block-diagonal matrix in the pseudo-eigendecomposition. <a href="#aefc542612371d02f6f35cdc92f4a9b3c"></a><br/></td></tr> <tr><td class="memItemLeft" align="right" valign="top">const <a class="el" href="class_eigen_1_1_eigen_solver.html#a4c9bfce317a39a6d7b6c74f297165c44">EigenvalueType</a> & </td><td class="memItemRight" valign="bottom"><a class="el" href="class_eigen_1_1_eigen_solver.html#aeab8ed14f125fb0e91a01cd6ea05766a">eigenvalues</a> () const </td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Returns the eigenvalues of given matrix. <a href="#aeab8ed14f125fb0e91a01cd6ea05766a"></a><br/></td></tr> <tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="class_eigen_1_1_eigen_solver.html">EigenSolver</a> & </td><td class="memItemRight" valign="bottom"><a class="el" href="class_eigen_1_1_eigen_solver.html#a63d925aaf62dfaf5ee74cf42275ab52b">compute</a> (const <a class="el" href="class_eigen_1_1_eigen_solver.html#a33638b7ba9a1306dc5db93c72bee6a75">MatrixType</a> &matrix, bool computeEigenvectors=true)</td></tr> <tr><td class="mdescLeft"> </td><td class="mdescRight">Computes eigendecomposition of given matrix. <a href="#a63d925aaf62dfaf5ee74cf42275ab52b"></a><br/></td></tr> <tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="namespace_eigen.html#a85fad7b87587764e5cf6b513a9e0ee5e">ComputationInfo</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="class_eigen_1_1_eigen_solver.html#accb25b664ee06411d77b4e14f5b9975f">info</a> () const </td></tr> <tr><td colspan="2"><h2><a name="pro-types"></a> Protected Types</h2></td></tr> <tr><td class="memItemLeft" align="right" valign="top">typedef <a class="el" href="class_eigen_1_1_matrix.html">Matrix</a>< <a class="el" href="class_eigen_1_1_eigen_solver.html#a53ad834c1c07660d62dbf64df8902d01">Scalar</a>, <br class="typebreak"/> ColsAtCompileTime, 1, Options <br class="typebreak"/> &~RowMajor, <br class="typebreak"/> MaxColsAtCompileTime, 1 > </td><td class="memItemRight" valign="bottom"><a class="el" href="class_eigen_1_1_eigen_solver.html#a3cb1cf052261041befd84f7faa2e58d4">ColumnVectorType</a></td></tr> <tr><td colspan="2"><h2><a name="pro-attribs"></a> Protected Attributes</h2></td></tr> <tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="class_eigen_1_1_eigen_solver.html#a33638b7ba9a1306dc5db93c72bee6a75">MatrixType</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="class_eigen_1_1_eigen_solver.html#a15ed94fb399e638484caa0c87c2223d1">m_eivec</a></td></tr> <tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="class_eigen_1_1_eigen_solver.html#a4c9bfce317a39a6d7b6c74f297165c44">EigenvalueType</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="class_eigen_1_1_eigen_solver.html#a655089402852f52f884bd78c24a8ff93">m_eivalues</a></td></tr> <tr><td class="memItemLeft" align="right" valign="top">bool </td><td class="memItemRight" valign="bottom"><a class="el" href="class_eigen_1_1_eigen_solver.html#a5b3b9de715ae2525d58ab1c99f28dbe2">m_isInitialized</a></td></tr> <tr><td class="memItemLeft" align="right" valign="top">bool </td><td class="memItemRight" valign="bottom"><a class="el" href="class_eigen_1_1_eigen_solver.html#a9018cc9c83c7328df23bfb8be7d98086">m_eigenvectorsOk</a></td></tr> <tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="class_eigen_1_1_real_schur.html">RealSchur</a>< <a class="el" href="class_eigen_1_1_eigen_solver.html#a33638b7ba9a1306dc5db93c72bee6a75">MatrixType</a> > </td><td class="memItemRight" valign="bottom"><a class="el" href="class_eigen_1_1_eigen_solver.html#a21ce1c34fe263f03b66cd63335300c8d">m_realSchur</a></td></tr> <tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="class_eigen_1_1_eigen_solver.html#a33638b7ba9a1306dc5db93c72bee6a75">MatrixType</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="class_eigen_1_1_eigen_solver.html#a710d073eabb40d17f51f948f1ffe3c2f">m_matT</a></td></tr> <tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="class_eigen_1_1_eigen_solver.html#a3cb1cf052261041befd84f7faa2e58d4">ColumnVectorType</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="class_eigen_1_1_eigen_solver.html#ae8d23958914c08451a26a7334c07d39d">m_tmp</a></td></tr> <tr><td colspan="2"><h2><a name="pri-methods"></a> Private Member Functions</h2></td></tr> <tr><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="class_eigen_1_1_eigen_solver.html#ab13c4aac03fef5126aa611740ea8f34b">doComputeEigenvectors</a> ()</td></tr> </table> <hr/><h2>Member Typedef Documentation</h2> <a class="anchor" id="a3cb1cf052261041befd84f7faa2e58d4"></a><!-- doxytag: member="Eigen::EigenSolver::ColumnVectorType" ref="a3cb1cf052261041befd84f7faa2e58d4" args="" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">typedef <a class="el" href="class_eigen_1_1_matrix.html">Matrix</a><<a class="el" href="class_eigen_1_1_eigen_solver.html#a53ad834c1c07660d62dbf64df8902d01">Scalar</a>, ColsAtCompileTime, 1, Options & ~RowMajor, MaxColsAtCompileTime, 1> <a class="el" href="class_eigen_1_1_eigen_solver.html#a3cb1cf052261041befd84f7faa2e58d4">Eigen::EigenSolver::ColumnVectorType</a><code> [protected]</code></td> </tr> </table> </div> <div class="memdoc"> <p>Definition at line <a class="el" href="_eigenvalues_source.html#l00309">309</a> of file <a class="el" href="_eigenvalues_source.html">Eigenvalues</a>.</p> </div> </div> <a class="anchor" id="ae41f767b6e3bead4e00f2cce0d9bd78a"></a><!-- doxytag: member="Eigen::EigenSolver::ComplexScalar" ref="ae41f767b6e3bead4e00f2cce0d9bd78a" args="" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">typedef <a class="el" href="classstd_1_1complex.html">std::complex</a><<a class="el" href="class_eigen_1_1_eigen_solver.html#a48359b1951896b084599f701fedc89b6">RealScalar</a>> <a class="el" href="class_eigen_1_1_eigen_solver.html#ae41f767b6e3bead4e00f2cce0d9bd78a">Eigen::EigenSolver::ComplexScalar</a></td> </tr> </table> </div> <div class="memdoc"> <p>Complex scalar type for <a class="el" href="class_eigen_1_1_eigen_solver.html#a33638b7ba9a1306dc5db93c72bee6a75" title="Synonym for the template parameter _MatrixType.">MatrixType</a>. </p> <p>This is <code>std::complex<Scalar></code> if <a class="el" href="class_eigen_1_1_eigen_solver.html#a53ad834c1c07660d62dbf64df8902d01" title="Scalar type for matrices of type MatrixType.">Scalar</a> is real (e.g., <code>float</code> or <code>double</code>) and just <code>Scalar</code> if <a class="el" href="class_eigen_1_1_eigen_solver.html#a53ad834c1c07660d62dbf64df8902d01" title="Scalar type for matrices of type MatrixType.">Scalar</a> is complex. </p> <p>Definition at line <a class="el" href="_eigenvalues_source.html#l00104">104</a> of file <a class="el" href="_eigenvalues_source.html">Eigenvalues</a>.</p> </div> </div> <a class="anchor" id="a4c9bfce317a39a6d7b6c74f297165c44"></a><!-- doxytag: member="Eigen::EigenSolver::EigenvalueType" ref="a4c9bfce317a39a6d7b6c74f297165c44" args="" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">typedef <a class="el" href="class_eigen_1_1_matrix.html">Matrix</a><<a class="el" href="class_eigen_1_1_eigen_solver.html#ae41f767b6e3bead4e00f2cce0d9bd78a">ComplexScalar</a>, ColsAtCompileTime, 1, Options & ~RowMajor, MaxColsAtCompileTime, 1> <a class="el" href="class_eigen_1_1_eigen_solver.html#a4c9bfce317a39a6d7b6c74f297165c44">Eigen::EigenSolver::EigenvalueType</a></td> </tr> </table> </div> <div class="memdoc"> <p>Type for vector of eigenvalues as returned by <a class="el" href="class_eigen_1_1_eigen_solver.html#aeab8ed14f125fb0e91a01cd6ea05766a" title="Returns the eigenvalues of given matrix.">eigenvalues()</a>. </p> <p>This is a column vector with entries of type <a class="el" href="class_eigen_1_1_eigen_solver.html#ae41f767b6e3bead4e00f2cce0d9bd78a" title="Complex scalar type for MatrixType.">ComplexScalar</a>. The length of the vector is the size of <a class="el" href="class_eigen_1_1_eigen_solver.html#a33638b7ba9a1306dc5db93c72bee6a75" title="Synonym for the template parameter _MatrixType.">MatrixType</a>. </p> <p>Definition at line <a class="el" href="_eigenvalues_source.html#l00111">111</a> of file <a class="el" href="_eigenvalues_source.html">Eigenvalues</a>.</p> </div> </div> <a class="anchor" id="a29f69d88514fe5b44dba0987a36067c5"></a><!-- doxytag: member="Eigen::EigenSolver::EigenvectorsType" ref="a29f69d88514fe5b44dba0987a36067c5" args="" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">typedef <a class="el" href="class_eigen_1_1_matrix.html">Matrix</a><<a class="el" href="class_eigen_1_1_eigen_solver.html#ae41f767b6e3bead4e00f2cce0d9bd78a">ComplexScalar</a>, RowsAtCompileTime, ColsAtCompileTime, Options, MaxRowsAtCompileTime, MaxColsAtCompileTime> <a class="el" href="class_eigen_1_1_eigen_solver.html#a29f69d88514fe5b44dba0987a36067c5">Eigen::EigenSolver::EigenvectorsType</a></td> </tr> </table> </div> <div class="memdoc"> <p>Type for matrix of eigenvectors as returned by <a class="el" href="class_eigen_1_1_eigen_solver.html#a3dcb2b713fb3c3f913288943f18aef02" title="Returns the eigenvectors of given matrix.">eigenvectors()</a>. </p> <p>This is a square matrix with entries of type <a class="el" href="class_eigen_1_1_eigen_solver.html#ae41f767b6e3bead4e00f2cce0d9bd78a" title="Complex scalar type for MatrixType.">ComplexScalar</a>. The size is the same as the size of <a class="el" href="class_eigen_1_1_eigen_solver.html#a33638b7ba9a1306dc5db93c72bee6a75" title="Synonym for the template parameter _MatrixType.">MatrixType</a>. </p> <p>Definition at line <a class="el" href="_eigenvalues_source.html#l00118">118</a> of file <a class="el" href="_eigenvalues_source.html">Eigenvalues</a>.</p> </div> </div> <a class="anchor" id="aa4c07ebd27c4edc2b4919fb35709e076"></a><!-- doxytag: member="Eigen::EigenSolver::Index" ref="aa4c07ebd27c4edc2b4919fb35709e076" args="" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">typedef MatrixType::Index <a class="el" href="class_eigen_1_1_eigen_solver.html#aa4c07ebd27c4edc2b4919fb35709e076">Eigen::EigenSolver::Index</a></td> </tr> </table> </div> <div class="memdoc"> <p>Definition at line <a class="el" href="_eigenvalues_source.html#l00096">96</a> of file <a class="el" href="_eigenvalues_source.html">Eigenvalues</a>.</p> </div> </div> <a class="anchor" id="a33638b7ba9a1306dc5db93c72bee6a75"></a><!-- doxytag: member="Eigen::EigenSolver::MatrixType" ref="a33638b7ba9a1306dc5db93c72bee6a75" args="" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">typedef _MatrixType <a class="el" href="class_eigen_1_1_eigen_solver.html#a33638b7ba9a1306dc5db93c72bee6a75">Eigen::EigenSolver::MatrixType</a></td> </tr> </table> </div> <div class="memdoc"> <p>Synonym for the template parameter <code>_MatrixType</code>. </p> <p>Definition at line <a class="el" href="_eigenvalues_source.html#l00083">83</a> of file <a class="el" href="_eigenvalues_source.html">Eigenvalues</a>.</p> </div> </div> <a class="anchor" id="a48359b1951896b084599f701fedc89b6"></a><!-- doxytag: member="Eigen::EigenSolver::RealScalar" ref="a48359b1951896b084599f701fedc89b6" args="" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">typedef <a class="el" href="struct_eigen_1_1_num_traits.html">NumTraits</a><<a class="el" href="class_eigen_1_1_eigen_solver.html#a53ad834c1c07660d62dbf64df8902d01">Scalar</a>>::Real <a class="el" href="class_eigen_1_1_eigen_solver.html#a48359b1951896b084599f701fedc89b6">Eigen::EigenSolver::RealScalar</a></td> </tr> </table> </div> <div class="memdoc"> <p>Definition at line <a class="el" href="_eigenvalues_source.html#l00095">95</a> of file <a class="el" href="_eigenvalues_source.html">Eigenvalues</a>.</p> </div> </div> <a class="anchor" id="a53ad834c1c07660d62dbf64df8902d01"></a><!-- doxytag: member="Eigen::EigenSolver::Scalar" ref="a53ad834c1c07660d62dbf64df8902d01" args="" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">typedef MatrixType::Scalar <a class="el" href="class_eigen_1_1_eigen_solver.html#a53ad834c1c07660d62dbf64df8902d01">Eigen::EigenSolver::Scalar</a></td> </tr> </table> </div> <div class="memdoc"> <p>Scalar type for matrices of type <a class="el" href="class_eigen_1_1_eigen_solver.html#a33638b7ba9a1306dc5db93c72bee6a75" title="Synonym for the template parameter _MatrixType.">MatrixType</a>. </p> <p>Definition at line <a class="el" href="_eigenvalues_source.html#l00094">94</a> of file <a class="el" href="_eigenvalues_source.html">Eigenvalues</a>.</p> </div> </div> <hr/><h2>Member Enumeration Documentation</h2> <a class="anchor" id="a115b1b5fa20a33384fad804eb391282f"></a><!-- doxytag: member="Eigen::EigenSolver::@338" ref="a115b1b5fa20a33384fad804eb391282f" args="" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">anonymous enum</td> </tr> </table> </div> <div class="memdoc"> <dl><dt><b>Enumerator: </b></dt><dd><table border="0" cellspacing="2" cellpadding="0"> <tr><td valign="top"><em><a class="anchor" id="a115b1b5fa20a33384fad804eb391282faa3bacbe5ec10f31efe90d97c9429c7f8"></a><!-- doxytag: member="RowsAtCompileTime" ref="a115b1b5fa20a33384fad804eb391282faa3bacbe5ec10f31efe90d97c9429c7f8" args="" -->RowsAtCompileTime</em> </td><td> </td></tr> <tr><td valign="top"><em><a class="anchor" id="a115b1b5fa20a33384fad804eb391282fa242aaf58ca995bc4a9c9f0be00f0344b"></a><!-- doxytag: member="ColsAtCompileTime" ref="a115b1b5fa20a33384fad804eb391282fa242aaf58ca995bc4a9c9f0be00f0344b" args="" -->ColsAtCompileTime</em> </td><td> </td></tr> <tr><td valign="top"><em><a class="anchor" id="a115b1b5fa20a33384fad804eb391282faf537b362490cf07c747f0e4bdef4c412"></a><!-- doxytag: member="Options" ref="a115b1b5fa20a33384fad804eb391282faf537b362490cf07c747f0e4bdef4c412" args="" -->Options</em> </td><td> </td></tr> <tr><td valign="top"><em><a class="anchor" id="a115b1b5fa20a33384fad804eb391282fa23110896fcbd2e89f67aefca41499283"></a><!-- doxytag: member="MaxRowsAtCompileTime" ref="a115b1b5fa20a33384fad804eb391282fa23110896fcbd2e89f67aefca41499283" args="" -->MaxRowsAtCompileTime</em> </td><td> </td></tr> <tr><td valign="top"><em><a class="anchor" id="a115b1b5fa20a33384fad804eb391282fa1086a910235d37e8dbf25261c4ae522a"></a><!-- doxytag: member="MaxColsAtCompileTime" ref="a115b1b5fa20a33384fad804eb391282fa1086a910235d37e8dbf25261c4ae522a" args="" -->MaxColsAtCompileTime</em> </td><td> </td></tr> </table> </dd> </dl> <p>Definition at line <a class="el" href="_eigenvalues_source.html#l00085">85</a> of file <a class="el" href="_eigenvalues_source.html">Eigenvalues</a>.</p> </div> </div> <hr/><h2>Constructor & Destructor Documentation</h2> <a class="anchor" id="a000ce4d8025fb12747510f474aefda2a"></a><!-- doxytag: member="Eigen::EigenSolver::EigenSolver" ref="a000ce4d8025fb12747510f474aefda2a" args="()" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">Eigen::EigenSolver::EigenSolver </td> <td>(</td> <td class="paramname"></td><td>)</td> <td><code> [inline]</code></td> </tr> </table> </div> <div class="memdoc"> <p>Default constructor. </p> <p>The default constructor is useful in cases in which the user intends to perform decompositions via <a class="el" href="class_eigen_1_1_eigen_solver.html#a63d925aaf62dfaf5ee74cf42275ab52b" title="Computes eigendecomposition of given matrix.">EigenSolver::compute(const MatrixType&, bool)</a>.</p> <dl class="see"><dt><b>See also:</b></dt><dd><a class="el" href="class_eigen_1_1_eigen_solver.html#a63d925aaf62dfaf5ee74cf42275ab52b" title="Computes eigendecomposition of given matrix.">compute()</a> for an example. </dd></dl> <p>Definition at line <a class="el" href="_eigenvalues_source.html#l00127">127</a> of file <a class="el" href="_eigenvalues_source.html">Eigenvalues</a>.</p> </div> </div> <a class="anchor" id="a5f2129b72ff838f1797c5142e81c8302"></a><!-- doxytag: member="Eigen::EigenSolver::EigenSolver" ref="a5f2129b72ff838f1797c5142e81c8302" args="(Index size)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">Eigen::EigenSolver::EigenSolver </td> <td>(</td> <td class="paramtype"><a class="el" href="class_eigen_1_1_eigen_solver.html#aa4c07ebd27c4edc2b4919fb35709e076">Index</a> </td> <td class="paramname"><em>size</em></td><td>)</td> <td><code> [inline]</code></td> </tr> </table> </div> <div class="memdoc"> <p>Default constructor with memory preallocation. </p> <p>Like the default constructor but with preallocation of the internal data according to the specified problem <em>size</em>. </p> <dl class="see"><dt><b>See also:</b></dt><dd><a class="el" href="class_eigen_1_1_eigen_solver.html#a000ce4d8025fb12747510f474aefda2a" title="Default constructor.">EigenSolver()</a> </dd></dl> <p>Definition at line <a class="el" href="_eigenvalues_source.html#l00135">135</a> of file <a class="el" href="_eigenvalues_source.html">Eigenvalues</a>.</p> </div> </div> <a class="anchor" id="a0e4819babceaf34a6f3c33687c62ff34"></a><!-- doxytag: member="Eigen::EigenSolver::EigenSolver" ref="a0e4819babceaf34a6f3c33687c62ff34" args="(const MatrixType &matrix, bool computeEigenvectors=true)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">Eigen::EigenSolver::EigenSolver </td> <td>(</td> <td class="paramtype">const <a class="el" href="class_eigen_1_1_eigen_solver.html#a33638b7ba9a1306dc5db93c72bee6a75">MatrixType</a> & </td> <td class="paramname"><em>matrix</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">bool </td> <td class="paramname"><em>computeEigenvectors</em> = <code>true</code> </td> </tr> <tr> <td></td> <td>)</td> <td></td><td><code> [inline]</code></td> </tr> </table> </div> <div class="memdoc"> <p>Constructor; computes eigendecomposition of given matrix. </p> <dl><dt><b>Parameters:</b></dt><dd> <table class="params"> <tr><td class="paramdir">[in]</td><td class="paramname">matrix</td><td>Square matrix whose eigendecomposition is to be computed. </td></tr> <tr><td class="paramdir">[in]</td><td class="paramname">computeEigenvectors</td><td>If true, both the eigenvectors and the eigenvalues are computed; if false, only the eigenvalues are computed.</td></tr> </table> </dd> </dl> <p>This constructor calls <a class="el" href="class_eigen_1_1_eigen_solver.html#a63d925aaf62dfaf5ee74cf42275ab52b" title="Computes eigendecomposition of given matrix.">compute()</a> to compute the eigenvalues and eigenvectors.</p> <p>Example: </p> <div class="fragment"><pre class="fragment"></pre></div><p> Output: </p> <div class="fragment"><pre class="fragment"></pre></div><dl class="see"><dt><b>See also:</b></dt><dd><a class="el" href="class_eigen_1_1_eigen_solver.html#a63d925aaf62dfaf5ee74cf42275ab52b" title="Computes eigendecomposition of given matrix.">compute()</a> </dd></dl> <p>Definition at line <a class="el" href="_eigenvalues_source.html#l00160">160</a> of file <a class="el" href="_eigenvalues_source.html">Eigenvalues</a>.</p> </div> </div> <hr/><h2>Member Function Documentation</h2> <a class="anchor" id="a63d925aaf62dfaf5ee74cf42275ab52b"></a><!-- doxytag: member="Eigen::EigenSolver::compute" ref="a63d925aaf62dfaf5ee74cf42275ab52b" args="(const MatrixType &matrix, bool computeEigenvectors=true)" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname"><a class="el" href="class_eigen_1_1_eigen_solver.html">EigenSolver</a>< <a class="el" href="class_eigen_1_1_eigen_solver.html#a33638b7ba9a1306dc5db93c72bee6a75">MatrixType</a> > & Eigen::EigenSolver::compute </td> <td>(</td> <td class="paramtype">const <a class="el" href="class_eigen_1_1_eigen_solver.html#a33638b7ba9a1306dc5db93c72bee6a75">MatrixType</a> & </td> <td class="paramname"><em>matrix</em>, </td> </tr> <tr> <td class="paramkey"></td> <td></td> <td class="paramtype">bool </td> <td class="paramname"><em>computeEigenvectors</em> = <code>true</code> </td> </tr> <tr> <td></td> <td>)</td> <td></td><td></td> </tr> </table> </div> <div class="memdoc"> <p>Computes eigendecomposition of given matrix. </p> <dl><dt><b>Parameters:</b></dt><dd> <table class="params"> <tr><td class="paramdir">[in]</td><td class="paramname">matrix</td><td>Square matrix whose eigendecomposition is to be computed. </td></tr> <tr><td class="paramdir">[in]</td><td class="paramname">computeEigenvectors</td><td>If true, both the eigenvectors and the eigenvalues are computed; if false, only the eigenvalues are computed. </td></tr> </table> </dd> </dl> <dl class="return"><dt><b>Returns:</b></dt><dd>Reference to <code>*this</code> </dd></dl> <p>This function computes the eigenvalues of the real matrix <code>matrix</code>. The <a class="el" href="class_eigen_1_1_eigen_solver.html#aeab8ed14f125fb0e91a01cd6ea05766a" title="Returns the eigenvalues of given matrix.">eigenvalues()</a> function can be used to retrieve them. If <code>computeEigenvectors</code> is true, then the eigenvectors are also computed and can be retrieved by calling <a class="el" href="class_eigen_1_1_eigen_solver.html#a3dcb2b713fb3c3f913288943f18aef02" title="Returns the eigenvectors of given matrix.">eigenvectors()</a>.</p> <p>The matrix is first reduced to real Schur form using the <a class="el" href="class_eigen_1_1_real_schur.html">RealSchur</a> class. The Schur decomposition is then used to compute the eigenvalues and eigenvectors.</p> <p>The cost of the computation is dominated by the cost of the Schur decomposition, which is very approximately <img class="formulaInl" alt="$ 25n^3 $" src="form_198.png"/> (where <img class="formulaInl" alt="$ n $" src="form_183.png"/> is the size of the matrix) if <code>computeEigenvectors</code> is true, and <img class="formulaInl" alt="$ 10n^3 $" src="form_199.png"/> if <code>computeEigenvectors</code> is false.</p> <p>This method reuses of the allocated data in the <a class="el" href="class_eigen_1_1_eigen_solver.html">EigenSolver</a> object.</p> <p>Example: </p> <div class="fragment"><pre class="fragment"></pre></div><p> Output: </p> <div class="fragment"><pre class="fragment"></pre></div> <p>Definition at line <a class="el" href="_eigenvalues_source.html#l00365">365</a> of file <a class="el" href="_eigenvalues_source.html">Eigenvalues</a>.</p> </div> </div> <a class="anchor" id="ab13c4aac03fef5126aa611740ea8f34b"></a><!-- doxytag: member="Eigen::EigenSolver::doComputeEigenvectors" ref="ab13c4aac03fef5126aa611740ea8f34b" args="()" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">void Eigen::EigenSolver::doComputeEigenvectors </td> <td>(</td> <td class="paramname"></td><td>)</td> <td><code> [private]</code></td> </tr> </table> </div> <div class="memdoc"> <p>Definition at line <a class="el" href="_eigenvalues_source.html#l00429">429</a> of file <a class="el" href="_eigenvalues_source.html">Eigenvalues</a>.</p> </div> </div> <a class="anchor" id="aeab8ed14f125fb0e91a01cd6ea05766a"></a><!-- doxytag: member="Eigen::EigenSolver::eigenvalues" ref="aeab8ed14f125fb0e91a01cd6ea05766a" args="() const " --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">const <a class="el" href="class_eigen_1_1_eigen_solver.html#a4c9bfce317a39a6d7b6c74f297165c44">EigenvalueType</a>& Eigen::EigenSolver::eigenvalues </td> <td>(</td> <td class="paramname"></td><td>)</td> <td> const<code> [inline]</code></td> </tr> </table> </div> <div class="memdoc"> <p>Returns the eigenvalues of given matrix. </p> <dl class="return"><dt><b>Returns:</b></dt><dd>A const reference to the column vector containing the eigenvalues.</dd></dl> <dl class="pre"><dt><b>Precondition:</b></dt><dd>Either the constructor <a class="el" href="class_eigen_1_1_eigen_solver.html#a0e4819babceaf34a6f3c33687c62ff34" title="Constructor; computes eigendecomposition of given matrix.">EigenSolver(const MatrixType&,bool)</a> or the member function <a class="el" href="class_eigen_1_1_eigen_solver.html#a63d925aaf62dfaf5ee74cf42275ab52b" title="Computes eigendecomposition of given matrix.">compute(const MatrixType&, bool)</a> has been called before.</dd></dl> <p>The eigenvalues are repeated according to their algebraic multiplicity, so there are as many eigenvalues as rows in the matrix. The eigenvalues are not sorted in any particular order.</p> <p>Example: </p> <div class="fragment"><pre class="fragment"></pre></div><p> Output: </p> <div class="fragment"><pre class="fragment"></pre></div><dl class="see"><dt><b>See also:</b></dt><dd><a class="el" href="class_eigen_1_1_eigen_solver.html#a3dcb2b713fb3c3f913288943f18aef02" title="Returns the eigenvectors of given matrix.">eigenvectors()</a>, <a class="el" href="class_eigen_1_1_eigen_solver.html#aefc542612371d02f6f35cdc92f4a9b3c" title="Returns the block-diagonal matrix in the pseudo-eigendecomposition.">pseudoEigenvalueMatrix()</a>, <a class="el" href="class_eigen_1_1_matrix_base.html#ab03aad357e4c41a9c920eda05c791489" title="Computes the eigenvalues of a matrix.">MatrixBase::eigenvalues()</a> </dd></dl> <p>Definition at line <a class="el" href="_eigenvalues_source.html#l00257">257</a> of file <a class="el" href="_eigenvalues_source.html">Eigenvalues</a>.</p> <p>Referenced by <a class="el" href="eigen__plugins__impl_8h_source.html#l00101">Eigen::MatrixBase::eigenVectorsVec()</a>.</p> </div> </div> <a class="anchor" id="a3dcb2b713fb3c3f913288943f18aef02"></a><!-- doxytag: member="Eigen::EigenSolver::eigenvectors" ref="a3dcb2b713fb3c3f913288943f18aef02" args="() const " --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname"><a class="el" href="class_eigen_1_1_eigen_solver.html">EigenSolver</a>< <a class="el" href="class_eigen_1_1_eigen_solver.html#a33638b7ba9a1306dc5db93c72bee6a75">MatrixType</a> >::<a class="el" href="class_eigen_1_1_eigen_solver.html#a29f69d88514fe5b44dba0987a36067c5">EigenvectorsType</a> Eigen::EigenSolver::eigenvectors </td> <td>(</td> <td class="paramname"></td><td>)</td> <td> const</td> </tr> </table> </div> <div class="memdoc"> <p>Returns the eigenvectors of given matrix. </p> <dl class="return"><dt><b>Returns:</b></dt><dd>Matrix whose columns are the (possibly complex) eigenvectors.</dd></dl> <dl class="pre"><dt><b>Precondition:</b></dt><dd>Either the constructor <a class="el" href="class_eigen_1_1_eigen_solver.html#a0e4819babceaf34a6f3c33687c62ff34" title="Constructor; computes eigendecomposition of given matrix.">EigenSolver(const MatrixType&,bool)</a> or the member function <a class="el" href="class_eigen_1_1_eigen_solver.html#a63d925aaf62dfaf5ee74cf42275ab52b" title="Computes eigendecomposition of given matrix.">compute(const MatrixType&, bool)</a> has been called before, and <code>computeEigenvectors</code> was set to true (the default).</dd></dl> <p>Column <img class="formulaInl" alt="$ k $" src="form_195.png"/> of the returned matrix is an eigenvector corresponding to eigenvalue number <img class="formulaInl" alt="$ k $" src="form_195.png"/> as returned by <a class="el" href="class_eigen_1_1_eigen_solver.html#aeab8ed14f125fb0e91a01cd6ea05766a" title="Returns the eigenvalues of given matrix.">eigenvalues()</a>. The eigenvectors are normalized to have (Euclidean) norm equal to one. The matrix returned by this function is the matrix <img class="formulaInl" alt="$ V $" src="form_171.png"/> in the eigendecomposition <img class="formulaInl" alt="$ A = V D V^{-1} $" src="form_173.png"/>, if it exists.</p> <p>Example: </p> <div class="fragment"><pre class="fragment"></pre></div><p> Output: </p> <div class="fragment"><pre class="fragment"></pre></div><dl class="see"><dt><b>See also:</b></dt><dd><a class="el" href="class_eigen_1_1_eigen_solver.html#aeab8ed14f125fb0e91a01cd6ea05766a" title="Returns the eigenvalues of given matrix.">eigenvalues()</a>, <a class="el" href="class_eigen_1_1_eigen_solver.html#a69b08aaa9ca0d51750a8a889db214444" title="Returns the pseudo-eigenvectors of given matrix.">pseudoEigenvectors()</a> </dd></dl> <p>Definition at line <a class="el" href="_eigenvalues_source.html#l00334">334</a> of file <a class="el" href="_eigenvalues_source.html">Eigenvalues</a>.</p> <p>Referenced by <a class="el" href="eigen__plugins__impl_8h_source.html#l00101">Eigen::MatrixBase::eigenVectorsVec()</a>.</p> </div> </div> <a class="anchor" id="accb25b664ee06411d77b4e14f5b9975f"></a><!-- doxytag: member="Eigen::EigenSolver::info" ref="accb25b664ee06411d77b4e14f5b9975f" args="() const " --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname"><a class="el" href="namespace_eigen.html#a85fad7b87587764e5cf6b513a9e0ee5e">ComputationInfo</a> Eigen::EigenSolver::info </td> <td>(</td> <td class="paramname"></td><td>)</td> <td> const<code> [inline]</code></td> </tr> </table> </div> <div class="memdoc"> <p>Definition at line <a class="el" href="_eigenvalues_source.html#l00292">292</a> of file <a class="el" href="_eigenvalues_source.html">Eigenvalues</a>.</p> </div> </div> <a class="anchor" id="aefc542612371d02f6f35cdc92f4a9b3c"></a><!-- doxytag: member="Eigen::EigenSolver::pseudoEigenvalueMatrix" ref="aefc542612371d02f6f35cdc92f4a9b3c" args="() const " --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname"><a class="el" href="class_eigen_1_1_eigen_solver.html#a33638b7ba9a1306dc5db93c72bee6a75">MatrixType</a> Eigen::EigenSolver::pseudoEigenvalueMatrix </td> <td>(</td> <td class="paramname"></td><td>)</td> <td> const</td> </tr> </table> </div> <div class="memdoc"> <p>Returns the block-diagonal matrix in the pseudo-eigendecomposition. </p> <dl class="return"><dt><b>Returns:</b></dt><dd>A block-diagonal matrix.</dd></dl> <dl class="pre"><dt><b>Precondition:</b></dt><dd>Either the constructor <a class="el" href="class_eigen_1_1_eigen_solver.html#a0e4819babceaf34a6f3c33687c62ff34" title="Constructor; computes eigendecomposition of given matrix.">EigenSolver(const MatrixType&,bool)</a> or the member function <a class="el" href="class_eigen_1_1_eigen_solver.html#a63d925aaf62dfaf5ee74cf42275ab52b" title="Computes eigendecomposition of given matrix.">compute(const MatrixType&, bool)</a> has been called before.</dd></dl> <p>The matrix <img class="formulaInl" alt="$ D $" src="form_170.png"/> returned by this function is real and block-diagonal. The blocks on the diagonal are either 1-by-1 or 2-by-2 blocks of the form <img class="formulaInl" alt="$ \begin{bmatrix} u & v \\ -v & u \end{bmatrix} $" src="form_197.png"/>. These blocks are not sorted in any particular order. The matrix <img class="formulaInl" alt="$ D $" src="form_170.png"/> and the matrix <img class="formulaInl" alt="$ V $" src="form_171.png"/> returned by <a class="el" href="class_eigen_1_1_eigen_solver.html#a69b08aaa9ca0d51750a8a889db214444" title="Returns the pseudo-eigenvectors of given matrix.">pseudoEigenvectors()</a> satisfy <img class="formulaInl" alt="$ AV = VD $" src="form_196.png"/>.</p> <dl class="see"><dt><b>See also:</b></dt><dd><a class="el" href="class_eigen_1_1_eigen_solver.html#a69b08aaa9ca0d51750a8a889db214444" title="Returns the pseudo-eigenvectors of given matrix.">pseudoEigenvectors()</a> for an example, <a class="el" href="class_eigen_1_1_eigen_solver.html#aeab8ed14f125fb0e91a01cd6ea05766a" title="Returns the eigenvalues of given matrix.">eigenvalues()</a> </dd></dl> <p>Definition at line <a class="el" href="_eigenvalues_source.html#l00314">314</a> of file <a class="el" href="_eigenvalues_source.html">Eigenvalues</a>.</p> </div> </div> <a class="anchor" id="a69b08aaa9ca0d51750a8a889db214444"></a><!-- doxytag: member="Eigen::EigenSolver::pseudoEigenvectors" ref="a69b08aaa9ca0d51750a8a889db214444" args="() const " --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">const <a class="el" href="class_eigen_1_1_eigen_solver.html#a33638b7ba9a1306dc5db93c72bee6a75">MatrixType</a>& Eigen::EigenSolver::pseudoEigenvectors </td> <td>(</td> <td class="paramname"></td><td>)</td> <td> const<code> [inline]</code></td> </tr> </table> </div> <div class="memdoc"> <p>Returns the pseudo-eigenvectors of given matrix. </p> <dl class="return"><dt><b>Returns:</b></dt><dd>Const reference to matrix whose columns are the pseudo-eigenvectors.</dd></dl> <dl class="pre"><dt><b>Precondition:</b></dt><dd>Either the constructor <a class="el" href="class_eigen_1_1_eigen_solver.html#a0e4819babceaf34a6f3c33687c62ff34" title="Constructor; computes eigendecomposition of given matrix.">EigenSolver(const MatrixType&,bool)</a> or the member function <a class="el" href="class_eigen_1_1_eigen_solver.html#a63d925aaf62dfaf5ee74cf42275ab52b" title="Computes eigendecomposition of given matrix.">compute(const MatrixType&, bool)</a> has been called before, and <code>computeEigenvectors</code> was set to true (the default).</dd></dl> <p>The real matrix <img class="formulaInl" alt="$ V $" src="form_171.png"/> returned by this function and the block-diagonal matrix <img class="formulaInl" alt="$ D $" src="form_170.png"/> returned by <a class="el" href="class_eigen_1_1_eigen_solver.html#aefc542612371d02f6f35cdc92f4a9b3c" title="Returns the block-diagonal matrix in the pseudo-eigendecomposition.">pseudoEigenvalueMatrix()</a> satisfy <img class="formulaInl" alt="$ AV = VD $" src="form_196.png"/>.</p> <p>Example: </p> <div class="fragment"><pre class="fragment"></pre></div><p> Output: </p> <div class="fragment"><pre class="fragment"></pre></div><dl class="see"><dt><b>See also:</b></dt><dd><a class="el" href="class_eigen_1_1_eigen_solver.html#aefc542612371d02f6f35cdc92f4a9b3c" title="Returns the block-diagonal matrix in the pseudo-eigendecomposition.">pseudoEigenvalueMatrix()</a>, <a class="el" href="class_eigen_1_1_eigen_solver.html#a3dcb2b713fb3c3f913288943f18aef02" title="Returns the eigenvectors of given matrix.">eigenvectors()</a> </dd></dl> <p>Definition at line <a class="el" href="_eigenvalues_source.html#l00212">212</a> of file <a class="el" href="_eigenvalues_source.html">Eigenvalues</a>.</p> </div> </div> <hr/><h2>Member Data Documentation</h2> <a class="anchor" id="a9018cc9c83c7328df23bfb8be7d98086"></a><!-- doxytag: member="Eigen::EigenSolver::m_eigenvectorsOk" ref="a9018cc9c83c7328df23bfb8be7d98086" args="" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">bool <a class="el" href="class_eigen_1_1_eigen_solver.html#a9018cc9c83c7328df23bfb8be7d98086">Eigen::EigenSolver::m_eigenvectorsOk</a><code> [protected]</code></td> </tr> </table> </div> <div class="memdoc"> <p>Definition at line <a class="el" href="_eigenvalues_source.html#l00305">305</a> of file <a class="el" href="_eigenvalues_source.html">Eigenvalues</a>.</p> </div> </div> <a class="anchor" id="a655089402852f52f884bd78c24a8ff93"></a><!-- doxytag: member="Eigen::EigenSolver::m_eivalues" ref="a655089402852f52f884bd78c24a8ff93" args="" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname"><a class="el" href="class_eigen_1_1_eigen_solver.html#a4c9bfce317a39a6d7b6c74f297165c44">EigenvalueType</a> <a class="el" href="class_eigen_1_1_eigen_solver.html#a655089402852f52f884bd78c24a8ff93">Eigen::EigenSolver::m_eivalues</a><code> [protected]</code></td> </tr> </table> </div> <div class="memdoc"> <p>Definition at line <a class="el" href="_eigenvalues_source.html#l00303">303</a> of file <a class="el" href="_eigenvalues_source.html">Eigenvalues</a>.</p> </div> </div> <a class="anchor" id="a15ed94fb399e638484caa0c87c2223d1"></a><!-- doxytag: member="Eigen::EigenSolver::m_eivec" ref="a15ed94fb399e638484caa0c87c2223d1" args="" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname"><a class="el" href="class_eigen_1_1_eigen_solver.html#a33638b7ba9a1306dc5db93c72bee6a75">MatrixType</a> <a class="el" href="class_eigen_1_1_eigen_solver.html#a15ed94fb399e638484caa0c87c2223d1">Eigen::EigenSolver::m_eivec</a><code> [protected]</code></td> </tr> </table> </div> <div class="memdoc"> <p>Definition at line <a class="el" href="_eigenvalues_source.html#l00302">302</a> of file <a class="el" href="_eigenvalues_source.html">Eigenvalues</a>.</p> </div> </div> <a class="anchor" id="a5b3b9de715ae2525d58ab1c99f28dbe2"></a><!-- doxytag: member="Eigen::EigenSolver::m_isInitialized" ref="a5b3b9de715ae2525d58ab1c99f28dbe2" args="" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">bool <a class="el" href="class_eigen_1_1_eigen_solver.html#a5b3b9de715ae2525d58ab1c99f28dbe2">Eigen::EigenSolver::m_isInitialized</a><code> [protected]</code></td> </tr> </table> </div> <div class="memdoc"> <p>Definition at line <a class="el" href="_eigenvalues_source.html#l00304">304</a> of file <a class="el" href="_eigenvalues_source.html">Eigenvalues</a>.</p> </div> </div> <a class="anchor" id="a710d073eabb40d17f51f948f1ffe3c2f"></a><!-- doxytag: member="Eigen::EigenSolver::m_matT" ref="a710d073eabb40d17f51f948f1ffe3c2f" args="" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname"><a class="el" href="class_eigen_1_1_eigen_solver.html#a33638b7ba9a1306dc5db93c72bee6a75">MatrixType</a> <a class="el" href="class_eigen_1_1_eigen_solver.html#a710d073eabb40d17f51f948f1ffe3c2f">Eigen::EigenSolver::m_matT</a><code> [protected]</code></td> </tr> </table> </div> <div class="memdoc"> <p>Definition at line <a class="el" href="_eigenvalues_source.html#l00307">307</a> of file <a class="el" href="_eigenvalues_source.html">Eigenvalues</a>.</p> </div> </div> <a class="anchor" id="a21ce1c34fe263f03b66cd63335300c8d"></a><!-- doxytag: member="Eigen::EigenSolver::m_realSchur" ref="a21ce1c34fe263f03b66cd63335300c8d" args="" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname"><a class="el" href="class_eigen_1_1_real_schur.html">RealSchur</a><<a class="el" href="class_eigen_1_1_eigen_solver.html#a33638b7ba9a1306dc5db93c72bee6a75">MatrixType</a>> <a class="el" href="class_eigen_1_1_eigen_solver.html#a21ce1c34fe263f03b66cd63335300c8d">Eigen::EigenSolver::m_realSchur</a><code> [protected]</code></td> </tr> </table> </div> <div class="memdoc"> <p>Definition at line <a class="el" href="_eigenvalues_source.html#l00306">306</a> of file <a class="el" href="_eigenvalues_source.html">Eigenvalues</a>.</p> </div> </div> <a class="anchor" id="ae8d23958914c08451a26a7334c07d39d"></a><!-- doxytag: member="Eigen::EigenSolver::m_tmp" ref="ae8d23958914c08451a26a7334c07d39d" args="" --> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname"><a class="el" href="class_eigen_1_1_eigen_solver.html#a3cb1cf052261041befd84f7faa2e58d4">ColumnVectorType</a> <a class="el" href="class_eigen_1_1_eigen_solver.html#ae8d23958914c08451a26a7334c07d39d">Eigen::EigenSolver::m_tmp</a><code> [protected]</code></td> </tr> </table> </div> <div class="memdoc"> <p>Definition at line <a class="el" href="_eigenvalues_source.html#l00310">310</a> of file <a class="el" href="_eigenvalues_source.html">Eigenvalues</a>.</p> </div> </div> </div> <br><hr><br> <table border="0" width="100%"> <tr> <td> Page generated by <a href="http://www.doxygen.org" target="_blank">Doxygen 1.7.5</a> for MRPT 0.9.5 SVN: at Sun Sep 25 17:20:18 UTC 2011</td><td></td> <td width="100"> </td> <td width="150"> </td></tr> </table> </body></html>