Sophie

Sophie

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

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::SelfAdjointEigenSolver 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_self_adjoint_eigen_solver.html">SelfAdjointEigenSolver</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="#pub-static-attribs">Static Public Attributes</a> &#124;
<a href="#pro-attribs">Protected Attributes</a>  </div>
  <div class="headertitle">
<div class="title">Eigen::SelfAdjointEigenSolver 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::SelfAdjointEigenSolver" --><hr/><a name="details" id="details"></a><h2>Detailed Description</h2>
<div class="textblock"><p>Computes eigenvalues and eigenvectors of selfadjoint 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.</td></tr>
  </table>
  </dd>
</dl>
<p>A matrix <img class="formulaInl" alt="$ A $" src="form_128.png"/> is selfadjoint if it equals its adjoint. For real matrices, this means that the matrix is symmetric: it equals its transpose. This class computes the eigenvalues and eigenvectors of a selfadjoint matrix. These are the 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"/>. The eigenvalues of a selfadjoint matrix are always real. 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 D V^{-1} $" src="form_173.png"/> (for selfadjoint matrices, the matrix <img class="formulaInl" alt="$ V $" src="form_171.png"/> is always invertible). This is called the eigendecomposition.</p>
<p>The algorithm exploits the fact that the matrix is selfadjoint, making it faster and more accurate than the general purpose eigenvalue algorithms implemented in <a class="el" href="class_eigen_1_1_eigen_solver.html">EigenSolver</a> and <a class="el" href="class_eigen_1_1_complex_eigen_solver.html">ComplexEigenSolver</a>.</p>
<p>Only the <b>lower</b> <b>triangular</b> <b>part</b> of the input matrix is referenced.</p>
<p>Call the function <a class="el" href="class_eigen_1_1_self_adjoint_eigen_solver.html#aa55221155ecdd9aabdf01aac58312142" 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_self_adjoint_eigen_solver.html#adde7177cf95a124aaee7775837f17232" title="Constructor; computes eigendecomposition of given matrix.">SelfAdjointEigenSolver(const MatrixType&amp;, int)</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_self_adjoint_eigen_solver.html#a57d8b8b0cc16f36ea536c135d432d9c6" title="Returns the eigenvalues of given matrix.">eigenvalues()</a> and <a class="el" href="class_eigen_1_1_self_adjoint_eigen_solver.html#a64ec384f6d84f4591e86c117a95d79dd" title="Returns the eigenvectors of given matrix.">eigenvectors()</a> functions.</p>
<p>The documentation for <a class="el" href="class_eigen_1_1_self_adjoint_eigen_solver.html#adde7177cf95a124aaee7775837f17232" title="Constructor; computes eigendecomposition of given matrix.">SelfAdjointEigenSolver(const MatrixType&amp;, int)</a> contains an example of the typical use of this class.</p>
<p>To solve the <em>generalized</em> eigenvalue problem <img class="formulaInl" alt="$ Av = \lambda Bv $" src="form_177.png"/> and the likes, see the class <a class="el" href="class_eigen_1_1_generalized_self_adjoint_eigen_solver.html">GeneralizedSelfAdjointEigenSolver</a>.</p>
<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_eigen_solver.html">EigenSolver</a>, class <a class="el" href="class_eigen_1_1_complex_eigen_solver.html">ComplexEigenSolver</a> </dd></dl>

<p>Definition at line <a class="el" href="_eigenvalues_source.html#l00033">33</a> of file <a class="el" href="_eigenvalues_source.html">Eigenvalues</a>.</p>
</div><div class="dynheader">
Inheritance diagram for Eigen::SelfAdjointEigenSolver:</div>
<div class="dyncontent">
<div class="center"><img src="class_eigen_1_1_self_adjoint_eigen_solver__inherit__graph.png" border="0" usemap="#_eigen_1_1_self_adjoint_eigen_solver_inherit__map" alt="Inheritance graph"/></div>
<map name="_eigen_1_1_self_adjoint_eigen_solver_inherit__map" id="_eigen_1_1_self_adjoint_eigen_solver_inherit__map">
<area shape="rect" id="node3" href="class_eigen_1_1_self_adjoint_eigen_solver.html" title="Eigen::SelfAdjointEigenSolver\&lt; _MatrixType \&gt;" alt="" coords="5,96,296,123"/><area shape="rect" id="node5" href="class_eigen_1_1_generalized_self_adjoint_eigen_solver.html" title="Eigen::GeneralizedSelfAdjointEigenSolver" alt="" coords="18,173,283,200"/></map>
<center><span class="legend">[<a href="graph_legend.html">legend</a>]</span></center></div>

<p><a href="class_eigen_1_1_self_adjoint_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">{ <a class="el" href="class_eigen_1_1_self_adjoint_eigen_solver.html#a4acca1607afbd93130ad06aca9028514a1d09a3b0c0c611c3d73fb593f9f2b7d1">Size</a> =  MatrixType::RowsAtCompileTime, 
<a class="el" href="class_eigen_1_1_self_adjoint_eigen_solver.html#a4acca1607afbd93130ad06aca9028514ad8fef89c3166eeead4ae74fcaef52132">ColsAtCompileTime</a> =  MatrixType::ColsAtCompileTime, 
<a class="el" href="class_eigen_1_1_self_adjoint_eigen_solver.html#a4acca1607afbd93130ad06aca9028514a4eca2cf59140b6e35e3b313dce99c7c1">Options</a> =  MatrixType::Options, 
<a class="el" href="class_eigen_1_1_self_adjoint_eigen_solver.html#a4acca1607afbd93130ad06aca9028514a09a0d17e20cd16416a7413b75b099e94">MaxColsAtCompileTime</a> =  MatrixType::MaxColsAtCompileTime
 }</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_self_adjoint_eigen_solver.html#ad879830677047bd775f2f536f55bccd9">MatrixType</a></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_self_adjoint_eigen_solver.html#acef1cdf0408cdd42447239760ea05e6d">Scalar</a></td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Scalar type for matrices of type <code>_MatrixType</code>.  <a href="#acef1cdf0408cdd42447239760ea05e6d"></a><br/></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_self_adjoint_eigen_solver.html#a564046d18d7a8ba9b86beabb178df44d">Index</a></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_self_adjoint_eigen_solver.html#acef1cdf0408cdd42447239760ea05e6d">Scalar</a> &gt;::Real&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_eigen_1_1_self_adjoint_eigen_solver.html#ac0235ef4509f69439312494c98cc766a">RealScalar</a></td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Real scalar type for <code>_MatrixType</code>.  <a href="#ac0235ef4509f69439312494c98cc766a"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">typedef <br class="typebreak"/>
<a class="el" href="struct_eigen_1_1internal_1_1plain__col__type.html">internal::plain_col_type</a><br class="typebreak"/>
&lt; <a class="el" href="class_eigen_1_1_self_adjoint_eigen_solver.html#ad879830677047bd775f2f536f55bccd9">MatrixType</a>, <a class="el" href="class_eigen_1_1_self_adjoint_eigen_solver.html#ac0235ef4509f69439312494c98cc766a">RealScalar</a> &gt;<br class="typebreak"/>
::type&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_eigen_1_1_self_adjoint_eigen_solver.html#aaff89ab2060a5b1bd480df34c332139b">RealVectorType</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_self_adjoint_eigen_solver.html#a57d8b8b0cc16f36ea536c135d432d9c6" title="Returns the eigenvalues of given matrix.">eigenvalues()</a>.  <a href="#aaff89ab2060a5b1bd480df34c332139b"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">typedef <a class="el" href="class_eigen_1_1_tridiagonalization.html">Tridiagonalization</a><br class="typebreak"/>
&lt; <a class="el" href="class_eigen_1_1_self_adjoint_eigen_solver.html#ad879830677047bd775f2f536f55bccd9">MatrixType</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_eigen_1_1_self_adjoint_eigen_solver.html#aa4add29d57c114fc3f9b52a388a6ff49">TridiagonalizationType</a></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_self_adjoint_eigen_solver.html#a6064a93af73ce5e196f9ebdab2020359">SelfAdjointEigenSolver</a> ()</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Default constructor for fixed-size matrices.  <a href="#a6064a93af73ce5e196f9ebdab2020359"></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_self_adjoint_eigen_solver.html#a32a8e62742f6818ce6d748847d189604">SelfAdjointEigenSolver</a> (<a class="el" href="class_eigen_1_1_self_adjoint_eigen_solver.html#a564046d18d7a8ba9b86beabb178df44d">Index</a> size)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Constructor, pre-allocates memory for dynamic-size matrices.  <a href="#a32a8e62742f6818ce6d748847d189604"></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_self_adjoint_eigen_solver.html#adde7177cf95a124aaee7775837f17232">SelfAdjointEigenSolver</a> (const <a class="el" href="class_eigen_1_1_self_adjoint_eigen_solver.html#ad879830677047bd775f2f536f55bccd9">MatrixType</a> &amp;matrix, int options=ComputeEigenvectors)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Constructor; computes eigendecomposition of given matrix.  <a href="#adde7177cf95a124aaee7775837f17232"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="class_eigen_1_1_self_adjoint_eigen_solver.html">SelfAdjointEigenSolver</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_eigen_1_1_self_adjoint_eigen_solver.html#aa55221155ecdd9aabdf01aac58312142">compute</a> (const <a class="el" href="class_eigen_1_1_self_adjoint_eigen_solver.html#ad879830677047bd775f2f536f55bccd9">MatrixType</a> &amp;matrix, int options=ComputeEigenvectors)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Computes eigendecomposition of given matrix.  <a href="#aa55221155ecdd9aabdf01aac58312142"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">const <a class="el" href="class_eigen_1_1_self_adjoint_eigen_solver.html#ad879830677047bd775f2f536f55bccd9">MatrixType</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_eigen_1_1_self_adjoint_eigen_solver.html#a64ec384f6d84f4591e86c117a95d79dd">eigenvectors</a> () const </td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the eigenvectors of given matrix.  <a href="#a64ec384f6d84f4591e86c117a95d79dd"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">const <a class="el" href="class_eigen_1_1_self_adjoint_eigen_solver.html#aaff89ab2060a5b1bd480df34c332139b">RealVectorType</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_eigen_1_1_self_adjoint_eigen_solver.html#a57d8b8b0cc16f36ea536c135d432d9c6">eigenvalues</a> () const </td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the eigenvalues of given matrix.  <a href="#a57d8b8b0cc16f36ea536c135d432d9c6"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="class_eigen_1_1_self_adjoint_eigen_solver.html#ad879830677047bd775f2f536f55bccd9">MatrixType</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_eigen_1_1_self_adjoint_eigen_solver.html#adac84835921152b988ea6492e1ffd33f">operatorSqrt</a> () const </td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Computes the positive-definite square root of the matrix.  <a href="#adac84835921152b988ea6492e1ffd33f"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="class_eigen_1_1_self_adjoint_eigen_solver.html#ad879830677047bd775f2f536f55bccd9">MatrixType</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_eigen_1_1_self_adjoint_eigen_solver.html#ab00bee275449ca4c8542ef1a458b32e0">operatorInverseSqrt</a> () const </td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Computes the inverse square root of the matrix.  <a href="#ab00bee275449ca4c8542ef1a458b32e0"></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_self_adjoint_eigen_solver.html#a6679e2cfb5455822c06a3b3ed7e21f86">info</a> () const </td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Reports whether previous computation was successful.  <a href="#a6679e2cfb5455822c06a3b3ed7e21f86"></a><br/></td></tr>
<tr><td colspan="2"><h2><a name="pub-static-attribs"></a>
Static Public Attributes</h2></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">static const int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_eigen_1_1_self_adjoint_eigen_solver.html#ac051021a216fae4f0bdfce60e14e95b5">m_maxIterations</a> = 30</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Maximum number of iterations.  <a href="#ac051021a216fae4f0bdfce60e14e95b5"></a><br/></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_self_adjoint_eigen_solver.html#ad879830677047bd775f2f536f55bccd9">MatrixType</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_eigen_1_1_self_adjoint_eigen_solver.html#a715d3837f7bfb0dc9efde0958fab7b86">m_eivec</a></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="class_eigen_1_1_self_adjoint_eigen_solver.html#aaff89ab2060a5b1bd480df34c332139b">RealVectorType</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_eigen_1_1_self_adjoint_eigen_solver.html#ad898807091d3739022f83276f5084665">m_eivalues</a></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="class_eigen_1_1_tridiagonalization.html#a68729d89d61edbae954fc7ad0b72a5b8">TridiagonalizationType::SubDiagonalType</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_eigen_1_1_self_adjoint_eigen_solver.html#adffa6450c19a8f0dcabe9112769b4f8a">m_subdiag</a></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_self_adjoint_eigen_solver.html#a2ec157362437dce7aee7e39a83cdfd09">m_info</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_self_adjoint_eigen_solver.html#ab25fc78bc0cc8b45b6d09c6380c254d7">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_self_adjoint_eigen_solver.html#a34ab58fcdf065819146d24d448a630ff">m_eigenvectorsOk</a></td></tr>
</table>
<hr/><h2>Member Typedef Documentation</h2>
<a class="anchor" id="a564046d18d7a8ba9b86beabb178df44d"></a><!-- doxytag: member="Eigen::SelfAdjointEigenSolver::Index" ref="a564046d18d7a8ba9b86beabb178df44d" 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_self_adjoint_eigen_solver.html#a564046d18d7a8ba9b86beabb178df44d">Eigen::SelfAdjointEigenSolver::Index</a></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Reimplemented in <a class="el" href="class_eigen_1_1_generalized_self_adjoint_eigen_solver.html#ac083039976a591064d21f625d94ccf13">Eigen::GeneralizedSelfAdjointEigenSolver</a>.</p>

<p>Definition at line <a class="el" href="_eigenvalues_source.html#l00092">92</a> of file <a class="el" href="_eigenvalues_source.html">Eigenvalues</a>.</p>

</div>
</div>
<a class="anchor" id="ad879830677047bd775f2f536f55bccd9"></a><!-- doxytag: member="Eigen::SelfAdjointEigenSolver::MatrixType" ref="ad879830677047bd775f2f536f55bccd9" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">typedef _MatrixType <a class="el" href="class_eigen_1_1_self_adjoint_eigen_solver.html#ad879830677047bd775f2f536f55bccd9">Eigen::SelfAdjointEigenSolver::MatrixType</a></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Reimplemented in <a class="el" href="class_eigen_1_1_generalized_self_adjoint_eigen_solver.html#ace0ead5ee06d130a9edb04a03a9a6ae8">Eigen::GeneralizedSelfAdjointEigenSolver</a>.</p>

<p>Definition at line <a class="el" href="_eigenvalues_source.html#l00082">82</a> of file <a class="el" href="_eigenvalues_source.html">Eigenvalues</a>.</p>

</div>
</div>
<a class="anchor" id="ac0235ef4509f69439312494c98cc766a"></a><!-- doxytag: member="Eigen::SelfAdjointEigenSolver::RealScalar" ref="ac0235ef4509f69439312494c98cc766a" 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_self_adjoint_eigen_solver.html#acef1cdf0408cdd42447239760ea05e6d">Scalar</a>&gt;::Real <a class="el" href="class_eigen_1_1_self_adjoint_eigen_solver.html#ac0235ef4509f69439312494c98cc766a">Eigen::SelfAdjointEigenSolver::RealScalar</a></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Real scalar type for <code>_MatrixType</code>. </p>
<p>This is just <code>Scalar</code> if <a class="el" href="class_eigen_1_1_self_adjoint_eigen_solver.html#acef1cdf0408cdd42447239760ea05e6d" title="Scalar type for matrices of type _MatrixType.">Scalar</a> is real (e.g., <code>float</code> or <code>double</code>), and the type of the real part of <code>Scalar</code> if <a class="el" href="class_eigen_1_1_self_adjoint_eigen_solver.html#acef1cdf0408cdd42447239760ea05e6d" title="Scalar type for matrices of type _MatrixType.">Scalar</a> is complex. </p>

<p>Definition at line <a class="el" href="_eigenvalues_source.html#l00100">100</a> of file <a class="el" href="_eigenvalues_source.html">Eigenvalues</a>.</p>

</div>
</div>
<a class="anchor" id="aaff89ab2060a5b1bd480df34c332139b"></a><!-- doxytag: member="Eigen::SelfAdjointEigenSolver::RealVectorType" ref="aaff89ab2060a5b1bd480df34c332139b" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">typedef <a class="el" href="struct_eigen_1_1internal_1_1plain__col__type.html">internal::plain_col_type</a>&lt;<a class="el" href="class_eigen_1_1_self_adjoint_eigen_solver.html#ad879830677047bd775f2f536f55bccd9">MatrixType</a>, <a class="el" href="class_eigen_1_1_self_adjoint_eigen_solver.html#ac0235ef4509f69439312494c98cc766a">RealScalar</a>&gt;::type <a class="el" href="class_eigen_1_1_self_adjoint_eigen_solver.html#aaff89ab2060a5b1bd480df34c332139b">Eigen::SelfAdjointEigenSolver::RealVectorType</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_self_adjoint_eigen_solver.html#a57d8b8b0cc16f36ea536c135d432d9c6" 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_self_adjoint_eigen_solver.html#ac0235ef4509f69439312494c98cc766a" title="Real scalar type for _MatrixType.">RealScalar</a>. The length of the vector is the size of <code>_MatrixType</code>. </p>

<p>Definition at line <a class="el" href="_eigenvalues_source.html#l00107">107</a> of file <a class="el" href="_eigenvalues_source.html">Eigenvalues</a>.</p>

</div>
</div>
<a class="anchor" id="acef1cdf0408cdd42447239760ea05e6d"></a><!-- doxytag: member="Eigen::SelfAdjointEigenSolver::Scalar" ref="acef1cdf0408cdd42447239760ea05e6d" 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_self_adjoint_eigen_solver.html#acef1cdf0408cdd42447239760ea05e6d">Eigen::SelfAdjointEigenSolver::Scalar</a></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Scalar type for matrices of type <code>_MatrixType</code>. </p>

<p>Definition at line <a class="el" href="_eigenvalues_source.html#l00091">91</a> of file <a class="el" href="_eigenvalues_source.html">Eigenvalues</a>.</p>

</div>
</div>
<a class="anchor" id="aa4add29d57c114fc3f9b52a388a6ff49"></a><!-- doxytag: member="Eigen::SelfAdjointEigenSolver::TridiagonalizationType" ref="aa4add29d57c114fc3f9b52a388a6ff49" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">typedef <a class="el" href="class_eigen_1_1_tridiagonalization.html">Tridiagonalization</a>&lt;<a class="el" href="class_eigen_1_1_self_adjoint_eigen_solver.html#ad879830677047bd775f2f536f55bccd9">MatrixType</a>&gt; <a class="el" href="class_eigen_1_1_self_adjoint_eigen_solver.html#aa4add29d57c114fc3f9b52a388a6ff49">Eigen::SelfAdjointEigenSolver::TridiagonalizationType</a></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Definition at line <a class="el" href="_eigenvalues_source.html#l00108">108</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="a4acca1607afbd93130ad06aca9028514"></a><!-- doxytag: member="Eigen::SelfAdjointEigenSolver::@340" ref="a4acca1607afbd93130ad06aca9028514" 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="a4acca1607afbd93130ad06aca9028514a1d09a3b0c0c611c3d73fb593f9f2b7d1"></a><!-- doxytag: member="Size" ref="a4acca1607afbd93130ad06aca9028514a1d09a3b0c0c611c3d73fb593f9f2b7d1" args="" -->Size</em>&nbsp;</td><td>
</td></tr>
<tr><td valign="top"><em><a class="anchor" id="a4acca1607afbd93130ad06aca9028514ad8fef89c3166eeead4ae74fcaef52132"></a><!-- doxytag: member="ColsAtCompileTime" ref="a4acca1607afbd93130ad06aca9028514ad8fef89c3166eeead4ae74fcaef52132" args="" -->ColsAtCompileTime</em>&nbsp;</td><td>
</td></tr>
<tr><td valign="top"><em><a class="anchor" id="a4acca1607afbd93130ad06aca9028514a4eca2cf59140b6e35e3b313dce99c7c1"></a><!-- doxytag: member="Options" ref="a4acca1607afbd93130ad06aca9028514a4eca2cf59140b6e35e3b313dce99c7c1" args="" -->Options</em>&nbsp;</td><td>
</td></tr>
<tr><td valign="top"><em><a class="anchor" id="a4acca1607afbd93130ad06aca9028514a09a0d17e20cd16416a7413b75b099e94"></a><!-- doxytag: member="MaxColsAtCompileTime" ref="a4acca1607afbd93130ad06aca9028514a09a0d17e20cd16416a7413b75b099e94" args="" -->MaxColsAtCompileTime</em>&nbsp;</td><td>
</td></tr>
</table>
</dd>
</dl>

<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>
<hr/><h2>Constructor &amp; Destructor Documentation</h2>
<a class="anchor" id="a6064a93af73ce5e196f9ebdab2020359"></a><!-- doxytag: member="Eigen::SelfAdjointEigenSolver::SelfAdjointEigenSolver" ref="a6064a93af73ce5e196f9ebdab2020359" args="()" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">Eigen::SelfAdjointEigenSolver::SelfAdjointEigenSolver </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td><code> [inline]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Default constructor for fixed-size matrices. </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_self_adjoint_eigen_solver.html#aa55221155ecdd9aabdf01aac58312142" title="Computes eigendecomposition of given matrix.">compute()</a>. This constructor can only be used if <code>_MatrixType</code> is a fixed-size matrix; use <a class="el" href="class_eigen_1_1_self_adjoint_eigen_solver.html#a32a8e62742f6818ce6d748847d189604" title="Constructor, pre-allocates memory for dynamic-size matrices.">SelfAdjointEigenSolver(Index)</a> for dynamic-size matrices.</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#l00120">120</a> of file <a class="el" href="_eigenvalues_source.html">Eigenvalues</a>.</p>

</div>
</div>
<a class="anchor" id="a32a8e62742f6818ce6d748847d189604"></a><!-- doxytag: member="Eigen::SelfAdjointEigenSolver::SelfAdjointEigenSolver" ref="a32a8e62742f6818ce6d748847d189604" args="(Index size)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">Eigen::SelfAdjointEigenSolver::SelfAdjointEigenSolver </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="class_eigen_1_1_self_adjoint_eigen_solver.html#a564046d18d7a8ba9b86beabb178df44d">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>Constructor, pre-allocates memory for dynamic-size matrices. </p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">size</td><td>Positive integer, size of the matrix whose eigenvalues and eigenvectors will be computed.</td></tr>
  </table>
  </dd>
</dl>
<p>This constructor is useful for dynamic-size matrices, when the user intends to perform decompositions via <a class="el" href="class_eigen_1_1_self_adjoint_eigen_solver.html#aa55221155ecdd9aabdf01aac58312142" title="Computes eigendecomposition of given matrix.">compute()</a>. The <code>size</code> parameter is only used as a hint. It is not an error to give a wrong <code>size</code>, but it may impair performance.</p>
<dl class="see"><dt><b>See also:</b></dt><dd><a class="el" href="class_eigen_1_1_self_adjoint_eigen_solver.html#aa55221155ecdd9aabdf01aac58312142" title="Computes eigendecomposition of given matrix.">compute()</a> for an example </dd></dl>

<p>Definition at line <a class="el" href="_eigenvalues_source.html#l00139">139</a> of file <a class="el" href="_eigenvalues_source.html">Eigenvalues</a>.</p>

</div>
</div>
<a class="anchor" id="adde7177cf95a124aaee7775837f17232"></a><!-- doxytag: member="Eigen::SelfAdjointEigenSolver::SelfAdjointEigenSolver" ref="adde7177cf95a124aaee7775837f17232" args="(const MatrixType &amp;matrix, int options=ComputeEigenvectors)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">Eigen::SelfAdjointEigenSolver::SelfAdjointEigenSolver </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="class_eigen_1_1_self_adjoint_eigen_solver.html#ad879830677047bd775f2f536f55bccd9">MatrixType</a> &amp;&#160;</td>
          <td class="paramname"><em>matrix</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>options</em> = <code>ComputeEigenvectors</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>Selfadjoint matrix whose eigendecomposition is to be computed. Only the lower triangular part of the matrix is referenced. </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">options</td><td>Can be <a class="el" href="group__enums.html#ggae3e239fb70022eb8747994cf5d68b4a9a7f7d17fba3c9bb92158e346d5979d0f4" title="Used in SelfAdjointEigenSolver and GeneralizedSelfAdjointEigenSolver to specify that both the eigenva...">ComputeEigenvectors</a> (default) or <a class="el" href="group__enums.html#ggae3e239fb70022eb8747994cf5d68b4a9afd06633f270207c373875fd7ca03e906" title="Used in SelfAdjointEigenSolver and GeneralizedSelfAdjointEigenSolver to specify that only the eigenva...">EigenvaluesOnly</a>.</td></tr>
  </table>
  </dd>
</dl>
<p>This constructor calls <a class="el" href="class_eigen_1_1_self_adjoint_eigen_solver.html#aa55221155ecdd9aabdf01aac58312142" title="Computes eigendecomposition of given matrix.">compute(const MatrixType&amp;, int)</a> to compute the eigenvalues of the matrix <code>matrix</code>. The eigenvectors are computed if <code>options</code> equals <a class="el" href="group__enums.html#ggae3e239fb70022eb8747994cf5d68b4a9a7f7d17fba3c9bb92158e346d5979d0f4" title="Used in SelfAdjointEigenSolver and GeneralizedSelfAdjointEigenSolver to specify that both the eigenva...">ComputeEigenvectors</a>.</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_self_adjoint_eigen_solver.html#aa55221155ecdd9aabdf01aac58312142" title="Computes eigendecomposition of given matrix.">compute(const MatrixType&amp;, int)</a> </dd></dl>

<p>Definition at line <a class="el" href="_eigenvalues_source.html#l00161">161</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="aa55221155ecdd9aabdf01aac58312142"></a><!-- doxytag: member="Eigen::SelfAdjointEigenSolver::compute" ref="aa55221155ecdd9aabdf01aac58312142" args="(const MatrixType &amp;matrix, int options=ComputeEigenvectors)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="class_eigen_1_1_self_adjoint_eigen_solver.html">SelfAdjointEigenSolver</a>&lt; <a class="el" href="class_eigen_1_1_self_adjoint_eigen_solver.html#ad879830677047bd775f2f536f55bccd9">MatrixType</a> &gt; &amp; Eigen::SelfAdjointEigenSolver::compute </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="class_eigen_1_1_self_adjoint_eigen_solver.html#ad879830677047bd775f2f536f55bccd9">MatrixType</a> &amp;&#160;</td>
          <td class="paramname"><em>matrix</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>options</em> = <code>ComputeEigenvectors</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>Selfadjoint matrix whose eigendecomposition is to be computed. Only the lower triangular part of the matrix is referenced. </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">options</td><td>Can be <a class="el" href="group__enums.html#ggae3e239fb70022eb8747994cf5d68b4a9a7f7d17fba3c9bb92158e346d5979d0f4" title="Used in SelfAdjointEigenSolver and GeneralizedSelfAdjointEigenSolver to specify that both the eigenva...">ComputeEigenvectors</a> (default) or <a class="el" href="group__enums.html#ggae3e239fb70022eb8747994cf5d68b4a9afd06633f270207c373875fd7ca03e906" title="Used in SelfAdjointEigenSolver and GeneralizedSelfAdjointEigenSolver to specify that only the eigenva...">EigenvaluesOnly</a>. </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 <code>matrix</code>. The <a class="el" href="class_eigen_1_1_self_adjoint_eigen_solver.html#a57d8b8b0cc16f36ea536c135d432d9c6" title="Returns the eigenvalues of given matrix.">eigenvalues()</a> function can be used to retrieve them. If <code>options</code> equals <a class="el" href="group__enums.html#ggae3e239fb70022eb8747994cf5d68b4a9a7f7d17fba3c9bb92158e346d5979d0f4" title="Used in SelfAdjointEigenSolver and GeneralizedSelfAdjointEigenSolver to specify that both the eigenva...">ComputeEigenvectors</a>, then the eigenvectors are also computed and can be retrieved by calling <a class="el" href="class_eigen_1_1_self_adjoint_eigen_solver.html#a64ec384f6d84f4591e86c117a95d79dd" title="Returns the eigenvectors of given matrix.">eigenvectors()</a>.</p>
<p>This implementation uses a symmetric QR algorithm. The matrix is first reduced to tridiagonal form using the <a class="el" href="class_eigen_1_1_tridiagonalization.html">Tridiagonalization</a> class. The tridiagonal matrix is then brought to diagonal form with implicit symmetric QR steps with Wilkinson shift. Details can be found in Section 8.3 of Golub &amp; Van Loan, <em>Matrix Computations</em>.</p>
<p>The cost of the computation is about <img class="formulaInl" alt="$ 9n^3 $" src="form_200.png"/> if the eigenvectors are required and <img class="formulaInl" alt="$ 4n^3/3 $" src="form_182.png"/> if they are not required.</p>
<p>This method reuses the memory in the <a class="el" href="class_eigen_1_1_self_adjoint_eigen_solver.html">SelfAdjointEigenSolver</a> object that was allocated when the object was constructed, if the size of the matrix does not change.</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_self_adjoint_eigen_solver.html#adde7177cf95a124aaee7775837f17232" title="Constructor; computes eigendecomposition of given matrix.">SelfAdjointEigenSolver(const MatrixType&amp;, int)</a> </dd></dl>

<p>Definition at line <a class="el" href="_eigenvalues_source.html#l00376">376</a> of file <a class="el" href="_eigenvalues_source.html">Eigenvalues</a>.</p>

</div>
</div>
<a class="anchor" id="a57d8b8b0cc16f36ea536c135d432d9c6"></a><!-- doxytag: member="Eigen::SelfAdjointEigenSolver::eigenvalues" ref="a57d8b8b0cc16f36ea536c135d432d9c6" args="() const " -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">const <a class="el" href="class_eigen_1_1_self_adjoint_eigen_solver.html#aaff89ab2060a5b1bd480df34c332139b">RealVectorType</a>&amp; Eigen::SelfAdjointEigenSolver::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>The eigenvalues have been computed 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 sorted in increasing 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_self_adjoint_eigen_solver.html#a64ec384f6d84f4591e86c117a95d79dd" title="Returns the eigenvectors of given matrix.">eigenvectors()</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#l00242">242</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#l00140">Eigen::MatrixBase::eigenVectorsSymmetricVec()</a>, <a class="el" href="_random_generators_8h_source.html#l00196">mrpt::random::CRandomGenerator::drawGaussianMultivariate()</a>, and <a class="el" href="_random_generators_8h_source.html#l00239">mrpt::random::CRandomGenerator::drawGaussianMultivariateMany()</a>.</p>

</div>
</div>
<a class="anchor" id="a64ec384f6d84f4591e86c117a95d79dd"></a><!-- doxytag: member="Eigen::SelfAdjointEigenSolver::eigenvectors" ref="a64ec384f6d84f4591e86c117a95d79dd" args="() const " -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">const <a class="el" href="class_eigen_1_1_self_adjoint_eigen_solver.html#ad879830677047bd775f2f536f55bccd9">MatrixType</a>&amp; Eigen::SelfAdjointEigenSolver::eigenvectors </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td> const<code> [inline]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Returns the eigenvectors of given matrix. </p>
<dl class="return"><dt><b>Returns:</b></dt><dd>A const reference to the matrix whose columns are the eigenvectors.</dd></dl>
<dl class="pre"><dt><b>Precondition:</b></dt><dd>The eigenvectors have been computed before.</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_self_adjoint_eigen_solver.html#a57d8b8b0cc16f36ea536c135d432d9c6" title="Returns the eigenvalues of given matrix.">eigenvalues()</a>. The eigenvectors are normalized to have (Euclidean) norm equal to one. If this object was used to solve the eigenproblem for the selfadjoint matrix <img class="formulaInl" alt="$ A $" src="form_128.png"/>, then 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"/>.</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_self_adjoint_eigen_solver.html#a57d8b8b0cc16f36ea536c135d432d9c6" title="Returns the eigenvalues of given matrix.">eigenvalues()</a> </dd></dl>

<p>Definition at line <a class="el" href="_eigenvalues_source.html#l00220">220</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#l00140">Eigen::MatrixBase::eigenVectorsSymmetricVec()</a>, <a class="el" href="_random_generators_8h_source.html#l00196">mrpt::random::CRandomGenerator::drawGaussianMultivariate()</a>, and <a class="el" href="_random_generators_8h_source.html#l00239">mrpt::random::CRandomGenerator::drawGaussianMultivariateMany()</a>.</p>

</div>
</div>
<a class="anchor" id="a6679e2cfb5455822c06a3b3ed7e21f86"></a><!-- doxytag: member="Eigen::SelfAdjointEigenSolver::info" ref="a6679e2cfb5455822c06a3b3ed7e21f86" 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::SelfAdjointEigenSolver::info </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td> const<code> [inline]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Reports whether previous computation was successful. </p>
<dl class="return"><dt><b>Returns:</b></dt><dd><code>Success</code> if computation was succesful, <code>NoConvergence</code> otherwise. </dd></dl>

<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="ab00bee275449ca4c8542ef1a458b32e0"></a><!-- doxytag: member="Eigen::SelfAdjointEigenSolver::operatorInverseSqrt" ref="ab00bee275449ca4c8542ef1a458b32e0" args="() const " -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="class_eigen_1_1_self_adjoint_eigen_solver.html#ad879830677047bd775f2f536f55bccd9">MatrixType</a> Eigen::SelfAdjointEigenSolver::operatorInverseSqrt </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td> const<code> [inline]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Computes the inverse square root of the matrix. </p>
<dl class="return"><dt><b>Returns:</b></dt><dd>the inverse positive-definite square root of the matrix</dd></dl>
<dl class="pre"><dt><b>Precondition:</b></dt><dd>The eigenvalues and eigenvectors of a positive-definite matrix have been computed before.</dd></dl>
<p>This function uses the eigendecomposition <img class="formulaInl" alt="$ A = V D V^{-1} $" src="form_173.png"/> to compute the inverse square root as <img class="formulaInl" alt="$ V D^{-1/2} V^{-1} $" src="form_202.png"/>. This is cheaper than first computing the square root with <a class="el" href="class_eigen_1_1_self_adjoint_eigen_solver.html#adac84835921152b988ea6492e1ffd33f" title="Computes the positive-definite square root of the matrix.">operatorSqrt()</a> and then its inverse with <a class="el" href="class_eigen_1_1_matrix_base.html#a008dc30f0dfd362c4c8d27008eff6920">MatrixBase::inverse()</a>.</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_self_adjoint_eigen_solver.html#adac84835921152b988ea6492e1ffd33f" title="Computes the positive-definite square root of the matrix.">operatorSqrt()</a>, <a class="el" href="class_eigen_1_1_matrix_base.html#a008dc30f0dfd362c4c8d27008eff6920">MatrixBase::inverse()</a>, MatrixFunctions Module </dd></dl>

<p>Definition at line <a class="el" href="_eigenvalues_source.html#l00291">291</a> of file <a class="el" href="_eigenvalues_source.html">Eigenvalues</a>.</p>

</div>
</div>
<a class="anchor" id="adac84835921152b988ea6492e1ffd33f"></a><!-- doxytag: member="Eigen::SelfAdjointEigenSolver::operatorSqrt" ref="adac84835921152b988ea6492e1ffd33f" args="() const " -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="class_eigen_1_1_self_adjoint_eigen_solver.html#ad879830677047bd775f2f536f55bccd9">MatrixType</a> Eigen::SelfAdjointEigenSolver::operatorSqrt </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td> const<code> [inline]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Computes the positive-definite square root of the matrix. </p>
<dl class="return"><dt><b>Returns:</b></dt><dd>the positive-definite square root of the matrix</dd></dl>
<dl class="pre"><dt><b>Precondition:</b></dt><dd>The eigenvalues and eigenvectors of a positive-definite matrix have been computed before.</dd></dl>
<p>The square root of a positive-definite matrix <img class="formulaInl" alt="$ A $" src="form_128.png"/> is the positive-definite matrix whose square equals <img class="formulaInl" alt="$ A $" src="form_128.png"/>. This function uses the eigendecomposition <img class="formulaInl" alt="$ A = V D V^{-1} $" src="form_173.png"/> to compute the square root as <img class="formulaInl" alt="$ A^{1/2} = V D^{1/2} V^{-1} $" src="form_201.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_self_adjoint_eigen_solver.html#ab00bee275449ca4c8542ef1a458b32e0" title="Computes the inverse square root of the matrix.">operatorInverseSqrt()</a>, MatrixFunctions Module </dd></dl>

<p>Definition at line <a class="el" href="_eigenvalues_source.html#l00266">266</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="a34ab58fcdf065819146d24d448a630ff"></a><!-- doxytag: member="Eigen::SelfAdjointEigenSolver::m_eigenvectorsOk" ref="a34ab58fcdf065819146d24d448a630ff" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">bool <a class="el" href="class_eigen_1_1_self_adjoint_eigen_solver.html#a34ab58fcdf065819146d24d448a630ff">Eigen::SelfAdjointEigenSolver::m_eigenvectorsOk</a><code> [protected]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Definition at line <a class="el" href="_eigenvalues_source.html#l00350">350</a> of file <a class="el" href="_eigenvalues_source.html">Eigenvalues</a>.</p>

</div>
</div>
<a class="anchor" id="ad898807091d3739022f83276f5084665"></a><!-- doxytag: member="Eigen::SelfAdjointEigenSolver::m_eivalues" ref="ad898807091d3739022f83276f5084665" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="class_eigen_1_1_self_adjoint_eigen_solver.html#aaff89ab2060a5b1bd480df34c332139b">RealVectorType</a> <a class="el" href="class_eigen_1_1_self_adjoint_eigen_solver.html#ad898807091d3739022f83276f5084665">Eigen::SelfAdjointEigenSolver::m_eivalues</a><code> [protected]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Definition at line <a class="el" href="_eigenvalues_source.html#l00346">346</a> of file <a class="el" href="_eigenvalues_source.html">Eigenvalues</a>.</p>

</div>
</div>
<a class="anchor" id="a715d3837f7bfb0dc9efde0958fab7b86"></a><!-- doxytag: member="Eigen::SelfAdjointEigenSolver::m_eivec" ref="a715d3837f7bfb0dc9efde0958fab7b86" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="class_eigen_1_1_self_adjoint_eigen_solver.html#ad879830677047bd775f2f536f55bccd9">MatrixType</a> <a class="el" href="class_eigen_1_1_self_adjoint_eigen_solver.html#a715d3837f7bfb0dc9efde0958fab7b86">Eigen::SelfAdjointEigenSolver::m_eivec</a><code> [protected]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Definition at line <a class="el" href="_eigenvalues_source.html#l00345">345</a> of file <a class="el" href="_eigenvalues_source.html">Eigenvalues</a>.</p>

</div>
</div>
<a class="anchor" id="a2ec157362437dce7aee7e39a83cdfd09"></a><!-- doxytag: member="Eigen::SelfAdjointEigenSolver::m_info" ref="a2ec157362437dce7aee7e39a83cdfd09" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="namespace_eigen.html#a85fad7b87587764e5cf6b513a9e0ee5e">ComputationInfo</a> <a class="el" href="class_eigen_1_1_self_adjoint_eigen_solver.html#a2ec157362437dce7aee7e39a83cdfd09">Eigen::SelfAdjointEigenSolver::m_info</a><code> [protected]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Definition at line <a class="el" href="_eigenvalues_source.html#l00348">348</a> of file <a class="el" href="_eigenvalues_source.html">Eigenvalues</a>.</p>

</div>
</div>
<a class="anchor" id="ab25fc78bc0cc8b45b6d09c6380c254d7"></a><!-- doxytag: member="Eigen::SelfAdjointEigenSolver::m_isInitialized" ref="ab25fc78bc0cc8b45b6d09c6380c254d7" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">bool <a class="el" href="class_eigen_1_1_self_adjoint_eigen_solver.html#ab25fc78bc0cc8b45b6d09c6380c254d7">Eigen::SelfAdjointEigenSolver::m_isInitialized</a><code> [protected]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Definition at line <a class="el" href="_eigenvalues_source.html#l00349">349</a> of file <a class="el" href="_eigenvalues_source.html">Eigenvalues</a>.</p>

</div>
</div>
<a class="anchor" id="ac051021a216fae4f0bdfce60e14e95b5"></a><!-- doxytag: member="Eigen::SelfAdjointEigenSolver::m_maxIterations" ref="ac051021a216fae4f0bdfce60e14e95b5" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">const int <a class="el" href="class_eigen_1_1_self_adjoint_eigen_solver.html#ac051021a216fae4f0bdfce60e14e95b5">Eigen::SelfAdjointEigenSolver::m_maxIterations</a> = 30<code> [static]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Maximum number of iterations. </p>
<p>Maximum number of iterations allowed for an eigenvalue to converge. </p>

<p>Definition at line <a class="el" href="_eigenvalues_source.html#l00312">312</a> of file <a class="el" href="_eigenvalues_source.html">Eigenvalues</a>.</p>

</div>
</div>
<a class="anchor" id="adffa6450c19a8f0dcabe9112769b4f8a"></a><!-- doxytag: member="Eigen::SelfAdjointEigenSolver::m_subdiag" ref="adffa6450c19a8f0dcabe9112769b4f8a" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="class_eigen_1_1_tridiagonalization.html#a68729d89d61edbae954fc7ad0b72a5b8">TridiagonalizationType::SubDiagonalType</a> <a class="el" href="class_eigen_1_1_self_adjoint_eigen_solver.html#adffa6450c19a8f0dcabe9112769b4f8a">Eigen::SelfAdjointEigenSolver::m_subdiag</a><code> [protected]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Definition at line <a class="el" href="_eigenvalues_source.html#l00347">347</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>