Sophie

Sophie

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

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-unsupported: PolynomialSolver&lt; _Scalar, _Deg &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-unsupported</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_1PolynomialSolver.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>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Groups</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><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_1PolynomialSolver-members.html">List of all members</a> &#124;
<a href="#pub-methods">Public Member Functions</a>  </div>
  <div class="headertitle">
<div class="title">PolynomialSolver&lt; _Scalar, _Deg &gt; Class Template Reference<div class="ingroups"><a class="el" href="group__Polynomials__Module.html">Polynomials 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 _Scalar, int _Deg&gt;<br/>
class Eigen::PolynomialSolver&lt; _Scalar, _Deg &gt;</h3>

<p>A polynomial solver. </p>
<p>Computes the complex roots of a real polynomial.</p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">_Scalar</td><td>the scalar type, i.e., the type of the polynomial coefficients </td></tr>
    <tr><td class="paramname">_Deg</td><td>the degree of the polynomial, can be a compile time value or Dynamic. Notice that the number of polynomial coefficients is _Deg+1.</td></tr>
  </table>
  </dd>
</dl>
<p>This class implements a polynomial solver and provides convenient methods such as</p>
<ul>
<li>real roots,</li>
<li>greatest, smallest complex roots,</li>
<li>real roots with greatest, smallest absolute real value.</li>
<li>greatest, smallest real roots.</li>
</ul>
<p>WARNING: this polynomial solver is experimental, part of the unsuported <a class="el" href="namespaceEigen.html" title="iterative scaling algorithm to equilibrate rows and column norms in matrices ">Eigen</a> modules.</p>
<p>Currently a QR algorithm is used to compute the eigenvalues of the companion matrix of the polynomial to compute its roots. This supposes that the complex moduli of the roots are all distinct: e.g. there should be no multiple roots or conjugate roots for instance. With 32bit (float) floating types this problem shows up frequently. However, almost always, correct accuracy is reached even in these cases for 64bit (double) floating types and small polynomial degree (&lt;20). </p>
</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 PolynomialSolver&lt; _Scalar, _Deg &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_1PolynomialSolver__inherit__graph.png" border="0" usemap="#PolynomialSolver_3_01__Scalar_00_01__Deg_01_4_inherit__map" alt="Inheritance graph"/></div>
<map name="PolynomialSolver_3_01__Scalar_00_01__Deg_01_4_inherit__map" id="PolynomialSolver_3_01__Scalar_00_01__Deg_01_4_inherit__map">
<area shape="rect" id="node2" href="classEigen_1_1PolynomialSolverBase.html" title="Defined to be inherited by polynomial solvers: it provides convenient methods such as..." alt="" coords="5,6,232,333"/></map>
</div>
<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:a39f7bf9d7209ad81023ac260c0c73b95"><td class="memItemLeft" align="right" valign="top">const RealScalar &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classEigen_1_1PolynomialSolverBase.html#a39f7bf9d7209ad81023ac260c0c73b95">absGreatestRealRoot</a> (bool &amp;hasArealRoot, const RealScalar &amp;absImaginaryThreshold=NumTraits&lt; Scalar &gt;::dummy_precision()) const </td></tr>
<tr class="separator:a39f7bf9d7209ad81023ac260c0c73b95"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a9d126b6ec7d4272a57c2599290eaded8"><td class="memItemLeft" align="right" valign="top">const RealScalar &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classEigen_1_1PolynomialSolverBase.html#a9d126b6ec7d4272a57c2599290eaded8">absSmallestRealRoot</a> (bool &amp;hasArealRoot, const RealScalar &amp;absImaginaryThreshold=NumTraits&lt; Scalar &gt;::dummy_precision()) const </td></tr>
<tr class="separator:a9d126b6ec7d4272a57c2599290eaded8"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a0ebea181d86798f6f44665459bbc0a9b"><td class="memTemplParams" colspan="2">template&lt;typename OtherPolynomial &gt; </td></tr>
<tr class="memitem:a0ebea181d86798f6f44665459bbc0a9b"><td class="memTemplItemLeft" align="right" valign="top">void&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="classEigen_1_1PolynomialSolver.html#a0ebea181d86798f6f44665459bbc0a9b">compute</a> (const OtherPolynomial &amp;poly)</td></tr>
<tr class="separator:a0ebea181d86798f6f44665459bbc0a9b"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a98061536184cd108e00753d4218fbbc1"><td class="memItemLeft" align="right" valign="top">const RealScalar &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classEigen_1_1PolynomialSolverBase.html#a98061536184cd108e00753d4218fbbc1">greatestRealRoot</a> (bool &amp;hasArealRoot, const RealScalar &amp;absImaginaryThreshold=NumTraits&lt; Scalar &gt;::dummy_precision()) const </td></tr>
<tr class="separator:a98061536184cd108e00753d4218fbbc1"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a1057f89aeacfd843351d5016dda4a047"><td class="memItemLeft" align="right" valign="top">const RootType &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classEigen_1_1PolynomialSolverBase.html#a1057f89aeacfd843351d5016dda4a047">greatestRoot</a> () const </td></tr>
<tr class="separator:a1057f89aeacfd843351d5016dda4a047"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a152ced5a7f96ba18528e540cd0c7e6ce"><td class="memTemplParams" colspan="2">template&lt;typename Stl_back_insertion_sequence &gt; </td></tr>
<tr class="memitem:a152ced5a7f96ba18528e540cd0c7e6ce"><td class="memTemplItemLeft" align="right" valign="top">void&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="classEigen_1_1PolynomialSolverBase.html#a152ced5a7f96ba18528e540cd0c7e6ce">realRoots</a> (Stl_back_insertion_sequence &amp;bi_seq, const RealScalar &amp;absImaginaryThreshold=NumTraits&lt; Scalar &gt;::dummy_precision()) const </td></tr>
<tr class="separator:a152ced5a7f96ba18528e540cd0c7e6ce"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a170e917417495c3d536ae6a1b75e9d1e"><td class="memItemLeft" align="right" valign="top">const RootsType &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classEigen_1_1PolynomialSolverBase.html#a170e917417495c3d536ae6a1b75e9d1e">roots</a> () const </td></tr>
<tr class="separator:a170e917417495c3d536ae6a1b75e9d1e"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a399ac0a070144fdb3b7266be28f47e8b"><td class="memItemLeft" align="right" valign="top">const RealScalar &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classEigen_1_1PolynomialSolverBase.html#a399ac0a070144fdb3b7266be28f47e8b">smallestRealRoot</a> (bool &amp;hasArealRoot, const RealScalar &amp;absImaginaryThreshold=NumTraits&lt; Scalar &gt;::dummy_precision()) const </td></tr>
<tr class="separator:a399ac0a070144fdb3b7266be28f47e8b"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:afcc2f9f37f2641d8adc18e6a4be2425b"><td class="memItemLeft" align="right" valign="top">const RootType &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classEigen_1_1PolynomialSolverBase.html#afcc2f9f37f2641d8adc18e6a4be2425b">smallestRoot</a> () const </td></tr>
<tr class="separator:afcc2f9f37f2641d8adc18e6a4be2425b"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<h2 class="groupheader">Member Function Documentation</h2>
<a class="anchor" id="a39f7bf9d7209ad81023ac260c0c73b95"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">const RealScalar&amp; absGreatestRealRoot </td>
          <td>(</td>
          <td class="paramtype">bool &amp;&#160;</td>
          <td class="paramname"><em>hasArealRoot</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const RealScalar &amp;&#160;</td>
          <td class="paramname"><em>absImaginaryThreshold</em> = <code>NumTraits&lt;Scalar&gt;::dummy_precision()</code>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</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">
<dl class="section return"><dt>Returns</dt><dd>a real root with greatest absolute magnitude. A real root is defined as the real part of a complex root with absolute imaginary part smallest than absImaginaryThreshold. absImaginaryThreshold takes the dummy_precision associated with the _Scalar template parameter of the <a class="el" href="classEigen_1_1PolynomialSolver.html" title="A polynomial solver. ">PolynomialSolver</a> class as the default value. If no real root is found the boolean hasArealRoot is set to false and the real part of the root with smallest absolute imaginary part is returned instead.</dd></dl>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[out]</td><td class="paramname">hasArealRoot</td><td>: boolean true if a real root is found according to the absImaginaryThreshold criterion, false otherwise. </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">absImaginaryThreshold</td><td>: threshold on the absolute imaginary part to decide whether or not a root is real. </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a class="anchor" id="a9d126b6ec7d4272a57c2599290eaded8"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">const RealScalar&amp; absSmallestRealRoot </td>
          <td>(</td>
          <td class="paramtype">bool &amp;&#160;</td>
          <td class="paramname"><em>hasArealRoot</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const RealScalar &amp;&#160;</td>
          <td class="paramname"><em>absImaginaryThreshold</em> = <code>NumTraits&lt;Scalar&gt;::dummy_precision()</code>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</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">
<dl class="section return"><dt>Returns</dt><dd>a real root with smallest absolute magnitude. A real root is defined as the real part of a complex root with absolute imaginary part smallest than absImaginaryThreshold. absImaginaryThreshold takes the dummy_precision associated with the _Scalar template parameter of the <a class="el" href="classEigen_1_1PolynomialSolver.html" title="A polynomial solver. ">PolynomialSolver</a> class as the default value. If no real root is found the boolean hasArealRoot is set to false and the real part of the root with smallest absolute imaginary part is returned instead.</dd></dl>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[out]</td><td class="paramname">hasArealRoot</td><td>: boolean true if a real root is found according to the absImaginaryThreshold criterion, false otherwise. </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">absImaginaryThreshold</td><td>: threshold on the absolute imaginary part to decide whether or not a root is real. </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a class="anchor" id="a0ebea181d86798f6f44665459bbc0a9b"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">void compute </td>
          <td>(</td>
          <td class="paramtype">const OtherPolynomial &amp;&#160;</td>
          <td class="paramname"><em>poly</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>Computes the complex roots of a new polynomial. </p>

</div>
</div>
<a class="anchor" id="a98061536184cd108e00753d4218fbbc1"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">const RealScalar&amp; greatestRealRoot </td>
          <td>(</td>
          <td class="paramtype">bool &amp;&#160;</td>
          <td class="paramname"><em>hasArealRoot</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const RealScalar &amp;&#160;</td>
          <td class="paramname"><em>absImaginaryThreshold</em> = <code>NumTraits&lt;Scalar&gt;::dummy_precision()</code>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</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">
<dl class="section return"><dt>Returns</dt><dd>the real root with greatest value. A real root is defined as the real part of a complex root with absolute imaginary part smallest than absImaginaryThreshold. absImaginaryThreshold takes the dummy_precision associated with the _Scalar template parameter of the <a class="el" href="classEigen_1_1PolynomialSolver.html" title="A polynomial solver. ">PolynomialSolver</a> class as the default value. If no real root is found the boolean hasArealRoot is set to false and the real part of the root with smallest absolute imaginary part is returned instead.</dd></dl>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[out]</td><td class="paramname">hasArealRoot</td><td>: boolean true if a real root is found according to the absImaginaryThreshold criterion, false otherwise. </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">absImaginaryThreshold</td><td>: threshold on the absolute imaginary part to decide whether or not a root is real. </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a class="anchor" id="a1057f89aeacfd843351d5016dda4a047"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">const RootType&amp; greatestRoot </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">
<dl class="section return"><dt>Returns</dt><dd>the complex root with greatest norm. </dd></dl>

</div>
</div>
<a class="anchor" id="a152ced5a7f96ba18528e540cd0c7e6ce"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">void realRoots </td>
          <td>(</td>
          <td class="paramtype">Stl_back_insertion_sequence &amp;&#160;</td>
          <td class="paramname"><em>bi_seq</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const RealScalar &amp;&#160;</td>
          <td class="paramname"><em>absImaginaryThreshold</em> = <code>NumTraits&lt;Scalar&gt;::dummy_precision()</code>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</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>Clear and fills the back insertion sequence with the real roots of the polynomial i.e. the real part of the complex roots that have an imaginary part which absolute value is smaller than absImaginaryThreshold. absImaginaryThreshold takes the dummy_precision associated with the _Scalar template parameter of the <a class="el" href="classEigen_1_1PolynomialSolver.html" title="A polynomial solver. ">PolynomialSolver</a> class as the default value.</p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[out]</td><td class="paramname">bi_seq</td><td>: the back insertion sequence (stl concept) </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">absImaginaryThreshold</td><td>: the maximum bound of the imaginary part of a complex number that is considered as real. </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a class="anchor" id="a170e917417495c3d536ae6a1b75e9d1e"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">const RootsType&amp; roots </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">
<dl class="section return"><dt>Returns</dt><dd>the complex roots of the polynomial </dd></dl>

</div>
</div>
<a class="anchor" id="a399ac0a070144fdb3b7266be28f47e8b"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">const RealScalar&amp; smallestRealRoot </td>
          <td>(</td>
          <td class="paramtype">bool &amp;&#160;</td>
          <td class="paramname"><em>hasArealRoot</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const RealScalar &amp;&#160;</td>
          <td class="paramname"><em>absImaginaryThreshold</em> = <code>NumTraits&lt;Scalar&gt;::dummy_precision()</code>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</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">
<dl class="section return"><dt>Returns</dt><dd>the real root with smallest value. A real root is defined as the real part of a complex root with absolute imaginary part smallest than absImaginaryThreshold. absImaginaryThreshold takes the dummy_precision associated with the _Scalar template parameter of the <a class="el" href="classEigen_1_1PolynomialSolver.html" title="A polynomial solver. ">PolynomialSolver</a> class as the default value. If no real root is found the boolean hasArealRoot is set to false and the real part of the root with smallest absolute imaginary part is returned instead.</dd></dl>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[out]</td><td class="paramname">hasArealRoot</td><td>: boolean true if a real root is found according to the absImaginaryThreshold criterion, false otherwise. </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">absImaginaryThreshold</td><td>: threshold on the absolute imaginary part to decide whether or not a root is real. </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a class="anchor" id="afcc2f9f37f2641d8adc18e6a4be2425b"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">const RootType&amp; smallestRoot </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">
<dl class="section return"><dt>Returns</dt><dd>the complex root with smallest norm. </dd></dl>

</div>
</div>
<hr/>The documentation for this class was generated from the following file:<ul>
<li><a class="el" href="PolynomialSolver_8h_source.html">PolynomialSolver.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_1PolynomialSolver.html">PolynomialSolver</a></li>
    <li class="footer">Generated on Mon Oct 28 2013 11:05:27 for Eigen-unsupported 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>