Sophie

Sophie

distrib > Mageia > 4 > x86_64 > by-pkgid > 99cb5ede6a5329071fbeecc8218deb35 > files > 423

eigen3-doc-3.2-3.mga4.noarch.rpm

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.5"/>
<title>Eigen: GeneralizedSelfAdjointEigenSolver&lt; _MatrixType &gt; Class Template Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="navtree.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="resize.js"></script>
<script type="text/javascript" src="navtree.js"></script>
<script type="text/javascript">
  $(document).ready(initResizable);
  $(window).load(resizeHeight);
</script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/search.js"></script>
<script type="text/javascript">
  $(document).ready(function() { searchBox.OnSelectItem(0); });
</script>
<link href="doxygen.css"   rel="stylesheet" type="text/css" />
<link href="eigendoxy.css" rel="stylesheet" type="text/css">
<!--  -->
<script type="text/javascript" src="eigen_navtree_hacks.js"></script>
<!-- <script type="text/javascript"> -->
<!-- </script> -->
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<!-- <a name="top"></a> -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
 <tbody>
 <tr style="height: 56px;">
  <td id="projectlogo"><img alt="Logo" src="Eigen_Silly_Professor_64x64.png"/></td>
  <td style="padding-left: 0.5em;">
   <div id="projectname"><a href="http://eigen.tuxfamily.org">Eigen</a>
   &#160;<span id="projectnumber">3.2.0</span>
   </div>
  </td>
   <td>        <div id="MSearchBox" class="MSearchBoxInactive">
        <span class="left">
          <img id="MSearchSelect" src="search/mag_sel.png"
               onmouseover="return searchBox.OnSearchSelectShow()"
               onmouseout="return searchBox.OnSearchSelectHide()"
               alt=""/>
          <input type="text" id="MSearchField" value="Search" accesskey="S"
               onfocus="searchBox.OnSearchFieldFocus(true)" 
               onblur="searchBox.OnSearchFieldFocus(false)" 
               onkeyup="searchBox.OnSearchFieldChange(event)"/>
          </span><span class="right">
            <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
          </span>
        </div>
</td>
 </tr>
 </tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.5 -->
<script type="text/javascript">
var searchBox = new SearchBox("searchBox", "search",false,'Search');
</script>
</div><!-- top -->
<div id="side-nav" class="ui-resizable side-nav-resizable">
  <div id="nav-tree">
    <div id="nav-tree-contents">
      <div id="nav-sync" class="sync"></div>
    </div>
  </div>
  <div id="splitbar" style="-moz-user-select:none;" 
       class="ui-resizable-handle">
  </div>
</div>
<script type="text/javascript">
$(document).ready(function(){initNavTree('classEigen_1_1GeneralizedSelfAdjointEigenSolver.html','');});
</script>
<div id="doc-content">
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
     onmouseover="return searchBox.OnSearchSelectShow()"
     onmouseout="return searchBox.OnSearchSelectHide()"
     onkeydown="return searchBox.OnSearchSelectKey(event)">
<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Namespaces</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark">&#160;</span>Friends</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(9)"><span class="SelectionMark">&#160;</span>Groups</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(10)"><span class="SelectionMark">&#160;</span>Pages</a></div>

<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<iframe src="javascript:void(0)" frameborder="0" 
        name="MSearchResults" id="MSearchResults">
</iframe>
</div>

<div class="header">
  <div class="summary">
<a href="classEigen_1_1GeneralizedSelfAdjointEigenSolver-members.html">List of all members</a> &#124;
<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>  </div>
  <div class="headertitle">
<div class="title">GeneralizedSelfAdjointEigenSolver&lt; _MatrixType &gt; Class Template Reference<div class="ingroups"><a class="el" href="group__Eigenvalues__Module.html">Eigenvalues module</a></div></div>  </div>
</div><!--header-->
<div class="contents">
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
<div class="textblock"><h3>template&lt;typename _MatrixType&gt;<br/>
class Eigen::GeneralizedSelfAdjointEigenSolver&lt; _MatrixType &gt;</h3>

<p>Computes eigenvalues and eigenvectors of the generalized selfadjoint eigen problem. </p>
<p>This is defined in the Eigenvalues module.</p>
<div class="fragment"><div class="line"><span class="preprocessor">#include &lt;Eigen/Eigenvalues&gt;</span> </div>
</div><!-- fragment --><dl class="tparams"><dt>Template Parameters</dt><dd>
  <table class="tparams">
    <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="classEigen_1_1Matrix.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_57.png"/>. In this case, the matrix <img class="formulaInl" alt="$ A $" src="form_1.png"/> should be selfadjoint and the matrix <img class="formulaInl" alt="$ B $" src="form_56.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="classEigen_1_1GeneralizedSelfAdjointEigenSolver.html#aaa204ef15aaefac270c0376269083ed6" 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="classEigen_1_1GeneralizedSelfAdjointEigenSolver.html#a187d246e7119473853734270c6bf6e5d" 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="classEigen_1_1SelfAdjointEigenSolver.html#af54b25fe7d2a3f578269381e9e5592a2" title="Returns the eigenvalues of given matrix. ">eigenvalues()</a> and <a class="el" href="classEigen_1_1SelfAdjointEigenSolver.html#a647a30aac0c6bb3def117dfb5ce90035" title="Returns the eigenvectors of given matrix. ">eigenvectors()</a> functions.</p>
<p>The documentation for <a class="el" href="classEigen_1_1GeneralizedSelfAdjointEigenSolver.html#a187d246e7119473853734270c6bf6e5d" 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="section see"><dt>See Also</dt><dd>class <a class="el" href="classEigen_1_1SelfAdjointEigenSolver.html" title="Computes eigenvalues and eigenvectors of selfadjoint matrices. ">SelfAdjointEigenSolver</a>, class <a class="el" href="classEigen_1_1EigenSolver.html" title="Computes eigenvalues and eigenvectors of general matrices. ">EigenSolver</a>, class <a class="el" href="classEigen_1_1ComplexEigenSolver.html" title="Computes eigenvalues and eigenvectors of general complex matrices. ">ComplexEigenSolver</a> </dd></dl>
</div><div id="dynsection-0" onclick="return toggleVisibility(this)" class="dynheader closed" style="cursor:pointer;">
  <img id="dynsection-0-trigger" src="closed.png" alt="+"/> Inheritance diagram for GeneralizedSelfAdjointEigenSolver&lt; _MatrixType &gt;:</div>
<div id="dynsection-0-summary" class="dynsummary" style="display:block;">
</div>
<div id="dynsection-0-content" class="dyncontent" style="display:none;">
<div class="center"><img src="classEigen_1_1GeneralizedSelfAdjointEigenSolver__inherit__graph.png" border="0" usemap="#GeneralizedSelfAdjointEigenSolver_3_01__MatrixType_01_4_inherit__map" alt="Inheritance graph"/></div>
<map name="GeneralizedSelfAdjointEigenSolver_3_01__MatrixType_01_4_inherit__map" id="GeneralizedSelfAdjointEigenSolver_3_01__MatrixType_01_4_inherit__map">
<area shape="rect" id="node2" href="classEigen_1_1SelfAdjointEigenSolver.html" title="Computes eigenvalues and eigenvectors of selfadjoint matrices. " alt="" coords="17,5,191,317"/></map>
</div>
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-types"></a>
Public Types</h2></td></tr>
<tr class="memitem:acb5c3dc237f99cf17167e8a629f01b43"><td class="memItemLeft" align="right" valign="top">typedef <a class="el" href="structEigen_1_1NumTraits.html">NumTraits</a>&lt; <a class="el" href="classEigen_1_1SelfAdjointEigenSolver.html#a3f6fc00047c205ee590f676934aab28f">Scalar</a> &gt;::Real&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classEigen_1_1SelfAdjointEigenSolver.html#acb5c3dc237f99cf17167e8a629f01b43">RealScalar</a></td></tr>
<tr class="memdesc:acb5c3dc237f99cf17167e8a629f01b43"><td class="mdescLeft">&#160;</td><td class="mdescRight">Real scalar type for <code>_MatrixType</code>.  <a href="#acb5c3dc237f99cf17167e8a629f01b43">More...</a><br/></td></tr>
<tr class="separator:acb5c3dc237f99cf17167e8a629f01b43"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a4e33b38d1980864e689a8a1c01b782dd"><td class="memItemLeft" align="right" valign="top">typedef <br class="typebreak"/>
internal::plain_col_type<br class="typebreak"/>
&lt; MatrixType, <a class="el" href="classEigen_1_1SelfAdjointEigenSolver.html#acb5c3dc237f99cf17167e8a629f01b43">RealScalar</a> &gt;<br class="typebreak"/>
::type&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classEigen_1_1SelfAdjointEigenSolver.html#a4e33b38d1980864e689a8a1c01b782dd">RealVectorType</a></td></tr>
<tr class="memdesc:a4e33b38d1980864e689a8a1c01b782dd"><td class="mdescLeft">&#160;</td><td class="mdescRight">Type for vector of eigenvalues as returned by <a class="el" href="classEigen_1_1SelfAdjointEigenSolver.html#af54b25fe7d2a3f578269381e9e5592a2" title="Returns the eigenvalues of given matrix. ">eigenvalues()</a>.  <a href="#a4e33b38d1980864e689a8a1c01b782dd">More...</a><br/></td></tr>
<tr class="separator:a4e33b38d1980864e689a8a1c01b782dd"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a3f6fc00047c205ee590f676934aab28f"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a3f6fc00047c205ee590f676934aab28f"></a>
typedef MatrixType::Scalar&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classEigen_1_1SelfAdjointEigenSolver.html#a3f6fc00047c205ee590f676934aab28f">Scalar</a></td></tr>
<tr class="memdesc:a3f6fc00047c205ee590f676934aab28f"><td class="mdescLeft">&#160;</td><td class="mdescRight">Scalar type for matrices of type <code>_MatrixType</code>. <br/></td></tr>
<tr class="separator:a3f6fc00047c205ee590f676934aab28f"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-methods"></a>
Public Member Functions</h2></td></tr>
<tr class="memitem:aaa204ef15aaefac270c0376269083ed6"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classEigen_1_1GeneralizedSelfAdjointEigenSolver.html">GeneralizedSelfAdjointEigenSolver</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classEigen_1_1GeneralizedSelfAdjointEigenSolver.html#aaa204ef15aaefac270c0376269083ed6">compute</a> (const MatrixType &amp;matA, const MatrixType &amp;matB, int options=<a class="el" href="group__enums.html#gga2d78499b99ddc29b9494f7ea33864d52a92a556ff1203acee3bacb02b0d157870">ComputeEigenvectors</a>|<a class="el" href="group__enums.html#gga2d78499b99ddc29b9494f7ea33864d52a3ae14e2ec1852cd8f07f401186f92bb6">Ax_lBx</a>)</td></tr>
<tr class="memdesc:aaa204ef15aaefac270c0376269083ed6"><td class="mdescLeft">&#160;</td><td class="mdescRight">Computes generalized eigendecomposition of given matrix pencil.  <a href="#aaa204ef15aaefac270c0376269083ed6">More...</a><br/></td></tr>
<tr class="separator:aaa204ef15aaefac270c0376269083ed6"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aff6f3679ffb0098b33ccdefd4c5aaf33"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classEigen_1_1SelfAdjointEigenSolver.html">SelfAdjointEigenSolver</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classEigen_1_1SelfAdjointEigenSolver.html#aff6f3679ffb0098b33ccdefd4c5aaf33">compute</a> (const MatrixType &amp;matrix, int options=<a class="el" href="group__enums.html#gga2d78499b99ddc29b9494f7ea33864d52a92a556ff1203acee3bacb02b0d157870">ComputeEigenvectors</a>)</td></tr>
<tr class="memdesc:aff6f3679ffb0098b33ccdefd4c5aaf33"><td class="mdescLeft">&#160;</td><td class="mdescRight">Computes eigendecomposition of given matrix.  <a href="#aff6f3679ffb0098b33ccdefd4c5aaf33">More...</a><br/></td></tr>
<tr class="separator:aff6f3679ffb0098b33ccdefd4c5aaf33"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a85cda7e77edf4923f3fc0512c83f6323"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classEigen_1_1SelfAdjointEigenSolver.html">SelfAdjointEigenSolver</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classEigen_1_1SelfAdjointEigenSolver.html#a85cda7e77edf4923f3fc0512c83f6323">computeDirect</a> (const MatrixType &amp;matrix, int options=<a class="el" href="group__enums.html#gga2d78499b99ddc29b9494f7ea33864d52a92a556ff1203acee3bacb02b0d157870">ComputeEigenvectors</a>)</td></tr>
<tr class="memdesc:a85cda7e77edf4923f3fc0512c83f6323"><td class="mdescLeft">&#160;</td><td class="mdescRight">Computes eigendecomposition of given matrix using a direct algorithm.  <a href="#a85cda7e77edf4923f3fc0512c83f6323">More...</a><br/></td></tr>
<tr class="separator:a85cda7e77edf4923f3fc0512c83f6323"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:af54b25fe7d2a3f578269381e9e5592a2"><td class="memItemLeft" align="right" valign="top">const <a class="el" href="classEigen_1_1SelfAdjointEigenSolver.html#a4e33b38d1980864e689a8a1c01b782dd">RealVectorType</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classEigen_1_1SelfAdjointEigenSolver.html#af54b25fe7d2a3f578269381e9e5592a2">eigenvalues</a> () const </td></tr>
<tr class="memdesc:af54b25fe7d2a3f578269381e9e5592a2"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the eigenvalues of given matrix.  <a href="#af54b25fe7d2a3f578269381e9e5592a2">More...</a><br/></td></tr>
<tr class="separator:af54b25fe7d2a3f578269381e9e5592a2"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a647a30aac0c6bb3def117dfb5ce90035"><td class="memItemLeft" align="right" valign="top">const MatrixType &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classEigen_1_1SelfAdjointEigenSolver.html#a647a30aac0c6bb3def117dfb5ce90035">eigenvectors</a> () const </td></tr>
<tr class="memdesc:a647a30aac0c6bb3def117dfb5ce90035"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the eigenvectors of given matrix.  <a href="#a647a30aac0c6bb3def117dfb5ce90035">More...</a><br/></td></tr>
<tr class="separator:a647a30aac0c6bb3def117dfb5ce90035"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a47cdb96ef5b357fb03a3941431027701"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classEigen_1_1GeneralizedSelfAdjointEigenSolver.html#a47cdb96ef5b357fb03a3941431027701">GeneralizedSelfAdjointEigenSolver</a> ()</td></tr>
<tr class="memdesc:a47cdb96ef5b357fb03a3941431027701"><td class="mdescLeft">&#160;</td><td class="mdescRight">Default constructor for fixed-size matrices.  <a href="#a47cdb96ef5b357fb03a3941431027701">More...</a><br/></td></tr>
<tr class="separator:a47cdb96ef5b357fb03a3941431027701"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ab31ca021816541f77cb5f067a93b604a"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classEigen_1_1GeneralizedSelfAdjointEigenSolver.html#ab31ca021816541f77cb5f067a93b604a">GeneralizedSelfAdjointEigenSolver</a> (Index size)</td></tr>
<tr class="memdesc:ab31ca021816541f77cb5f067a93b604a"><td class="mdescLeft">&#160;</td><td class="mdescRight">Constructor, pre-allocates memory for dynamic-size matrices.  <a href="#ab31ca021816541f77cb5f067a93b604a">More...</a><br/></td></tr>
<tr class="separator:ab31ca021816541f77cb5f067a93b604a"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a187d246e7119473853734270c6bf6e5d"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classEigen_1_1GeneralizedSelfAdjointEigenSolver.html#a187d246e7119473853734270c6bf6e5d">GeneralizedSelfAdjointEigenSolver</a> (const MatrixType &amp;matA, const MatrixType &amp;matB, int options=<a class="el" href="group__enums.html#gga2d78499b99ddc29b9494f7ea33864d52a92a556ff1203acee3bacb02b0d157870">ComputeEigenvectors</a>|<a class="el" href="group__enums.html#gga2d78499b99ddc29b9494f7ea33864d52a3ae14e2ec1852cd8f07f401186f92bb6">Ax_lBx</a>)</td></tr>
<tr class="memdesc:a187d246e7119473853734270c6bf6e5d"><td class="mdescLeft">&#160;</td><td class="mdescRight">Constructor; computes generalized eigendecomposition of given matrix pencil.  <a href="#a187d246e7119473853734270c6bf6e5d">More...</a><br/></td></tr>
<tr class="separator:a187d246e7119473853734270c6bf6e5d"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a0c06d5c2034ebb329c54235369643ad2"><td class="memItemLeft" align="right" valign="top"><a class="el" href="group__enums.html#ga51bc1ac16f26ebe51eae1abb77bd037b">ComputationInfo</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classEigen_1_1SelfAdjointEigenSolver.html#a0c06d5c2034ebb329c54235369643ad2">info</a> () const </td></tr>
<tr class="memdesc:a0c06d5c2034ebb329c54235369643ad2"><td class="mdescLeft">&#160;</td><td class="mdescRight">Reports whether previous computation was successful.  <a href="#a0c06d5c2034ebb329c54235369643ad2">More...</a><br/></td></tr>
<tr class="separator:a0c06d5c2034ebb329c54235369643ad2"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a811ad0873e06be5404fc91f64f0f658d"><td class="memItemLeft" align="right" valign="top">MatrixType&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classEigen_1_1SelfAdjointEigenSolver.html#a811ad0873e06be5404fc91f64f0f658d">operatorInverseSqrt</a> () const </td></tr>
<tr class="memdesc:a811ad0873e06be5404fc91f64f0f658d"><td class="mdescLeft">&#160;</td><td class="mdescRight">Computes the inverse square root of the matrix.  <a href="#a811ad0873e06be5404fc91f64f0f658d">More...</a><br/></td></tr>
<tr class="separator:a811ad0873e06be5404fc91f64f0f658d"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:add23e44f8a7f540c288ee98b2d2b0775"><td class="memItemLeft" align="right" valign="top">MatrixType&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classEigen_1_1SelfAdjointEigenSolver.html#add23e44f8a7f540c288ee98b2d2b0775">operatorSqrt</a> () const </td></tr>
<tr class="memdesc:add23e44f8a7f540c288ee98b2d2b0775"><td class="mdescLeft">&#160;</td><td class="mdescRight">Computes the positive-definite square root of the matrix.  <a href="#add23e44f8a7f540c288ee98b2d2b0775">More...</a><br/></td></tr>
<tr class="separator:add23e44f8a7f540c288ee98b2d2b0775"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-static-attribs"></a>
Static Public Attributes</h2></td></tr>
<tr class="memitem:adc66cd724d769ca37c38bc5ecb06dd87"><td class="memItemLeft" align="right" valign="top">static const int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classEigen_1_1SelfAdjointEigenSolver.html#adc66cd724d769ca37c38bc5ecb06dd87">m_maxIterations</a></td></tr>
<tr class="memdesc:adc66cd724d769ca37c38bc5ecb06dd87"><td class="mdescLeft">&#160;</td><td class="mdescRight">Maximum number of iterations.  <a href="#adc66cd724d769ca37c38bc5ecb06dd87">More...</a><br/></td></tr>
<tr class="separator:adc66cd724d769ca37c38bc5ecb06dd87"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<h2 class="groupheader">Member Typedef Documentation</h2>
<a class="anchor" id="acb5c3dc237f99cf17167e8a629f01b43"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">typedef <a class="el" href="structEigen_1_1NumTraits.html">NumTraits</a>&lt;<a class="el" href="classEigen_1_1SelfAdjointEigenSolver.html#a3f6fc00047c205ee590f676934aab28f">Scalar</a>&gt;::Real <a class="el" href="classEigen_1_1SelfAdjointEigenSolver.html#acb5c3dc237f99cf17167e8a629f01b43">RealScalar</a></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inherited</span></span>  </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="classEigen_1_1SelfAdjointEigenSolver.html#a3f6fc00047c205ee590f676934aab28f" 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="classEigen_1_1SelfAdjointEigenSolver.html#a3f6fc00047c205ee590f676934aab28f" title="Scalar type for matrices of type _MatrixType. ">Scalar</a> is complex. </p>

</div>
</div>
<a class="anchor" id="a4e33b38d1980864e689a8a1c01b782dd"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">typedef internal::plain_col_type&lt;MatrixType, <a class="el" href="classEigen_1_1SelfAdjointEigenSolver.html#acb5c3dc237f99cf17167e8a629f01b43">RealScalar</a>&gt;::type <a class="el" href="classEigen_1_1SelfAdjointEigenSolver.html#a4e33b38d1980864e689a8a1c01b782dd">RealVectorType</a></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inherited</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Type for vector of eigenvalues as returned by <a class="el" href="classEigen_1_1SelfAdjointEigenSolver.html#af54b25fe7d2a3f578269381e9e5592a2" title="Returns the eigenvalues of given matrix. ">eigenvalues()</a>. </p>
<p>This is a column vector with entries of type <a class="el" href="classEigen_1_1SelfAdjointEigenSolver.html#acb5c3dc237f99cf17167e8a629f01b43" title="Real scalar type for _MatrixType. ">RealScalar</a>. The length of the vector is the size of <code>_MatrixType</code>. </p>

</div>
</div>
<h2 class="groupheader">Constructor &amp; Destructor Documentation</h2>
<a class="anchor" id="a47cdb96ef5b357fb03a3941431027701"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classEigen_1_1GeneralizedSelfAdjointEigenSolver.html">GeneralizedSelfAdjointEigenSolver</a> </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span>  </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="classEigen_1_1GeneralizedSelfAdjointEigenSolver.html#aaa204ef15aaefac270c0376269083ed6" 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="classEigen_1_1GeneralizedSelfAdjointEigenSolver.html#ab31ca021816541f77cb5f067a93b604a" title="Constructor, pre-allocates memory for dynamic-size matrices. ">GeneralizedSelfAdjointEigenSolver(Index)</a> for dynamic-size matrices. </p>

</div>
</div>
<a class="anchor" id="ab31ca021816541f77cb5f067a93b604a"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classEigen_1_1GeneralizedSelfAdjointEigenSolver.html">GeneralizedSelfAdjointEigenSolver</a> </td>
          <td>(</td>
          <td class="paramtype">Index&#160;</td>
          <td class="paramname"><em>size</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Constructor, pre-allocates memory for dynamic-size matrices. </p>
<dl class="params"><dt>Parameters</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="classEigen_1_1GeneralizedSelfAdjointEigenSolver.html#aaa204ef15aaefac270c0376269083ed6" 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="section see"><dt>See Also</dt><dd><a class="el" href="classEigen_1_1GeneralizedSelfAdjointEigenSolver.html#aaa204ef15aaefac270c0376269083ed6" title="Computes generalized eigendecomposition of given matrix pencil. ">compute()</a> for an example </dd></dl>

</div>
</div>
<a class="anchor" id="a187d246e7119473853734270c6bf6e5d"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classEigen_1_1GeneralizedSelfAdjointEigenSolver.html">GeneralizedSelfAdjointEigenSolver</a> </td>
          <td>(</td>
          <td class="paramtype">const MatrixType &amp;&#160;</td>
          <td class="paramname"><em>matA</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const MatrixType &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><a class="el" href="group__enums.html#gga2d78499b99ddc29b9494f7ea33864d52a92a556ff1203acee3bacb02b0d157870">ComputeEigenvectors</a>|<a class="el" href="group__enums.html#gga2d78499b99ddc29b9494f7ea33864d52a3ae14e2ec1852cd8f07f401186f92bb6">Ax_lBx</a></code>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Constructor; computes generalized eigendecomposition of given matrix pencil. </p>
<dl class="params"><dt>Parameters</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#gga2d78499b99ddc29b9494f7ea33864d52a92a556ff1203acee3bacb02b0d157870">ComputeEigenvectors</a>,<a class="el" href="group__enums.html#gga2d78499b99ddc29b9494f7ea33864d52adaf09d7c7a09d6c882b1a871268e87dd">EigenvaluesOnly</a>} | {<a class="el" href="group__enums.html#gga2d78499b99ddc29b9494f7ea33864d52a3ae14e2ec1852cd8f07f401186f92bb6">Ax_lBx</a>,<a class="el" href="group__enums.html#gga2d78499b99ddc29b9494f7ea33864d52aef728f6a0183a2218d9c9ff8387a2550">ABx_lx</a>,<a class="el" href="group__enums.html#gga2d78499b99ddc29b9494f7ea33864d52a4313e64c939f7bc1df2a67958ebdbae8">BAx_lx</a>}. Default is <a class="el" href="group__enums.html#gga2d78499b99ddc29b9494f7ea33864d52a92a556ff1203acee3bacb02b0d157870">ComputeEigenvectors</a>|<a class="el" href="group__enums.html#gga2d78499b99ddc29b9494f7ea33864d52a3ae14e2ec1852cd8f07f401186f92bb6">Ax_lBx</a>.</td></tr>
  </table>
  </dd>
</dl>
<p>This constructor calls <a class="el" href="classEigen_1_1GeneralizedSelfAdjointEigenSolver.html#aaa204ef15aaefac270c0376269083ed6" 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_35.png"/> with <em>matA</em> the selfadjoint matrix <img class="formulaInl" alt="$ A $" src="form_1.png"/> and <em>matB</em> the positive definite matrix <img class="formulaInl" alt="$ B $" src="form_56.png"/>. Each eigenvector <img class="formulaInl" alt="$ x $" src="form_17.png"/> satisfies the property <img class="formulaInl" alt="$ x^* B x = 1 $" src="form_68.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_36.png"/></li>
<li><code>BAx_lx:</code> <img class="formulaInl" alt="$ BAx = \lambda x $" src="form_37.png"/></li>
</ul>
<p>Example: </p>
<div class="fragment"><div class="line">MatrixXd X = <a class="code" href="classEigen_1_1DenseBase.html#a8e759dafdd9ecc446d397b7f5435f60a">MatrixXd::Random</a>(5,5);</div>
<div class="line">MatrixXd A = X + X.transpose();</div>
<div class="line">cout &lt;&lt; <span class="stringliteral">&quot;Here is a random symmetric matrix, A:&quot;</span> &lt;&lt; endl &lt;&lt; A &lt;&lt; endl;</div>
<div class="line">X = <a class="code" href="classEigen_1_1DenseBase.html#a8e759dafdd9ecc446d397b7f5435f60a">MatrixXd::Random</a>(5,5);</div>
<div class="line">MatrixXd B = X * X.transpose();</div>
<div class="line">cout &lt;&lt; <span class="stringliteral">&quot;and a random postive-definite matrix, B:&quot;</span> &lt;&lt; endl &lt;&lt; B &lt;&lt; endl &lt;&lt; endl;</div>
<div class="line"></div>
<div class="line">GeneralizedSelfAdjointEigenSolver&lt;MatrixXd&gt; es(A,B);</div>
<div class="line">cout &lt;&lt; <span class="stringliteral">&quot;The eigenvalues of the pencil (A,B) are:&quot;</span> &lt;&lt; endl &lt;&lt; es.eigenvalues() &lt;&lt; endl;</div>
<div class="line">cout &lt;&lt; <span class="stringliteral">&quot;The matrix of eigenvectors, V, is:&quot;</span> &lt;&lt; endl &lt;&lt; es.eigenvectors() &lt;&lt; endl &lt;&lt; endl;</div>
<div class="line"></div>
<div class="line"><span class="keywordtype">double</span> lambda = es.eigenvalues()[0];</div>
<div class="line">cout &lt;&lt; <span class="stringliteral">&quot;Consider the first eigenvalue, lambda = &quot;</span> &lt;&lt; lambda &lt;&lt; endl;</div>
<div class="line"><a class="code" href="group__matrixtypedefs.html#ga3da45e59796fbacf67fa568297927bd1">VectorXd</a> v = es.eigenvectors().col(0);</div>
<div class="line">cout &lt;&lt; <span class="stringliteral">&quot;If v is the corresponding eigenvector, then A * v = &quot;</span> &lt;&lt; endl &lt;&lt; A * v &lt;&lt; endl;</div>
<div class="line">cout &lt;&lt; <span class="stringliteral">&quot;... and lambda * B * v = &quot;</span> &lt;&lt; endl &lt;&lt; lambda * B * v &lt;&lt; endl &lt;&lt; endl;</div>
</div><!-- fragment --><p> Output: </p>
<pre class="fragment">Here is a random symmetric matrix, A:
  1.36 -0.816  0.521   1.43 -0.144
-0.816 -0.659  0.794 -0.173 -0.406
 0.521  0.794 -0.541  0.461  0.179
  1.43 -0.173  0.461  -1.43  0.822
-0.144 -0.406  0.179  0.822  -1.37
and a random postive-definite matrix, B:
  0.132  0.0109 -0.0512  0.0674  -0.143
 0.0109    1.68    1.13   -1.12   0.916
-0.0512    1.13     2.3   -2.14    1.86
 0.0674   -1.12   -2.14    2.69   -2.01
 -0.143   0.916    1.86   -2.01    1.68

The eigenvalues of the pencil (A,B) are:
-227
-3.9
-0.837
0.101
54.2
The matrix of eigenvectors, V, is:
  -14.2    1.03 -0.0766  0.0273   -8.36
-0.0546   0.115  -0.729  -0.478   0.374
   9.23  -0.624  0.0165  -0.499    3.01
  -7.88    -1.3  -0.225  -0.109   -3.85
  -20.8  -0.805   0.567  0.0828   -8.73

Consider the first eigenvalue, lambda = -227
If v is the corresponding eigenvector, then A * v = 
-22.8
28.8
-19.8
-21.9
25.9
... and lambda * B * v = 
-22.8
28.8
-19.8
-21.9
25.9

</pre><dl class="section see"><dt>See Also</dt><dd><a class="el" href="classEigen_1_1GeneralizedSelfAdjointEigenSolver.html#aaa204ef15aaefac270c0376269083ed6" title="Computes generalized eigendecomposition of given matrix pencil. ">compute(const MatrixType&amp;, const MatrixType&amp;, int)</a> </dd></dl>

<p>References <a class="el" href="classEigen_1_1GeneralizedSelfAdjointEigenSolver.html#aaa204ef15aaefac270c0376269083ed6">GeneralizedSelfAdjointEigenSolver&lt; _MatrixType &gt;::compute()</a>.</p>

</div>
</div>
<h2 class="groupheader">Member Function Documentation</h2>
<a class="anchor" id="aaa204ef15aaefac270c0376269083ed6"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classEigen_1_1GeneralizedSelfAdjointEigenSolver.html">GeneralizedSelfAdjointEigenSolver</a>&lt; MatrixType &gt; &amp; compute </td>
          <td>(</td>
          <td class="paramtype">const MatrixType &amp;&#160;</td>
          <td class="paramname"><em>matA</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const MatrixType &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><a class="el" href="group__enums.html#gga2d78499b99ddc29b9494f7ea33864d52a92a556ff1203acee3bacb02b0d157870">ComputeEigenvectors</a>|<a class="el" href="group__enums.html#gga2d78499b99ddc29b9494f7ea33864d52a3ae14e2ec1852cd8f07f401186f92bb6">Ax_lBx</a></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 class="params"><dt>Parameters</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#gga2d78499b99ddc29b9494f7ea33864d52a92a556ff1203acee3bacb02b0d157870">ComputeEigenvectors</a>,<a class="el" href="group__enums.html#gga2d78499b99ddc29b9494f7ea33864d52adaf09d7c7a09d6c882b1a871268e87dd">EigenvaluesOnly</a>} | {<a class="el" href="group__enums.html#gga2d78499b99ddc29b9494f7ea33864d52a3ae14e2ec1852cd8f07f401186f92bb6">Ax_lBx</a>,<a class="el" href="group__enums.html#gga2d78499b99ddc29b9494f7ea33864d52aef728f6a0183a2218d9c9ff8387a2550">ABx_lx</a>,<a class="el" href="group__enums.html#gga2d78499b99ddc29b9494f7ea33864d52a4313e64c939f7bc1df2a67958ebdbae8">BAx_lx</a>}. Default is <a class="el" href="group__enums.html#gga2d78499b99ddc29b9494f7ea33864d52a92a556ff1203acee3bacb02b0d157870">ComputeEigenvectors</a>|<a class="el" href="group__enums.html#gga2d78499b99ddc29b9494f7ea33864d52a3ae14e2ec1852cd8f07f401186f92bb6">Ax_lBx</a>.</td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</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_35.png"/></li>
<li><code>ABx_lx:</code> <img class="formulaInl" alt="$ ABx = \lambda x $" src="form_36.png"/></li>
<li><code>BAx_lx:</code> <img class="formulaInl" alt="$ BAx = \lambda x $" src="form_37.png"/> with <em>matA</em> the selfadjoint matrix <img class="formulaInl" alt="$ A $" src="form_1.png"/> and <em>matB</em> the positive definite matrix <img class="formulaInl" alt="$ B $" src="form_56.png"/>. In addition, each eigenvector <img class="formulaInl" alt="$ x $" src="form_17.png"/> satisfies the property <img class="formulaInl" alt="$ x^* B x = 1 $" src="form_68.png"/>.</li>
</ul>
<p>The <a class="el" href="classEigen_1_1SelfAdjointEigenSolver.html#af54b25fe7d2a3f578269381e9e5592a2" 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="classEigen_1_1SelfAdjointEigenSolver.html#a647a30aac0c6bb3def117dfb5ce90035" title="Returns the eigenvectors of given matrix. ">eigenvectors()</a>.</p>
<p>The implementation uses <a class="el" href="classEigen_1_1LLT.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_69.png"/> and computes the classical eigendecomposition of the selfadjoint matrix <img class="formulaInl" alt="$ L^{-1} A (L^*)^{-1} $" src="form_70.png"/> if <code>options</code> contains Ax_lBx and of <img class="formulaInl" alt="$ L^{*} A L $" src="form_71.png"/> otherwise. This solves the generalized eigenproblem, because any solution of the generalized eigenproblem <img class="formulaInl" alt="$ Ax = \lambda B x $" src="form_35.png"/> corresponds to a solution <img class="formulaInl" alt="$ L^{-1} A (L^*)^{-1} (L^* x) = \lambda (L^* x) $" src="form_72.png"/> of the eigenproblem for <img class="formulaInl" alt="$ L^{-1} A (L^*)^{-1} $" src="form_70.png"/>. Similar statements can be made for the two other variants.</p>
<p>Example: </p>
<div class="fragment"><div class="line">MatrixXd X = <a class="code" href="classEigen_1_1DenseBase.html#a8e759dafdd9ecc446d397b7f5435f60a">MatrixXd::Random</a>(5,5);</div>
<div class="line">MatrixXd A = X * X.transpose();</div>
<div class="line">X = <a class="code" href="classEigen_1_1DenseBase.html#a8e759dafdd9ecc446d397b7f5435f60a">MatrixXd::Random</a>(5,5);</div>
<div class="line">MatrixXd B = X * X.transpose();</div>
<div class="line"></div>
<div class="line">GeneralizedSelfAdjointEigenSolver&lt;MatrixXd&gt; es(A,B,<a class="code" href="group__enums.html#gga2d78499b99ddc29b9494f7ea33864d52adaf09d7c7a09d6c882b1a871268e87dd">EigenvaluesOnly</a>);</div>
<div class="line">cout &lt;&lt; <span class="stringliteral">&quot;The eigenvalues of the pencil (A,B) are:&quot;</span> &lt;&lt; endl &lt;&lt; es.eigenvalues() &lt;&lt; endl;</div>
<div class="line">es.compute(B,A,<span class="keyword">false</span>);</div>
<div class="line">cout &lt;&lt; <span class="stringliteral">&quot;The eigenvalues of the pencil (B,A) are:&quot;</span> &lt;&lt; endl &lt;&lt; es.eigenvalues() &lt;&lt; endl;</div>
</div><!-- fragment --><p> Output: </p>
<pre class="fragment">The eigenvalues of the pencil (A,B) are:
0.0289
0.299
2.11
8.64
2.08e+03
The eigenvalues of the pencil (B,A) are:
0.000481
0.116
0.473
3.34
34.6
</pre><dl class="section see"><dt>See Also</dt><dd><a class="el" href="classEigen_1_1GeneralizedSelfAdjointEigenSolver.html#a187d246e7119473853734270c6bf6e5d" title="Constructor; computes generalized eigendecomposition of given matrix pencil. ">GeneralizedSelfAdjointEigenSolver(const MatrixType&amp;, const MatrixType&amp;, int)</a> </dd></dl>

<p>References <a class="el" href="group__enums.html#gga2d78499b99ddc29b9494f7ea33864d52aef728f6a0183a2218d9c9ff8387a2550">Eigen::ABx_lx</a>, <a class="el" href="group__enums.html#gga2d78499b99ddc29b9494f7ea33864d52a3ae14e2ec1852cd8f07f401186f92bb6">Eigen::Ax_lBx</a>, <a class="el" href="group__enums.html#gga2d78499b99ddc29b9494f7ea33864d52a4313e64c939f7bc1df2a67958ebdbae8">Eigen::BAx_lx</a>, <a class="el" href="group__enums.html#gga2d78499b99ddc29b9494f7ea33864d52a92a556ff1203acee3bacb02b0d157870">Eigen::ComputeEigenvectors</a>, <a class="el" href="group__enums.html#gga2d78499b99ddc29b9494f7ea33864d52adaf09d7c7a09d6c882b1a871268e87dd">Eigen::EigenvaluesOnly</a>, <a class="el" href="classEigen_1_1LLT.html#a625f69b684b4434db1cf3cc434e86fe6">LLT&lt; _MatrixType, _UpLo &gt;::matrixL()</a>, and <a class="el" href="classEigen_1_1LLT.html#adc32fdba9f5b478afb2a96d53c6eacbb">LLT&lt; _MatrixType, _UpLo &gt;::matrixU()</a>.</p>

<p>Referenced by <a class="el" href="classEigen_1_1GeneralizedSelfAdjointEigenSolver.html#a187d246e7119473853734270c6bf6e5d">GeneralizedSelfAdjointEigenSolver&lt; _MatrixType &gt;::GeneralizedSelfAdjointEigenSolver()</a>.</p>

</div>
</div>
<a class="anchor" id="aff6f3679ffb0098b33ccdefd4c5aaf33"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classEigen_1_1SelfAdjointEigenSolver.html">SelfAdjointEigenSolver</a>&lt; MatrixType &gt; &amp; compute </td>
          <td>(</td>
          <td class="paramtype">const MatrixType &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><a class="el" href="group__enums.html#gga2d78499b99ddc29b9494f7ea33864d52a92a556ff1203acee3bacb02b0d157870">ComputeEigenvectors</a></code>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inherited</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Computes eigendecomposition of given matrix. </p>
<dl class="params"><dt>Parameters</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#gga2d78499b99ddc29b9494f7ea33864d52a92a556ff1203acee3bacb02b0d157870">ComputeEigenvectors</a> (default) or <a class="el" href="group__enums.html#gga2d78499b99ddc29b9494f7ea33864d52adaf09d7c7a09d6c882b1a871268e87dd">EigenvaluesOnly</a>. </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>Reference to <code>*this</code> </dd></dl>
<p>This function computes the eigenvalues of <code>matrix</code>. The <a class="el" href="classEigen_1_1SelfAdjointEigenSolver.html#af54b25fe7d2a3f578269381e9e5592a2" 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#gga2d78499b99ddc29b9494f7ea33864d52a92a556ff1203acee3bacb02b0d157870">ComputeEigenvectors</a>, then the eigenvectors are also computed and can be retrieved by calling <a class="el" href="classEigen_1_1SelfAdjointEigenSolver.html#a647a30aac0c6bb3def117dfb5ce90035" 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="classEigen_1_1Tridiagonalization.html" title="Tridiagonal decomposition of a selfadjoint matrix. ">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_94.png"/> if the eigenvectors are required and <img class="formulaInl" alt="$ 4n^3/3 $" src="form_95.png"/> if they are not required.</p>
<p>This method reuses the memory in the <a class="el" href="classEigen_1_1SelfAdjointEigenSolver.html" title="Computes eigenvalues and eigenvectors of selfadjoint matrices. ">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"><div class="line">SelfAdjointEigenSolver&lt;MatrixXf&gt; es(4);</div>
<div class="line"><a class="code" href="group__matrixtypedefs.html#gabab09c32e96cfa9829a88400627af162">MatrixXf</a> X = <a class="code" href="classEigen_1_1DenseBase.html#a8e759dafdd9ecc446d397b7f5435f60a">MatrixXf::Random</a>(4,4);</div>
<div class="line"><a class="code" href="group__matrixtypedefs.html#gabab09c32e96cfa9829a88400627af162">MatrixXf</a> A = X + X.transpose();</div>
<div class="line">es.compute(A);</div>
<div class="line">cout &lt;&lt; <span class="stringliteral">&quot;The eigenvalues of A are: &quot;</span> &lt;&lt; es.eigenvalues().transpose() &lt;&lt; endl;</div>
<div class="line">es.compute(A + <a class="code" href="classEigen_1_1MatrixBase.html#a0650b65c6ae6c3d19a138b72a6d68568">MatrixXf::Identity</a>(4,4)); <span class="comment">// re-use es to compute eigenvalues of A+I</span></div>
<div class="line">cout &lt;&lt; <span class="stringliteral">&quot;The eigenvalues of A+I are: &quot;</span> &lt;&lt; es.eigenvalues().transpose() &lt;&lt; endl;</div>
</div><!-- fragment --><p> Output: </p>
<pre class="fragment">The eigenvalues of A are:  -1.58 -0.473   1.32   2.46
The eigenvalues of A+I are: -0.581 0.527  2.32  3.46
</pre><dl class="section see"><dt>See Also</dt><dd><a class="el" href="classEigen_1_1SelfAdjointEigenSolver.html#a30caf3c3884a7f4a46b8ec94efd23c5e" title="Constructor; computes eigendecomposition of given matrix. ">SelfAdjointEigenSolver(const MatrixType&amp;, int)</a> </dd></dl>

<p>References <a class="el" href="group__enums.html#gga2d78499b99ddc29b9494f7ea33864d52a92a556ff1203acee3bacb02b0d157870">Eigen::ComputeEigenvectors</a>, <a class="el" href="group__enums.html#gga51bc1ac16f26ebe51eae1abb77bd037ba4ff235bd185f3c5fceeec8d6540eb847">Eigen::NoConvergence</a>, and <a class="el" href="group__enums.html#gga51bc1ac16f26ebe51eae1abb77bd037bafdfbdf3247bd36a1f17270d5cec74c9c">Eigen::Success</a>.</p>

<p>Referenced by <a class="el" href="classEigen_1_1SelfAdjointEigenSolver.html#a30caf3c3884a7f4a46b8ec94efd23c5e">SelfAdjointEigenSolver&lt; _MatrixType &gt;::SelfAdjointEigenSolver()</a>.</p>

</div>
</div>
<a class="anchor" id="a85cda7e77edf4923f3fc0512c83f6323"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classEigen_1_1SelfAdjointEigenSolver.html">SelfAdjointEigenSolver</a>&lt; MatrixType &gt; &amp; computeDirect </td>
          <td>(</td>
          <td class="paramtype">const MatrixType &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><a class="el" href="group__enums.html#gga2d78499b99ddc29b9494f7ea33864d52a92a556ff1203acee3bacb02b0d157870">ComputeEigenvectors</a></code>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inherited</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Computes eigendecomposition of given matrix using a direct algorithm. </p>
<p>This is a variant of <a class="el" href="classEigen_1_1SelfAdjointEigenSolver.html#aff6f3679ffb0098b33ccdefd4c5aaf33" title="Computes eigendecomposition of given matrix. ">compute(const MatrixType&amp;, int options)</a> which directly solves the underlying polynomial equation.</p>
<p>Currently only 3x3 matrices for which the sizes are known at compile time are supported (e.g., Matrix3d).</p>
<p>This method is usually significantly faster than the QR algorithm but it might also be less accurate. It is also worth noting that for 3x3 matrices it involves trigonometric operations which are not necessarily available for all scalar types.</p>
<dl class="section see"><dt>See Also</dt><dd><a class="el" href="classEigen_1_1SelfAdjointEigenSolver.html#aff6f3679ffb0098b33ccdefd4c5aaf33" title="Computes eigendecomposition of given matrix. ">compute(const MatrixType&amp;, int options)</a> </dd></dl>

</div>
</div>
<a class="anchor" id="af54b25fe7d2a3f578269381e9e5592a2"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">const <a class="el" href="classEigen_1_1SelfAdjointEigenSolver.html#a4e33b38d1980864e689a8a1c01b782dd">RealVectorType</a>&amp; eigenvalues </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td> const</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">inherited</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Returns the eigenvalues of given matrix. </p>
<dl class="section return"><dt>Returns</dt><dd>A const reference to the column vector containing the eigenvalues.</dd></dl>
<dl class="section pre"><dt>Precondition</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"><div class="line">MatrixXd ones = <a class="code" href="classEigen_1_1DenseBase.html#a2278addf9a3c977d40322571a0df8ac9">MatrixXd::Ones</a>(3,3);</div>
<div class="line">SelfAdjointEigenSolver&lt;MatrixXd&gt; es(ones);</div>
<div class="line">cout &lt;&lt; <span class="stringliteral">&quot;The eigenvalues of the 3x3 matrix of ones are:&quot;</span> </div>
<div class="line">     &lt;&lt; endl &lt;&lt; es.eigenvalues() &lt;&lt; endl;</div>
</div><!-- fragment --><p> Output: </p>
<pre class="fragment">The eigenvalues of the 3x3 matrix of ones are:
-3.09e-16
0
3
</pre><dl class="section see"><dt>See Also</dt><dd><a class="el" href="classEigen_1_1SelfAdjointEigenSolver.html#a647a30aac0c6bb3def117dfb5ce90035" title="Returns the eigenvectors of given matrix. ">eigenvectors()</a>, <a class="el" href="classEigen_1_1MatrixBase.html#a0ffa061371b1bd1b9f14ecef94b4502e" title="Computes the eigenvalues of a matrix. ">MatrixBase::eigenvalues()</a> </dd></dl>

</div>
</div>
<a class="anchor" id="a647a30aac0c6bb3def117dfb5ce90035"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">const MatrixType&amp; eigenvectors </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td> const</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">inherited</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Returns the eigenvectors of given matrix. </p>
<dl class="section return"><dt>Returns</dt><dd>A const reference to the matrix whose columns are the eigenvectors.</dd></dl>
<dl class="section pre"><dt>Precondition</dt><dd>The eigenvectors have been computed before.</dd></dl>
<p>Column <img class="formulaInl" alt="$ k $" src="form_43.png"/> of the returned matrix is an eigenvector corresponding to eigenvalue number <img class="formulaInl" alt="$ k $" src="form_43.png"/> as returned by <a class="el" href="classEigen_1_1SelfAdjointEigenSolver.html#af54b25fe7d2a3f578269381e9e5592a2" 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_1.png"/>, then the matrix returned by this function is the matrix <img class="formulaInl" alt="$ V $" src="form_40.png"/> in the eigendecomposition <img class="formulaInl" alt="$ A = V D V^{-1} $" src="form_42.png"/>.</p>
<p>Example: </p>
<div class="fragment"><div class="line">MatrixXd ones = <a class="code" href="classEigen_1_1DenseBase.html#a2278addf9a3c977d40322571a0df8ac9">MatrixXd::Ones</a>(3,3);</div>
<div class="line">SelfAdjointEigenSolver&lt;MatrixXd&gt; es(ones);</div>
<div class="line">cout &lt;&lt; <span class="stringliteral">&quot;The first eigenvector of the 3x3 matrix of ones is:&quot;</span> </div>
<div class="line">     &lt;&lt; endl &lt;&lt; es.eigenvectors().col(1) &lt;&lt; endl;</div>
</div><!-- fragment --><p> Output: </p>
<pre class="fragment">The first eigenvector of the 3x3 matrix of ones is:
0
-0.707
0.707
</pre><dl class="section see"><dt>See Also</dt><dd><a class="el" href="classEigen_1_1SelfAdjointEigenSolver.html#af54b25fe7d2a3f578269381e9e5592a2" title="Returns the eigenvalues of given matrix. ">eigenvalues()</a> </dd></dl>

</div>
</div>
<a class="anchor" id="a0c06d5c2034ebb329c54235369643ad2"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="group__enums.html#ga51bc1ac16f26ebe51eae1abb77bd037b">ComputationInfo</a> info </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td> const</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">inherited</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

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

</div>
</div>
<a class="anchor" id="a811ad0873e06be5404fc91f64f0f658d"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">MatrixType operatorInverseSqrt </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td> const</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">inherited</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Computes the inverse square root of the matrix. </p>
<dl class="section return"><dt>Returns</dt><dd>the inverse positive-definite square root of the matrix</dd></dl>
<dl class="section pre"><dt>Precondition</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_42.png"/> to compute the inverse square root as <img class="formulaInl" alt="$ V D^{-1/2} V^{-1} $" src="form_97.png"/>. This is cheaper than first computing the square root with <a class="el" href="classEigen_1_1SelfAdjointEigenSolver.html#add23e44f8a7f540c288ee98b2d2b0775" title="Computes the positive-definite square root of the matrix. ">operatorSqrt()</a> and then its inverse with <a class="el" href="classEigen_1_1MatrixBase.html#aa2834da4c855fa35fed8c4030f79f9da">MatrixBase::inverse()</a>.</p>
<p>Example: </p>
<div class="fragment"><div class="line">MatrixXd X = <a class="code" href="classEigen_1_1DenseBase.html#a8e759dafdd9ecc446d397b7f5435f60a">MatrixXd::Random</a>(4,4);</div>
<div class="line">MatrixXd A = X * X.transpose();</div>
<div class="line">cout &lt;&lt; <span class="stringliteral">&quot;Here is a random positive-definite matrix, A:&quot;</span> &lt;&lt; endl &lt;&lt; A &lt;&lt; endl &lt;&lt; endl;</div>
<div class="line"></div>
<div class="line">SelfAdjointEigenSolver&lt;MatrixXd&gt; es(A);</div>
<div class="line">cout &lt;&lt; <span class="stringliteral">&quot;The inverse square root of A is: &quot;</span> &lt;&lt; endl;</div>
<div class="line">cout &lt;&lt; es.operatorInverseSqrt() &lt;&lt; endl;</div>
<div class="line">cout &lt;&lt; <span class="stringliteral">&quot;We can also compute it with operatorSqrt() and inverse(). That yields: &quot;</span> &lt;&lt; endl;</div>
<div class="line">cout &lt;&lt; es.operatorSqrt().inverse() &lt;&lt; endl;</div>
</div><!-- fragment --><p> Output: </p>
<pre class="fragment">Here is a random positive-definite matrix, A:
  1.41 -0.697 -0.111  0.508
-0.697  0.423 0.0991   -0.4
-0.111 0.0991   1.25  0.902
 0.508   -0.4  0.902    1.4

The inverse square root of A is: 
  1.88   2.78 -0.546  0.605
  2.78   8.61   -2.3   2.74
-0.546   -2.3   1.92  -1.36
 0.605   2.74  -1.36   2.18
We can also compute it with operatorSqrt() and inverse(). That yields: 
  1.88   2.78 -0.546  0.605
  2.78   8.61   -2.3   2.74
-0.546   -2.3   1.92  -1.36
 0.605   2.74  -1.36   2.18
</pre><dl class="section see"><dt>See Also</dt><dd><a class="el" href="classEigen_1_1SelfAdjointEigenSolver.html#add23e44f8a7f540c288ee98b2d2b0775" title="Computes the positive-definite square root of the matrix. ">operatorSqrt()</a>, <a class="el" href="classEigen_1_1MatrixBase.html#aa2834da4c855fa35fed8c4030f79f9da">MatrixBase::inverse()</a>, MatrixFunctions Module </dd></dl>

</div>
</div>
<a class="anchor" id="add23e44f8a7f540c288ee98b2d2b0775"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">MatrixType operatorSqrt </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td> const</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">inherited</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Computes the positive-definite square root of the matrix. </p>
<dl class="section return"><dt>Returns</dt><dd>the positive-definite square root of the matrix</dd></dl>
<dl class="section pre"><dt>Precondition</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_1.png"/> is the positive-definite matrix whose square equals <img class="formulaInl" alt="$ A $" src="form_1.png"/>. This function uses the eigendecomposition <img class="formulaInl" alt="$ A = V D V^{-1} $" src="form_42.png"/> to compute the square root as <img class="formulaInl" alt="$ A^{1/2} = V D^{1/2} V^{-1} $" src="form_96.png"/>.</p>
<p>Example: </p>
<div class="fragment"><div class="line">MatrixXd X = <a class="code" href="classEigen_1_1DenseBase.html#a8e759dafdd9ecc446d397b7f5435f60a">MatrixXd::Random</a>(4,4);</div>
<div class="line">MatrixXd A = X * X.transpose();</div>
<div class="line">cout &lt;&lt; <span class="stringliteral">&quot;Here is a random positive-definite matrix, A:&quot;</span> &lt;&lt; endl &lt;&lt; A &lt;&lt; endl &lt;&lt; endl;</div>
<div class="line"></div>
<div class="line">SelfAdjointEigenSolver&lt;MatrixXd&gt; es(A);</div>
<div class="line">MatrixXd sqrtA = es.operatorSqrt();</div>
<div class="line">cout &lt;&lt; <span class="stringliteral">&quot;The square root of A is: &quot;</span> &lt;&lt; endl &lt;&lt; sqrtA &lt;&lt; endl;</div>
<div class="line">cout &lt;&lt; <span class="stringliteral">&quot;If we square this, we get: &quot;</span> &lt;&lt; endl &lt;&lt; sqrtA*sqrtA &lt;&lt; endl;</div>
</div><!-- fragment --><p> Output: </p>
<pre class="fragment">Here is a random positive-definite matrix, A:
  1.41 -0.697 -0.111  0.508
-0.697  0.423 0.0991   -0.4
-0.111 0.0991   1.25  0.902
 0.508   -0.4  0.902    1.4

The square root of A is: 
   1.09  -0.432 -0.0685     0.2
 -0.432   0.379   0.141  -0.269
-0.0685   0.141       1   0.468
    0.2  -0.269   0.468    1.04
If we square this, we get: 
  1.41 -0.697 -0.111  0.508
-0.697  0.423 0.0991   -0.4
-0.111 0.0991   1.25  0.902
 0.508   -0.4  0.902    1.4
</pre><dl class="section see"><dt>See Also</dt><dd><a class="el" href="classEigen_1_1SelfAdjointEigenSolver.html#a811ad0873e06be5404fc91f64f0f658d" title="Computes the inverse square root of the matrix. ">operatorInverseSqrt()</a>, MatrixFunctions Module </dd></dl>

</div>
</div>
<h2 class="groupheader">Member Data Documentation</h2>
<a class="anchor" id="adc66cd724d769ca37c38bc5ecb06dd87"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">const int m_maxIterations</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">static</span><span class="mlabel">inherited</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Maximum number of iterations. </p>
<p>The algorithm terminates if it does not converge within m_maxIterations * n iterations, where n denotes the size of the matrix. This value is currently set to 30 (copied from LAPACK). </p>

</div>
</div>
<hr/>The documentation for this class was generated from the following file:<ul>
<li><a class="el" href="GeneralizedSelfAdjointEigenSolver_8h_source.html">GeneralizedSelfAdjointEigenSolver.h</a></li>
</ul>
</div><!-- contents -->
</div><!-- doc-content -->
<!-- start footer part -->
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
  <ul>
    <li class="navelem"><a class="el" href="namespaceEigen.html">Eigen</a></li><li class="navelem"><a class="el" href="classEigen_1_1GeneralizedSelfAdjointEigenSolver.html">GeneralizedSelfAdjointEigenSolver</a></li>
    <li class="footer">Generated on Mon Oct 28 2013 11:04:29 for Eigen by
    <a href="http://www.doxygen.org/index.html">
    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.5 </li>
  </ul>
</div>
<!-- Piwik --> 
<!--
<script type="text/javascript">
var pkBaseURL = (("https:" == document.location.protocol) ? "https://stats.sylphide-consulting.com/piwik/" : "http://stats.sylphide-consulting.com/piwik/");
document.write(unescape("%3Cscript src='" + pkBaseURL + "piwik.js' type='text/javascript'%3E%3C/script%3E"));
</script><script type="text/javascript">
try {
var piwikTracker = Piwik.getTracker(pkBaseURL + "piwik.php", 20);
piwikTracker.trackPageView();
piwikTracker.enableLinkTracking();
} catch( err ) {}
</script><noscript><p><img src="http://stats.sylphide-consulting.com/piwik/piwik.php?idsite=20" style="border:0" alt="" /></p></noscript>
-->
<!-- End Piwik Tracking Code -->
</body>
</html>