Sophie

Sophie

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

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::GeneralizedSelfAdjointEigenSolver 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_generalized_self_adjoint_eigen_solver.html">GeneralizedSelfAdjointEigenSolver</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> &#124;
<a href="#pri-types">Private Types</a>  </div>
  <div class="headertitle">
<div class="title">Eigen::GeneralizedSelfAdjointEigenSolver 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::GeneralizedSelfAdjointEigenSolver" --><!-- doxytag: inherits="SelfAdjointEigenSolver&lt; _MatrixType &gt;" --><hr/><a name="details" id="details"></a><h2>Detailed Description</h2>
<div class="textblock"><p>Computes eigenvalues and eigenvectors of the generalized selfadjoint eigen problem</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>This class solves the generalized eigenvalue problem <img class="formulaInl" alt="$ Av = \lambda Bv $" src="form_177.png"/>. In this case, the matrix <img class="formulaInl" alt="$ A $" src="form_128.png"/> should be selfadjoint and the matrix <img class="formulaInl" alt="$ B $" src="form_178.png"/> should be positive definite.</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_generalized_self_adjoint_eigen_solver.html#a8e268a005b1b0adcc4dd1e8edb8d3f65" title="Computes generalized eigendecomposition of given matrix pencil.">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_generalized_self_adjoint_eigen_solver.html#a8c1fdec3432306c6519512e08598fc0b" title="Constructor; computes generalized eigendecomposition of given matrix pencil.">GeneralizedSelfAdjointEigenSolver(const MatrixType&amp;, 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_generalized_self_adjoint_eigen_solver.html#a8c1fdec3432306c6519512e08598fc0b" title="Constructor; computes generalized eigendecomposition of given matrix pencil.">GeneralizedSelfAdjointEigenSolver(const MatrixType&amp;, const MatrixType&amp;, int)</a> contains an example of the typical use of this class.</p>
<dl class="see"><dt><b>See also:</b></dt><dd>class <a class="el" href="class_eigen_1_1_self_adjoint_eigen_solver.html">SelfAdjointEigenSolver</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>
</div><div class="dynheader">
Inheritance diagram for Eigen::GeneralizedSelfAdjointEigenSolver:</div>
<div class="dyncontent">
<div class="center"><img src="class_eigen_1_1_generalized_self_adjoint_eigen_solver__inherit__graph.png" border="0" usemap="#_eigen_1_1_generalized_self_adjoint_eigen_solver_inherit__map" alt="Inheritance graph"/></div>
<map name="_eigen_1_1_generalized_self_adjoint_eigen_solver_inherit__map" id="_eigen_1_1_generalized_self_adjoint_eigen_solver_inherit__map">
<area shape="rect" id="node2" 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="node4" href="class_eigen_1_1_self_adjoint_eigen_solver.html" title="Eigen::SelfAdjointEigenSolver" alt="" coords="53,5,248,32"/></map>
<center><span class="legend">[<a href="graph_legend.html">legend</a>]</span></center></div>

<p><a href="class_eigen_1_1_generalized_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">typedef <a class="el" href="class_eigen_1_1_self_adjoint_eigen_solver.html#a564046d18d7a8ba9b86beabb178df44d">Base::Index</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_eigen_1_1_generalized_self_adjoint_eigen_solver.html#ac083039976a591064d21f625d94ccf13">Index</a></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_generalized_self_adjoint_eigen_solver.html#ace0ead5ee06d130a9edb04a03a9a6ae8">MatrixType</a></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom"></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 <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_generalized_self_adjoint_eigen_solver.html#ace0ead5ee06d130a9edb04a03a9a6ae8">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 eigenvalues().  <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_generalized_self_adjoint_eigen_solver.html#ace0ead5ee06d130a9edb04a03a9a6ae8">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_generalized_self_adjoint_eigen_solver.html#a169faa95e04a9cc47140445f6ded9ae2">GeneralizedSelfAdjointEigenSolver</a> ()</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Default constructor for fixed-size matrices.  <a href="#a169faa95e04a9cc47140445f6ded9ae2"></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_generalized_self_adjoint_eigen_solver.html#acbc1ca352f1d454fb5f5949a5adc925c">GeneralizedSelfAdjointEigenSolver</a> (<a class="el" href="class_eigen_1_1_generalized_self_adjoint_eigen_solver.html#ac083039976a591064d21f625d94ccf13">Index</a> size)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Constructor, pre-allocates memory for dynamic-size matrices.  <a href="#acbc1ca352f1d454fb5f5949a5adc925c"></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_generalized_self_adjoint_eigen_solver.html#a8c1fdec3432306c6519512e08598fc0b">GeneralizedSelfAdjointEigenSolver</a> (const <a class="el" href="class_eigen_1_1_generalized_self_adjoint_eigen_solver.html#ace0ead5ee06d130a9edb04a03a9a6ae8">MatrixType</a> &amp;matA, const <a class="el" href="class_eigen_1_1_generalized_self_adjoint_eigen_solver.html#ace0ead5ee06d130a9edb04a03a9a6ae8">MatrixType</a> &amp;matB, int options=ComputeEigenvectors|Ax_lBx)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Constructor; computes generalized eigendecomposition of given matrix pencil.  <a href="#a8c1fdec3432306c6519512e08598fc0b"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="class_eigen_1_1_generalized_self_adjoint_eigen_solver.html">GeneralizedSelfAdjointEigenSolver</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_eigen_1_1_generalized_self_adjoint_eigen_solver.html#a8e268a005b1b0adcc4dd1e8edb8d3f65">compute</a> (const <a class="el" href="class_eigen_1_1_generalized_self_adjoint_eigen_solver.html#ace0ead5ee06d130a9edb04a03a9a6ae8">MatrixType</a> &amp;matA, const <a class="el" href="class_eigen_1_1_generalized_self_adjoint_eigen_solver.html#ace0ead5ee06d130a9edb04a03a9a6ae8">MatrixType</a> &amp;matB, int options=ComputeEigenvectors|Ax_lBx)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Computes generalized eigendecomposition of given matrix pencil.  <a href="#a8e268a005b1b0adcc4dd1e8edb8d3f65"></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_generalized_self_adjoint_eigen_solver.html#ace0ead5ee06d130a9edb04a03a9a6ae8">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_generalized_self_adjoint_eigen_solver.html#ace0ead5ee06d130a9edb04a03a9a6ae8">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_generalized_self_adjoint_eigen_solver.html#ace0ead5ee06d130a9edb04a03a9a6ae8">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_generalized_self_adjoint_eigen_solver.html#ace0ead5ee06d130a9edb04a03a9a6ae8">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></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_generalized_self_adjoint_eigen_solver.html#ace0ead5ee06d130a9edb04a03a9a6ae8">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>
<tr><td colspan="2"><h2><a name="pri-types"></a>
Private Types</h2></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">typedef <a class="el" href="class_eigen_1_1_self_adjoint_eigen_solver.html">SelfAdjointEigenSolver</a><br class="typebreak"/>
&lt; _MatrixType &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_eigen_1_1_generalized_self_adjoint_eigen_solver.html#a4dd444c963ca939016ea74693130b525">Base</a></td></tr>
</table>
<hr/><h2>Member Typedef Documentation</h2>
<a class="anchor" id="a4dd444c963ca939016ea74693130b525"></a><!-- doxytag: member="Eigen::GeneralizedSelfAdjointEigenSolver::Base" ref="a4dd444c963ca939016ea74693130b525" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">typedef <a class="el" href="class_eigen_1_1_self_adjoint_eigen_solver.html">SelfAdjointEigenSolver</a>&lt;_MatrixType&gt; <a class="el" href="class_eigen_1_1_generalized_self_adjoint_eigen_solver.html#a4dd444c963ca939016ea74693130b525">Eigen::GeneralizedSelfAdjointEigenSolver::Base</a><code> [private]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

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

</div>
</div>
<a class="anchor" id="ac083039976a591064d21f625d94ccf13"></a><!-- doxytag: member="Eigen::GeneralizedSelfAdjointEigenSolver::Index" ref="ac083039976a591064d21f625d94ccf13" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">typedef <a class="el" href="class_eigen_1_1_self_adjoint_eigen_solver.html#a564046d18d7a8ba9b86beabb178df44d">Base::Index</a> <a class="el" href="class_eigen_1_1_generalized_self_adjoint_eigen_solver.html#ac083039976a591064d21f625d94ccf13">Eigen::GeneralizedSelfAdjointEigenSolver::Index</a></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Reimplemented from <a class="el" href="class_eigen_1_1_self_adjoint_eigen_solver.html#a564046d18d7a8ba9b86beabb178df44d">Eigen::SelfAdjointEigenSolver&lt; _MatrixType &gt;</a>.</p>

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

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

<p>Reimplemented from <a class="el" href="class_eigen_1_1_self_adjoint_eigen_solver.html#ad879830677047bd775f2f536f55bccd9">Eigen::SelfAdjointEigenSolver&lt; _MatrixType &gt;</a>.</p>

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

</div>
</div>
<a class="anchor" id="ac0235ef4509f69439312494c98cc766a"></a><!-- doxytag: member="Eigen::GeneralizedSelfAdjointEigenSolver::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><code> [inherited]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Real scalar type for <code>_MatrixType</code>. </p>
<p>This is just <code>Scalar</code> if #Scalar is real (e.g., <code>float</code> or <code>double</code>), and the type of the real part of <code>Scalar</code> if #Scalar 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::GeneralizedSelfAdjointEigenSolver::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_generalized_self_adjoint_eigen_solver.html#ace0ead5ee06d130a9edb04a03a9a6ae8">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><code> [inherited]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Type for vector of eigenvalues as returned by eigenvalues(). </p>
<p>This is a column vector with entries of type #RealScalar. 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::GeneralizedSelfAdjointEigenSolver::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><code> [inherited]</code></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::GeneralizedSelfAdjointEigenSolver::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_generalized_self_adjoint_eigen_solver.html#ace0ead5ee06d130a9edb04a03a9a6ae8">MatrixType</a>&gt; <a class="el" href="class_eigen_1_1_self_adjoint_eigen_solver.html#aa4add29d57c114fc3f9b52a388a6ff49">Eigen::SelfAdjointEigenSolver::TridiagonalizationType</a><code> [inherited]</code></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::GeneralizedSelfAdjointEigenSolver::@340" ref="a4acca1607afbd93130ad06aca9028514" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">anonymous enum<code> [inherited]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<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="a169faa95e04a9cc47140445f6ded9ae2"></a><!-- doxytag: member="Eigen::GeneralizedSelfAdjointEigenSolver::GeneralizedSelfAdjointEigenSolver" ref="a169faa95e04a9cc47140445f6ded9ae2" args="()" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">Eigen::GeneralizedSelfAdjointEigenSolver::GeneralizedSelfAdjointEigenSolver </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_generalized_self_adjoint_eigen_solver.html#a8e268a005b1b0adcc4dd1e8edb8d3f65" title="Computes generalized eigendecomposition of given matrix pencil.">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_generalized_self_adjoint_eigen_solver.html#acbc1ca352f1d454fb5f5949a5adc925c" title="Constructor, pre-allocates memory for dynamic-size matrices.">GeneralizedSelfAdjointEigenSolver(Index)</a> for dynamic-size matrices. </p>

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

</div>
</div>
<a class="anchor" id="acbc1ca352f1d454fb5f5949a5adc925c"></a><!-- doxytag: member="Eigen::GeneralizedSelfAdjointEigenSolver::GeneralizedSelfAdjointEigenSolver" ref="acbc1ca352f1d454fb5f5949a5adc925c" args="(Index size)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">Eigen::GeneralizedSelfAdjointEigenSolver::GeneralizedSelfAdjointEigenSolver </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="class_eigen_1_1_generalized_self_adjoint_eigen_solver.html#ac083039976a591064d21f625d94ccf13">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_generalized_self_adjoint_eigen_solver.html#a8e268a005b1b0adcc4dd1e8edb8d3f65" title="Computes generalized eigendecomposition of given matrix pencil.">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_generalized_self_adjoint_eigen_solver.html#a8e268a005b1b0adcc4dd1e8edb8d3f65" title="Computes generalized eigendecomposition of given matrix pencil.">compute()</a> for an example </dd></dl>

<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="a8c1fdec3432306c6519512e08598fc0b"></a><!-- doxytag: member="Eigen::GeneralizedSelfAdjointEigenSolver::GeneralizedSelfAdjointEigenSolver" ref="a8c1fdec3432306c6519512e08598fc0b" args="(const MatrixType &amp;matA, const MatrixType &amp;matB, int options=ComputeEigenvectors|Ax_lBx)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">Eigen::GeneralizedSelfAdjointEigenSolver::GeneralizedSelfAdjointEigenSolver </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="class_eigen_1_1_generalized_self_adjoint_eigen_solver.html#ace0ead5ee06d130a9edb04a03a9a6ae8">MatrixType</a> &amp;&#160;</td>
          <td class="paramname"><em>matA</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="class_eigen_1_1_generalized_self_adjoint_eigen_solver.html#ace0ead5ee06d130a9edb04a03a9a6ae8">MatrixType</a> &amp;&#160;</td>
          <td class="paramname"><em>matB</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>options</em> = <code>ComputeEigenvectors|Ax_lBx</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 generalized eigendecomposition of given matrix pencil. </p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">matA</td><td>Selfadjoint matrix in matrix pencil. Only the lower triangular part of the matrix is referenced. </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">matB</td><td>Positive-definite matrix in matrix pencil. Only the lower triangular part of the matrix is referenced. </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">options</td><td>A or-ed set of flags {<a class="el" href="group__enums.html#ggae3e239fb70022eb8747994cf5d68b4a9a7f7d17fba3c9bb92158e346d5979d0f4" title="Used in SelfAdjointEigenSolver and GeneralizedSelfAdjointEigenSolver to specify that both the eigenva...">ComputeEigenvectors</a>,<a class="el" href="group__enums.html#ggae3e239fb70022eb8747994cf5d68b4a9afd06633f270207c373875fd7ca03e906" title="Used in SelfAdjointEigenSolver and GeneralizedSelfAdjointEigenSolver to specify that only the eigenva...">EigenvaluesOnly</a>} | {<a class="el" href="group__enums.html#ggae3e239fb70022eb8747994cf5d68b4a9a5eb11a88a4bd445f58f1b24598d3848f" title="Used in GeneralizedSelfAdjointEigenSolver to indicate that it should solve the generalized eigenprobl...">Ax_lBx</a>,<a class="el" href="group__enums.html#ggae3e239fb70022eb8747994cf5d68b4a9a9a7d9813cec527e299a36b749b0f7e1e" title="Used in GeneralizedSelfAdjointEigenSolver to indicate that it should solve the generalized eigenprobl...">ABx_lx</a>,<a class="el" href="group__enums.html#ggae3e239fb70022eb8747994cf5d68b4a9a9870817d373c41ba0dc7f6b5ab0895b8" title="Used in GeneralizedSelfAdjointEigenSolver to indicate that it should solve the generalized eigenprobl...">BAx_lx</a>}. Default is <a class="el" href="group__enums.html#ggae3e239fb70022eb8747994cf5d68b4a9a7f7d17fba3c9bb92158e346d5979d0f4" title="Used in SelfAdjointEigenSolver and GeneralizedSelfAdjointEigenSolver to specify that both the eigenva...">ComputeEigenvectors</a>|<a class="el" href="group__enums.html#ggae3e239fb70022eb8747994cf5d68b4a9a5eb11a88a4bd445f58f1b24598d3848f" title="Used in GeneralizedSelfAdjointEigenSolver to indicate that it should solve the generalized eigenprobl...">Ax_lBx</a>.</td></tr>
  </table>
  </dd>
</dl>
<p>This constructor calls <a class="el" href="class_eigen_1_1_generalized_self_adjoint_eigen_solver.html#a8e268a005b1b0adcc4dd1e8edb8d3f65" title="Computes generalized eigendecomposition of given matrix pencil.">compute(const MatrixType&amp;, const MatrixType&amp;, int)</a> to compute the eigenvalues and (if requested) the eigenvectors of the generalized eigenproblem <img class="formulaInl" alt="$ Ax = \lambda B x $" src="form_151.png"/> with <em>matA</em> the selfadjoint matrix <img class="formulaInl" alt="$ A $" src="form_128.png"/> and <em>matB</em> the positive definite matrix <img class="formulaInl" alt="$ B $" src="form_178.png"/>. Each eigenvector <img class="formulaInl" alt="$ x $" src="form_148.png"/> satisfies the property <img class="formulaInl" alt="$ x^* B x = 1 $" src="form_203.png"/>. The eigenvectors are computed if <em>options</em> contains ComputeEigenvectors.</p>
<p>In addition, the two following variants can be solved via <code>options:</code> </p>
<ul>
<li><code>ABx_lx:</code> <img class="formulaInl" alt="$ ABx = \lambda x $" src="form_152.png"/></li>
<li><code>BAx_lx:</code> <img class="formulaInl" alt="$ BAx = \lambda x $" src="form_153.png"/></li>
</ul>
<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_generalized_self_adjoint_eigen_solver.html#a8e268a005b1b0adcc4dd1e8edb8d3f65" title="Computes generalized eigendecomposition of given matrix pencil.">compute(const MatrixType&amp;, const MatrixType&amp;, int)</a> </dd></dl>

<p>Definition at line <a class="el" href="_eigenvalues_source.html#l00121">121</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="a8e268a005b1b0adcc4dd1e8edb8d3f65"></a><!-- doxytag: member="Eigen::GeneralizedSelfAdjointEigenSolver::compute" ref="a8e268a005b1b0adcc4dd1e8edb8d3f65" args="(const MatrixType &amp;matA, const MatrixType &amp;matB, int options=ComputeEigenvectors|Ax_lBx)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="class_eigen_1_1_generalized_self_adjoint_eigen_solver.html">GeneralizedSelfAdjointEigenSolver</a>&lt; <a class="el" href="class_eigen_1_1_generalized_self_adjoint_eigen_solver.html#ace0ead5ee06d130a9edb04a03a9a6ae8">MatrixType</a> &gt; &amp; Eigen::GeneralizedSelfAdjointEigenSolver::compute </td>
          <td>(</td>
          <td class="paramtype">const <a class="el" href="class_eigen_1_1_generalized_self_adjoint_eigen_solver.html#ace0ead5ee06d130a9edb04a03a9a6ae8">MatrixType</a> &amp;&#160;</td>
          <td class="paramname"><em>matA</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="class_eigen_1_1_generalized_self_adjoint_eigen_solver.html#ace0ead5ee06d130a9edb04a03a9a6ae8">MatrixType</a> &amp;&#160;</td>
          <td class="paramname"><em>matB</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>options</em> = <code>ComputeEigenvectors|Ax_lBx</code>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Computes generalized eigendecomposition of given matrix pencil. </p>
<dl><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">matA</td><td>Selfadjoint matrix in matrix pencil. Only the lower triangular part of the matrix is referenced. </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">matB</td><td>Positive-definite matrix in matrix pencil. Only the lower triangular part of the matrix is referenced. </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">options</td><td>A or-ed set of flags {<a class="el" href="group__enums.html#ggae3e239fb70022eb8747994cf5d68b4a9a7f7d17fba3c9bb92158e346d5979d0f4" title="Used in SelfAdjointEigenSolver and GeneralizedSelfAdjointEigenSolver to specify that both the eigenva...">ComputeEigenvectors</a>,<a class="el" href="group__enums.html#ggae3e239fb70022eb8747994cf5d68b4a9afd06633f270207c373875fd7ca03e906" title="Used in SelfAdjointEigenSolver and GeneralizedSelfAdjointEigenSolver to specify that only the eigenva...">EigenvaluesOnly</a>} | {<a class="el" href="group__enums.html#ggae3e239fb70022eb8747994cf5d68b4a9a5eb11a88a4bd445f58f1b24598d3848f" title="Used in GeneralizedSelfAdjointEigenSolver to indicate that it should solve the generalized eigenprobl...">Ax_lBx</a>,<a class="el" href="group__enums.html#ggae3e239fb70022eb8747994cf5d68b4a9a9a7d9813cec527e299a36b749b0f7e1e" title="Used in GeneralizedSelfAdjointEigenSolver to indicate that it should solve the generalized eigenprobl...">ABx_lx</a>,<a class="el" href="group__enums.html#ggae3e239fb70022eb8747994cf5d68b4a9a9870817d373c41ba0dc7f6b5ab0895b8" title="Used in GeneralizedSelfAdjointEigenSolver to indicate that it should solve the generalized eigenprobl...">BAx_lx</a>}. Default is <a class="el" href="group__enums.html#ggae3e239fb70022eb8747994cf5d68b4a9a7f7d17fba3c9bb92158e346d5979d0f4" title="Used in SelfAdjointEigenSolver and GeneralizedSelfAdjointEigenSolver to specify that both the eigenva...">ComputeEigenvectors</a>|<a class="el" href="group__enums.html#ggae3e239fb70022eb8747994cf5d68b4a9a5eb11a88a4bd445f58f1b24598d3848f" title="Used in GeneralizedSelfAdjointEigenSolver to indicate that it should solve the generalized eigenprobl...">Ax_lBx</a>.</td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>Reference to <code>*this</code> </dd></dl>
<p>Accoring to <code>options</code>, this function computes eigenvalues and (if requested) the eigenvectors of one of the following three generalized eigenproblems:</p>
<ul>
<li><code>Ax_lBx:</code> <img class="formulaInl" alt="$ Ax = \lambda B x $" src="form_151.png"/></li>
<li><code>ABx_lx:</code> <img class="formulaInl" alt="$ ABx = \lambda x $" src="form_152.png"/></li>
<li><code>BAx_lx:</code> <img class="formulaInl" alt="$ BAx = \lambda x $" src="form_153.png"/> with <em>matA</em> the selfadjoint matrix <img class="formulaInl" alt="$ A $" src="form_128.png"/> and <em>matB</em> the positive definite matrix <img class="formulaInl" alt="$ B $" src="form_178.png"/>. In addition, each eigenvector <img class="formulaInl" alt="$ x $" src="form_148.png"/> satisfies the property <img class="formulaInl" alt="$ x^* B x = 1 $" src="form_203.png"/>.</li>
</ul>
<p>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 the eigenvalues. If <code>options</code> contains ComputeEigenvectors, 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>The implementation uses <a class="el" href="class_eigen_1_1_l_l_t.html" title="Standard Cholesky decomposition (LL^T) of a matrix and associated features.">LLT</a> to compute the Cholesky decomposition <img class="formulaInl" alt="$ B = LL^* $" src="form_204.png"/> and computes the classical eigendecomposition of the selfadjoint matrix <img class="formulaInl" alt="$ L^{-1} A (L^*)^{-1} $" src="form_205.png"/> if <code>options</code> contains Ax_lBx and of <img class="formulaInl" alt="$ L^{*} A L $" src="form_206.png"/> otherwise. This solves the generalized eigenproblem, because any solution of the generalized eigenproblem <img class="formulaInl" alt="$ Ax = \lambda B x $" src="form_151.png"/> corresponds to a solution <img class="formulaInl" alt="$ L^{-1} A (L^*)^{-1} (L^* x) = \lambda (L^* x) $" src="form_207.png"/> of the eigenproblem for <img class="formulaInl" alt="$ L^{-1} A (L^*)^{-1} $" src="form_205.png"/>. Similar statements can be made for the two other variants.</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_generalized_self_adjoint_eigen_solver.html#a8c1fdec3432306c6519512e08598fc0b" title="Constructor; computes generalized eigendecomposition of given matrix pencil.">GeneralizedSelfAdjointEigenSolver(const MatrixType&amp;, const MatrixType&amp;, int)</a> </dd></dl>

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

</div>
</div>
<a class="anchor" id="aa55221155ecdd9aabdf01aac58312142"></a><!-- doxytag: member="Eigen::GeneralizedSelfAdjointEigenSolver::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>&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><code> [inherited]</code></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 #ComputeEigenvectors (default) or #EigenvaluesOnly. </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 eigenvalues() function can be used to retrieve them. If <code>options</code> equals #ComputeEigenvectors, then the eigenvectors are also computed and can be retrieved by calling eigenvectors().</p>
<p>This implementation uses a symmetric QR algorithm. The matrix is first reduced to tridiagonal form using the Tridiagonalization 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 SelfAdjointEigenSolver 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>SelfAdjointEigenSolver(const MatrixType&amp;, int) </dd></dl>

</div>
</div>
<a class="anchor" id="a57d8b8b0cc16f36ea536c135d432d9c6"></a><!-- doxytag: member="Eigen::GeneralizedSelfAdjointEigenSolver::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, inherited]</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>eigenvectors(), MatrixBase::eigenvalues() </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>

</div>
</div>
<a class="anchor" id="a64ec384f6d84f4591e86c117a95d79dd"></a><!-- doxytag: member="Eigen::GeneralizedSelfAdjointEigenSolver::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_generalized_self_adjoint_eigen_solver.html#ace0ead5ee06d130a9edb04a03a9a6ae8">MatrixType</a>&amp; Eigen::SelfAdjointEigenSolver::eigenvectors </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td> const<code> [inline, inherited]</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 eigenvalues(). 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>eigenvalues() </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>

</div>
</div>
<a class="anchor" id="a6679e2cfb5455822c06a3b3ed7e21f86"></a><!-- doxytag: member="Eigen::GeneralizedSelfAdjointEigenSolver::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, inherited]</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::GeneralizedSelfAdjointEigenSolver::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_generalized_self_adjoint_eigen_solver.html#ace0ead5ee06d130a9edb04a03a9a6ae8">MatrixType</a> Eigen::SelfAdjointEigenSolver::operatorInverseSqrt </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td> const<code> [inline, inherited]</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 operatorSqrt() and then its inverse with MatrixBase::inverse().</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>operatorSqrt(), MatrixBase::inverse(), 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::GeneralizedSelfAdjointEigenSolver::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_generalized_self_adjoint_eigen_solver.html#ace0ead5ee06d130a9edb04a03a9a6ae8">MatrixType</a> Eigen::SelfAdjointEigenSolver::operatorSqrt </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td> const<code> [inline, inherited]</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>operatorInverseSqrt(), 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::GeneralizedSelfAdjointEigenSolver::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, inherited]</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::GeneralizedSelfAdjointEigenSolver::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, inherited]</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::GeneralizedSelfAdjointEigenSolver::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_generalized_self_adjoint_eigen_solver.html#ace0ead5ee06d130a9edb04a03a9a6ae8">MatrixType</a> <a class="el" href="class_eigen_1_1_self_adjoint_eigen_solver.html#a715d3837f7bfb0dc9efde0958fab7b86">Eigen::SelfAdjointEigenSolver::m_eivec</a><code> [protected, inherited]</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::GeneralizedSelfAdjointEigenSolver::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, inherited]</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::GeneralizedSelfAdjointEigenSolver::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, inherited]</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::GeneralizedSelfAdjointEigenSolver::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><code> [static, inherited]</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::GeneralizedSelfAdjointEigenSolver::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, inherited]</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>