%PDF- %PDF-
| Direktori : /usr/share/doc/imath-devel/html/functions/ |
| Current File : //usr/share/doc/imath-devel/html/functions/roots.html |
<!doctype html>
<html>
<head>
<meta charset="utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>Roots — Imath Documentation</title>
<link rel="stylesheet" href="../_static/pygments.css" type="text/css" />
<link rel="stylesheet" href="../_static/bizstyle.css" type="text/css" />
<script id="documentation_options" data-url_root="../" src="../_static/documentation_options.js"></script>
<script src="../_static/jquery.js"></script>
<script src="../_static/underscore.js"></script>
<script src="../_static/doctools.js"></script>
<script async="async" src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.7/latest.js?config=TeX-AMS-MML_HTMLorMML"></script>
<script src="../_static/bizstyle.js"></script>
<link rel="index" title="Index" href="../genindex.html" />
<link rel="search" title="Search" href="../search.html" />
<link rel="next" title="Vector Functions" href="vec.html" />
<link rel="prev" title="Random Numbers" href="random.html" />
<meta name="viewport" content="width=device-width,initial-scale=1.0" />
<!--[if lt IE 9]>
<script src="_static/css3-mediaqueries.js"></script>
<![endif]-->
</head><body>
<div class="related" role="navigation" aria-label="related navigation">
<h3>Navigation</h3>
<ul>
<li class="right" style="margin-right: 10px">
<a href="../genindex.html" title="General Index"
accesskey="I">index</a></li>
<li class="right" >
<a href="vec.html" title="Vector Functions"
accesskey="N">next</a> |</li>
<li class="right" >
<a href="random.html" title="Random Numbers"
accesskey="P">previous</a> |</li>
<li class="nav-item nav-item-0"><a href="../index.html">Imath</a> »</li>
<li class="nav-item nav-item-this"><a href="">Roots</a></li>
</ul>
</div>
<div class="document">
<div class="documentwrapper">
<div class="bodywrapper">
<div class="body" role="main">
<div class="section" id="roots">
<span id="id1"></span><h1>Roots<a class="headerlink" href="#roots" title="Permalink to this headline">¶</a></h1>
<p>Functions to compute roots of simple equations.</p>
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="c1">#include <Imath/ImathRoots.h></span>
</pre></div>
</div>
<dl class="cpp function">
<dt id="_CPPv4I0EN5Imath11solveLinearEi1T1TR1T">
<span id="_CPPv3I0EN5Imath11solveLinearE1T1TR1T"></span><span id="_CPPv2I0EN5Imath11solveLinearE1T1TR1T"></span>template<class <code class="sig-name descname">T</code>><br /><span class="target" id="_imath_roots_8h_1ab74b6481dec757db3aabf3afad53b42b"></span><em class="property">constexpr</em> int <code class="sig-prename descclassname">Imath<code class="sig-prename descclassname">::</code></code><code class="sig-name descname">solveLinear</code><span class="sig-paren">(</span><a class="reference internal" href="#_CPPv4I0EN5Imath11solveLinearEi1T1TR1T" title="Imath::solveLinear::T">T</a> <em>a</em>, <a class="reference internal" href="#_CPPv4I0EN5Imath11solveLinearEi1T1TR1T" title="Imath::solveLinear::T">T</a> <em>b</em>, <a class="reference internal" href="#_CPPv4I0EN5Imath11solveLinearEi1T1TR1T" title="Imath::solveLinear::T">T</a> &<em>x</em><span class="sig-paren">)</span><a class="headerlink" href="#_CPPv4I0EN5Imath11solveLinearEi1T1TR1T" title="Permalink to this definition">¶</a><br /></dt>
<dd><p>Solve for x in the linear equation: </p>
<p><div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="n">a</span> <span class="o">*</span> <span class="n">x</span> <span class="o">+</span> <span class="n">b</span> <span class="o">==</span> <span class="mi">0</span>
</pre></div>
</div>
<dl class="simple">
<dt><strong>Return</strong></dt><dd><p>1 if the equation has a solution, 0 if there is no solution, and -1 if all real numbers are solutions. </p>
</dd>
</dl>
</p>
</dd></dl>
<dl class="cpp function">
<dt id="_CPPv4I0EN5Imath14solveQuadraticEi1T1T1TAL2E_1T">
<span id="_CPPv3I0EN5Imath14solveQuadraticE1T1T1TAL2E_1T"></span><span id="_CPPv2I0EN5Imath14solveQuadraticE1T1T1TA2_1T"></span>template<class <code class="sig-name descname">T</code>><br /><span class="target" id="_imath_roots_8h_1a94c654a5ec9ce534aaf83016ba2f265a"></span><em class="property">constexpr</em> int <code class="sig-prename descclassname">Imath<code class="sig-prename descclassname">::</code></code><code class="sig-name descname">solveQuadratic</code><span class="sig-paren">(</span><a class="reference internal" href="#_CPPv4I0EN5Imath14solveQuadraticEi1T1T1TAL2E_1T" title="Imath::solveQuadratic::T">T</a> <em>a</em>, <a class="reference internal" href="#_CPPv4I0EN5Imath14solveQuadraticEi1T1T1TAL2E_1T" title="Imath::solveQuadratic::T">T</a> <em>b</em>, <a class="reference internal" href="#_CPPv4I0EN5Imath14solveQuadraticEi1T1T1TAL2E_1T" title="Imath::solveQuadratic::T">T</a> <em>c</em>, <a class="reference internal" href="#_CPPv4I0EN5Imath14solveQuadraticEi1T1T1TAL2E_1T" title="Imath::solveQuadratic::T">T</a> <em>x</em>[2]<span class="sig-paren">)</span><a class="headerlink" href="#_CPPv4I0EN5Imath14solveQuadraticEi1T1T1TAL2E_1T" title="Permalink to this definition">¶</a><br /></dt>
<dd><p>Solve for x in the quadratic equation: </p>
<p><div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="n">a</span> <span class="o">*</span> <span class="n">x</span><span class="o">*</span><span class="n">x</span> <span class="o">+</span> <span class="n">b</span> <span class="o">*</span> <span class="n">x</span> <span class="o">+</span> <span class="n">c</span> <span class="o">==</span> <span class="mi">0</span>
</pre></div>
</div>
<dl class="simple">
<dt><strong>Return</strong></dt><dd><p>2 if the equation has two solutions, 1 if the equation has a single solution, 0 if there is no solution, and -1 if all real numbers are solutions. </p>
</dd>
</dl>
</p>
</dd></dl>
<dl class="cpp function">
<dt id="_CPPv4I0EN5Imath20solveNormalizedCubicEi1T1T1TAL3E_1T">
<span id="_CPPv3I0EN5Imath20solveNormalizedCubicE1T1T1TAL3E_1T"></span><span id="_CPPv2I0EN5Imath20solveNormalizedCubicE1T1T1TA3_1T"></span>template<class <code class="sig-name descname">T</code>><br /><span class="target" id="_imath_roots_8h_1a0266743eb556a3eb3b340d0ed9d3ded9"></span><em class="property">constexpr</em> int <code class="sig-prename descclassname">Imath<code class="sig-prename descclassname">::</code></code><code class="sig-name descname">solveNormalizedCubic</code><span class="sig-paren">(</span><a class="reference internal" href="#_CPPv4I0EN5Imath20solveNormalizedCubicEi1T1T1TAL3E_1T" title="Imath::solveNormalizedCubic::T">T</a> <em>r</em>, <a class="reference internal" href="#_CPPv4I0EN5Imath20solveNormalizedCubicEi1T1T1TAL3E_1T" title="Imath::solveNormalizedCubic::T">T</a> <em>s</em>, <a class="reference internal" href="#_CPPv4I0EN5Imath20solveNormalizedCubicEi1T1T1TAL3E_1T" title="Imath::solveNormalizedCubic::T">T</a> <em>t</em>, <a class="reference internal" href="#_CPPv4I0EN5Imath20solveNormalizedCubicEi1T1T1TAL3E_1T" title="Imath::solveNormalizedCubic::T">T</a> <em>x</em>[3]<span class="sig-paren">)</span><a class="headerlink" href="#_CPPv4I0EN5Imath20solveNormalizedCubicEi1T1T1TAL3E_1T" title="Permalink to this definition">¶</a><br /></dt>
<dd><p>Solve for x in the normalized cubic equation: </p>
<p><div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="n">x</span><span class="o">*</span><span class="n">x</span><span class="o">*</span><span class="n">x</span> <span class="o">+</span> <span class="n">r</span> <span class="o">*</span> <span class="n">x</span><span class="o">*</span><span class="n">x</span> <span class="o">+</span> <span class="n">s</span> <span class="o">*</span> <span class="n">x</span> <span class="o">+</span> <span class="n">t</span> <span class="o">==</span> <span class="mi">0</span>
</pre></div>
</div>
The equation is solved using Cardano’s Formula; even though only real solutions are produced, some intermediate results are complex (std::complex<T>).</p>
<p><dl class="simple">
<dt><strong>Return</strong></dt><dd><p>0 if there is no solution, and -1 if all real numbers are solutions, otherwise return the number of solutions. </p>
</dd>
</dl>
</p>
</dd></dl>
<dl class="cpp function">
<dt id="_CPPv4I0EN5Imath10solveCubicEi1T1T1T1TAL3E_1T">
<span id="_CPPv3I0EN5Imath10solveCubicE1T1T1T1TAL3E_1T"></span><span id="_CPPv2I0EN5Imath10solveCubicE1T1T1T1TA3_1T"></span>template<class <code class="sig-name descname">T</code>><br /><span class="target" id="_imath_roots_8h_1a2a27d3e8ea4d2aadc1c506b3a3d77bf5"></span><em class="property">constexpr</em> int <code class="sig-prename descclassname">Imath<code class="sig-prename descclassname">::</code></code><code class="sig-name descname">solveCubic</code><span class="sig-paren">(</span><a class="reference internal" href="#_CPPv4I0EN5Imath10solveCubicEi1T1T1T1TAL3E_1T" title="Imath::solveCubic::T">T</a> <em>a</em>, <a class="reference internal" href="#_CPPv4I0EN5Imath10solveCubicEi1T1T1T1TAL3E_1T" title="Imath::solveCubic::T">T</a> <em>b</em>, <a class="reference internal" href="#_CPPv4I0EN5Imath10solveCubicEi1T1T1T1TAL3E_1T" title="Imath::solveCubic::T">T</a> <em>c</em>, <a class="reference internal" href="#_CPPv4I0EN5Imath10solveCubicEi1T1T1T1TAL3E_1T" title="Imath::solveCubic::T">T</a> <em>d</em>, <a class="reference internal" href="#_CPPv4I0EN5Imath10solveCubicEi1T1T1T1TAL3E_1T" title="Imath::solveCubic::T">T</a> <em>x</em>[3]<span class="sig-paren">)</span><a class="headerlink" href="#_CPPv4I0EN5Imath10solveCubicEi1T1T1T1TAL3E_1T" title="Permalink to this definition">¶</a><br /></dt>
<dd><p>Solve for x in the cubic equation: </p>
<p><div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="n">a</span> <span class="o">*</span> <span class="n">x</span><span class="o">*</span><span class="n">x</span><span class="o">*</span><span class="n">x</span> <span class="o">+</span> <span class="n">b</span> <span class="o">*</span> <span class="n">x</span><span class="o">*</span><span class="n">x</span> <span class="o">+</span> <span class="n">c</span> <span class="o">*</span> <span class="n">x</span> <span class="o">+</span> <span class="n">d</span> <span class="o">==</span> <span class="mi">0</span>
</pre></div>
</div>
The equation is solved using Cardano’s Formula; even though only real solutions are produced, some intermediate results are complex (std::complex<T>).</p>
<p><dl class="simple">
<dt><strong>Return</strong></dt><dd><p>0 if there is no solution, and -1 if all real numbers are solutions, otherwise return the number of solutions. </p>
</dd>
</dl>
</p>
</dd></dl>
</div>
<div class="clearer"></div>
</div>
</div>
</div>
<div class="sphinxsidebar" role="navigation" aria-label="main navigation">
<div class="sphinxsidebarwrapper">
<p class="logo"><a href="../index.html">
<img class="logo" src="../_static/imath-logo-blue.png" alt="Logo"/>
</a></p>
<h4>Previous topic</h4>
<p class="topless"><a href="random.html"
title="previous chapter">Random Numbers</a></p>
<h4>Next topic</h4>
<p class="topless"><a href="vec.html"
title="next chapter">Vector Functions</a></p>
<div role="note" aria-label="source link">
<h3>This Page</h3>
<ul class="this-page-menu">
<li><a href="../_sources/functions/roots.rst.txt"
rel="nofollow">Show Source</a></li>
</ul>
</div>
<div id="searchbox" style="display: none" role="search">
<h3 id="searchlabel">Quick search</h3>
<div class="searchformwrapper">
<form class="search" action="../search.html" method="get">
<input type="text" name="q" aria-labelledby="searchlabel" />
<input type="submit" value="Go" />
</form>
</div>
</div>
<script>$('#searchbox').show(0);</script>
</div>
</div>
<div class="clearer"></div>
</div>
<div class="related" role="navigation" aria-label="related navigation">
<h3>Navigation</h3>
<ul>
<li class="right" style="margin-right: 10px">
<a href="../genindex.html" title="General Index"
>index</a></li>
<li class="right" >
<a href="vec.html" title="Vector Functions"
>next</a> |</li>
<li class="right" >
<a href="random.html" title="Random Numbers"
>previous</a> |</li>
<li class="nav-item nav-item-0"><a href="../index.html">Imath</a> »</li>
<li class="nav-item nav-item-this"><a href="">Roots</a></li>
</ul>
</div>
<div class="footer" role="contentinfo">
© Copyright 2021, Contributors to the OpenEXR Project.
Created using <a href="https://www.sphinx-doc.org/">Sphinx</a> 3.4.3.
</div>
</body>
</html>