Sophie

Sophie

distrib > Fedora > 16 > i386 > by-pkgid > 4bc66056a634db26a1f4d0845dc41ca6 > files > 3101

mrpt-doc-0.9.5-0.1.20110925svn2670.fc16.i686.rpm

<!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> &gt; <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&#160;Page</span></a></li>
      <li><a href="pages.html"><span>Related&#160;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&#160;List</span></a></li>
      <li><a href="classes.html"><span>Class&#160;Index</span></a></li>
      <li><a href="inherits.html"><span>Class&#160;Hierarchy</span></a></li>
      <li><a href="functions.html"><span>Class&#160;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> &#124;
<a href="#pub-methods">Public Member Functions</a> &#124;
<a href="#pro-types">Protected Types</a> &#124;
<a href="#pro-attribs">Protected Attributes</a> &#124;
<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 &amp; v \\ -v &amp; 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&amp;, 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&amp;, 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 &#160;</td><td class="memItemRight" valign="bottom">{ <br/>
&#160;&#160;<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/>
&#160;&#160;<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&#160;</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">&#160;</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&#160;</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">&#160;</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>&lt; <a class="el" href="class_eigen_1_1_eigen_solver.html#a53ad834c1c07660d62dbf64df8902d01">Scalar</a> &gt;::Real&#160;</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&#160;</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>&lt; <a class="el" href="class_eigen_1_1_eigen_solver.html#a48359b1951896b084599f701fedc89b6">RealScalar</a> &gt;&#160;</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">&#160;</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>&lt; <a class="el" href="class_eigen_1_1_eigen_solver.html#ae41f767b6e3bead4e00f2cce0d9bd78a">ComplexScalar</a>, <br class="typebreak"/>
ColsAtCompileTime, 1, Options <br class="typebreak"/>
&amp;~RowMajor, <br class="typebreak"/>
MaxColsAtCompileTime, 1 &gt;&#160;</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">&#160;</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>&lt; <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 &gt;&#160;</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">&#160;</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">&#160;</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">&#160;</td><td class="mdescRight">Default constructor.  <a href="#a000ce4d8025fb12747510f474aefda2a"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">&#160;</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">&#160;</td><td class="mdescRight">Default constructor with memory preallocation.  <a href="#a5f2129b72ff838f1797c5142e81c8302"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">&#160;</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> &amp;matrix, bool computeEigenvectors=true)</td></tr>
<tr><td class="mdescLeft">&#160;</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>&#160;</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">&#160;</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> &amp;&#160;</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">&#160;</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>&#160;</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">&#160;</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> &amp;&#160;</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">&#160;</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> &amp;&#160;</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> &amp;matrix, bool computeEigenvectors=true)</td></tr>
<tr><td class="mdescLeft">&#160;</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>&#160;</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>&lt; <a class="el" href="class_eigen_1_1_eigen_solver.html#a53ad834c1c07660d62dbf64df8902d01">Scalar</a>, <br class="typebreak"/>
ColsAtCompileTime, 1, Options <br class="typebreak"/>
&amp;~RowMajor, <br class="typebreak"/>
MaxColsAtCompileTime, 1 &gt;&#160;</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>&#160;</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>&#160;</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&#160;</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&#160;</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>&lt; <a class="el" href="class_eigen_1_1_eigen_solver.html#a33638b7ba9a1306dc5db93c72bee6a75">MatrixType</a> &gt;&#160;</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>&#160;</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>&#160;</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&#160;</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>&lt;<a class="el" href="class_eigen_1_1_eigen_solver.html#a53ad834c1c07660d62dbf64df8902d01">Scalar</a>, ColsAtCompileTime, 1, Options &amp; ~RowMajor, MaxColsAtCompileTime, 1&gt; <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>&lt;<a class="el" href="class_eigen_1_1_eigen_solver.html#a48359b1951896b084599f701fedc89b6">RealScalar</a>&gt; <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&lt;Scalar&gt;</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>&lt;<a class="el" href="class_eigen_1_1_eigen_solver.html#ae41f767b6e3bead4e00f2cce0d9bd78a">ComplexScalar</a>, ColsAtCompileTime, 1, Options &amp; ~RowMajor, MaxColsAtCompileTime, 1&gt; <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>&lt;<a class="el" href="class_eigen_1_1_eigen_solver.html#ae41f767b6e3bead4e00f2cce0d9bd78a">ComplexScalar</a>, RowsAtCompileTime, ColsAtCompileTime, Options, MaxRowsAtCompileTime, MaxColsAtCompileTime&gt; <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>&lt;<a class="el" href="class_eigen_1_1_eigen_solver.html#a53ad834c1c07660d62dbf64df8902d01">Scalar</a>&gt;::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>&nbsp;</td><td>
</td></tr>
<tr><td valign="top"><em><a class="anchor" id="a115b1b5fa20a33384fad804eb391282fa242aaf58ca995bc4a9c9f0be00f0344b"></a><!-- doxytag: member="ColsAtCompileTime" ref="a115b1b5fa20a33384fad804eb391282fa242aaf58ca995bc4a9c9f0be00f0344b" args="" -->ColsAtCompileTime</em>&nbsp;</td><td>
</td></tr>
<tr><td valign="top"><em><a class="anchor" id="a115b1b5fa20a33384fad804eb391282faf537b362490cf07c747f0e4bdef4c412"></a><!-- doxytag: member="Options" ref="a115b1b5fa20a33384fad804eb391282faf537b362490cf07c747f0e4bdef4c412" args="" -->Options</em>&nbsp;</td><td>
</td></tr>
<tr><td valign="top"><em><a class="anchor" id="a115b1b5fa20a33384fad804eb391282fa23110896fcbd2e89f67aefca41499283"></a><!-- doxytag: member="MaxRowsAtCompileTime" ref="a115b1b5fa20a33384fad804eb391282fa23110896fcbd2e89f67aefca41499283" args="" -->MaxRowsAtCompileTime</em>&nbsp;</td><td>
</td></tr>
<tr><td valign="top"><em><a class="anchor" id="a115b1b5fa20a33384fad804eb391282fa1086a910235d37e8dbf25261c4ae522a"></a><!-- doxytag: member="MaxColsAtCompileTime" ref="a115b1b5fa20a33384fad804eb391282fa1086a910235d37e8dbf25261c4ae522a" args="" -->MaxColsAtCompileTime</em>&nbsp;</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 &amp; 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&amp;, 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>&#160;</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 &amp;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> &amp;&#160;</td>
          <td class="paramname"><em>matrix</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">bool&#160;</td>
          <td class="paramname"><em>computeEigenvectors</em> = <code>true</code>&#160;</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 &amp;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>&lt; <a class="el" href="class_eigen_1_1_eigen_solver.html#a33638b7ba9a1306dc5db93c72bee6a75">MatrixType</a> &gt; &amp; Eigen::EigenSolver::compute </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="class_eigen_1_1_eigen_solver.html#a33638b7ba9a1306dc5db93c72bee6a75">MatrixType</a> &amp;&#160;</td>
          <td class="paramname"><em>matrix</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">bool&#160;</td>
          <td class="paramname"><em>computeEigenvectors</em> = <code>true</code>&#160;</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>&amp; 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&amp;,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&amp;, 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>&lt; <a class="el" href="class_eigen_1_1_eigen_solver.html#a33638b7ba9a1306dc5db93c72bee6a75">MatrixType</a> &gt;::<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&amp;,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&amp;, 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&amp;,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&amp;, 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 &amp; v \\ -v &amp; 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>&amp; 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&amp;,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&amp;, 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>&lt;<a class="el" href="class_eigen_1_1_eigen_solver.html#a33638b7ba9a1306dc5db93c72bee6a75">MatrixType</a>&gt; <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>