Imported Upstream version 1.72.0
[platform/upstream/boost.git] / libs / math / doc / html / math_toolkit / lambert_w.html
index 29a63cb..0e88841 100644 (file)
@@ -4,8 +4,8 @@
 <title>Lambert W function</title>
 <link rel="stylesheet" href="../math.css" type="text/css">
 <meta name="generator" content="DocBook XSL Stylesheets V1.79.1">
-<link rel="home" href="../index.html" title="Math Toolkit 2.10.0">
-<link rel="up" href="../special.html" title="Chapter&#160;7.&#160;Special Functions">
+<link rel="home" href="../index.html" title="Math Toolkit 2.11.0">
+<link rel="up" href="../special.html" title="Chapter&#160;8.&#160;Special Functions">
 <link rel="prev" href="jacobi/jacobi_sn.html" title="Jacobi Elliptic Function sn">
 <link rel="next" href="zetas.html" title="Zeta Functions">
 </head>
   <span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">T</span><span class="special">&gt;</span>
   <a class="link" href="result_type.html" title="Calculation of the Type of the Result"><span class="emphasis"><em>calculated-result-type</em></span></a> <span class="identifier">lambert_wm1_prime</span><span class="special">(</span><span class="identifier">T</span> <span class="identifier">z</span><span class="special">);</span>                 <span class="comment">// W-1 branch 1st derivative.</span>
 
-  <span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">T</span><span class="special">,</span> <span class="keyword">class</span> <a class="link" href="../policy.html" title="Chapter&#160;19.&#160;Policies: Controlling Precision, Error Handling etc">Policy</a><span class="special">&gt;</span>
-  <a class="link" href="result_type.html" title="Calculation of the Type of the Result"><span class="emphasis"><em>calculated-result-type</em></span></a> <span class="identifier">lambert_w0</span><span class="special">(</span><span class="identifier">T</span> <span class="identifier">z</span><span class="special">,</span> <span class="keyword">const</span> <a class="link" href="../policy.html" title="Chapter&#160;19.&#160;Policies: Controlling Precision, Error Handling etc">Policy</a><span class="special">&amp;);</span>         <span class="comment">// W0 with policy.</span>
-  <span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">T</span><span class="special">,</span> <span class="keyword">class</span> <a class="link" href="../policy.html" title="Chapter&#160;19.&#160;Policies: Controlling Precision, Error Handling etc">Policy</a><span class="special">&gt;</span>
-  <a class="link" href="result_type.html" title="Calculation of the Type of the Result"><span class="emphasis"><em>calculated-result-type</em></span></a> <span class="identifier">lambert_wm1</span><span class="special">(</span><span class="identifier">T</span> <span class="identifier">z</span><span class="special">,</span> <span class="keyword">const</span> <a class="link" href="../policy.html" title="Chapter&#160;19.&#160;Policies: Controlling Precision, Error Handling etc">Policy</a><span class="special">&amp;);</span>        <span class="comment">// W-1 with policy.</span>
-  <span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">T</span><span class="special">,</span> <span class="keyword">class</span> <a class="link" href="../policy.html" title="Chapter&#160;19.&#160;Policies: Controlling Precision, Error Handling etc">Policy</a><span class="special">&gt;</span>
-  <a class="link" href="result_type.html" title="Calculation of the Type of the Result"><span class="emphasis"><em>calculated-result-type</em></span></a> <span class="identifier">lambert_w0_prime</span><span class="special">(</span><span class="identifier">T</span> <span class="identifier">z</span><span class="special">,</span> <span class="keyword">const</span> <a class="link" href="../policy.html" title="Chapter&#160;19.&#160;Policies: Controlling Precision, Error Handling etc">Policy</a><span class="special">&amp;);</span>   <span class="comment">// W0 derivative with policy.</span>
-  <span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">T</span><span class="special">,</span> <span class="keyword">class</span> <a class="link" href="../policy.html" title="Chapter&#160;19.&#160;Policies: Controlling Precision, Error Handling etc">Policy</a><span class="special">&gt;</span>
-  <a class="link" href="result_type.html" title="Calculation of the Type of the Result"><span class="emphasis"><em>calculated-result-type</em></span></a> <span class="identifier">lambert_wm1_prime</span><span class="special">(</span><span class="identifier">T</span> <span class="identifier">z</span><span class="special">,</span> <span class="keyword">const</span> <a class="link" href="../policy.html" title="Chapter&#160;19.&#160;Policies: Controlling Precision, Error Handling etc">Policy</a><span class="special">&amp;);</span>  <span class="comment">// W-1 derivative with policy.</span>
+  <span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">T</span><span class="special">,</span> <span class="keyword">class</span> <a class="link" href="../policy.html" title="Chapter&#160;20.&#160;Policies: Controlling Precision, Error Handling etc">Policy</a><span class="special">&gt;</span>
+  <a class="link" href="result_type.html" title="Calculation of the Type of the Result"><span class="emphasis"><em>calculated-result-type</em></span></a> <span class="identifier">lambert_w0</span><span class="special">(</span><span class="identifier">T</span> <span class="identifier">z</span><span class="special">,</span> <span class="keyword">const</span> <a class="link" href="../policy.html" title="Chapter&#160;20.&#160;Policies: Controlling Precision, Error Handling etc">Policy</a><span class="special">&amp;);</span>         <span class="comment">// W0 with policy.</span>
+  <span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">T</span><span class="special">,</span> <span class="keyword">class</span> <a class="link" href="../policy.html" title="Chapter&#160;20.&#160;Policies: Controlling Precision, Error Handling etc">Policy</a><span class="special">&gt;</span>
+  <a class="link" href="result_type.html" title="Calculation of the Type of the Result"><span class="emphasis"><em>calculated-result-type</em></span></a> <span class="identifier">lambert_wm1</span><span class="special">(</span><span class="identifier">T</span> <span class="identifier">z</span><span class="special">,</span> <span class="keyword">const</span> <a class="link" href="../policy.html" title="Chapter&#160;20.&#160;Policies: Controlling Precision, Error Handling etc">Policy</a><span class="special">&amp;);</span>        <span class="comment">// W-1 with policy.</span>
+  <span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">T</span><span class="special">,</span> <span class="keyword">class</span> <a class="link" href="../policy.html" title="Chapter&#160;20.&#160;Policies: Controlling Precision, Error Handling etc">Policy</a><span class="special">&gt;</span>
+  <a class="link" href="result_type.html" title="Calculation of the Type of the Result"><span class="emphasis"><em>calculated-result-type</em></span></a> <span class="identifier">lambert_w0_prime</span><span class="special">(</span><span class="identifier">T</span> <span class="identifier">z</span><span class="special">,</span> <span class="keyword">const</span> <a class="link" href="../policy.html" title="Chapter&#160;20.&#160;Policies: Controlling Precision, Error Handling etc">Policy</a><span class="special">&amp;);</span>   <span class="comment">// W0 derivative with policy.</span>
+  <span class="keyword">template</span> <span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">T</span><span class="special">,</span> <span class="keyword">class</span> <a class="link" href="../policy.html" title="Chapter&#160;20.&#160;Policies: Controlling Precision, Error Handling etc">Policy</a><span class="special">&gt;</span>
+  <a class="link" href="result_type.html" title="Calculation of the Type of the Result"><span class="emphasis"><em>calculated-result-type</em></span></a> <span class="identifier">lambert_wm1_prime</span><span class="special">(</span><span class="identifier">T</span> <span class="identifier">z</span><span class="special">,</span> <span class="keyword">const</span> <a class="link" href="../policy.html" title="Chapter&#160;20.&#160;Policies: Controlling Precision, Error Handling etc">Policy</a><span class="special">&amp;);</span>  <span class="comment">// W-1 derivative with policy.</span>
 
  <span class="special">}</span> <span class="comment">// namespace boost</span>
  <span class="special">}</span> <span class="comment">// namespace math</span>
       are labelled <code class="computeroutput"><span class="identifier">lambert_w0_prime</span></code>
       and <code class="computeroutput"><span class="identifier">lambert_wm1_prime</span></code>.
     </p>
-<p>
-      <span class="inlinemediaobject"><img src="../../graphs/lambert_w_graph.svg" align="middle"></span>
-  <span class="inlinemediaobject"><img src="../../graphs/lambert_w_graph_big_w.svg" align="middle"></span>
-  <span class="inlinemediaobject"><img src="../../graphs/lambert_w0_prime_graph.svg" align="middle"></span>
-  <span class="inlinemediaobject"><img src="../../graphs/lambert_wm1_prime_graph.svg" align="middle"></span>
-    </p>
+<div class="blockquote"><blockquote class="blockquote"><p>
+        <span class="inlinemediaobject"><img src="../../graphs/lambert_w_graph.svg" align="middle"></span>
+
+      </p></blockquote></div>
+<div class="blockquote"><blockquote class="blockquote"><p>
+        <span class="inlinemediaobject"><img src="../../graphs/lambert_w_graph_big_w.svg" align="middle"></span>
+
+      </p></blockquote></div>
+<div class="blockquote"><blockquote class="blockquote"><p>
+        <span class="inlinemediaobject"><img src="../../graphs/lambert_w0_prime_graph.svg" align="middle"></span>
+
+      </p></blockquote></div>
+<div class="blockquote"><blockquote class="blockquote"><p>
+        <span class="inlinemediaobject"><img src="../../graphs/lambert_wm1_prime_graph.svg" align="middle"></span>
+
+      </p></blockquote></div>
 <p>
       There is a singularity where the branches meet at <span class="emphasis"><em>e</em></span><sup>-1</sup> &#8773; <code class="literal">-0.367879</code>.
       Approaching this point, the condition number of function evaluation tends to
@@ -97,8 +107,8 @@ with the functions <code class="computeroutput"><span class="identifier">lambert
       arguments are not supported.
     </p>
 <p>
-      The final <a class="link" href="../policy.html" title="Chapter&#160;19.&#160;Policies: Controlling Precision, Error Handling etc">Policy</a> argument is optional and can
-      be used to control how the function deals with errors. Refer to <a class="link" href="../policy.html" title="Chapter&#160;19.&#160;Policies: Controlling Precision, Error Handling etc">Policies</a>
+      The final <a class="link" href="../policy.html" title="Chapter&#160;20.&#160;Policies: Controlling Precision, Error Handling etc">Policy</a> argument is optional and can
+      be used to control how the function deals with errors. Refer to <a class="link" href="../policy.html" title="Chapter&#160;20.&#160;Policies: Controlling Precision, Error Handling etc">Policies</a>
       for more details and see examples below.
     </p>
 <h6>
@@ -335,9 +345,9 @@ with the functions <code class="computeroutput"><span class="identifier">lambert
 <p>
       Banwell and Jakaumar equation 5
     </p>
-<p>
-      &#8198; &#160; I(V) = &#956; V<sub>T</sub>/ R <sub>S</sub> &#8228; W<sub>0</sub>(I<sub>0</sub> R<sub>S</sub> / (&#956; V<sub>T</sub>))
-    </p>
+<div class="blockquote"><blockquote class="blockquote"><p>
+        <span class="serif_italic">I(V) = &#956; V<sub>T</sub>/ R <sub>S</sub> &#8228; W<sub>0</sub>(I<sub>0</sub> R<sub>S</sub> / (&#956; V<sub>T</sub>))</span>
+      </p></blockquote></div>
 <p>
       Using these variables
     </p>
@@ -385,9 +395,10 @@ with the functions <code class="computeroutput"><span class="identifier">lambert
 <p>
       to reproduce their Fig 2:
     </p>
-<p>
-      <span class="inlinemediaobject"><img src="../../graphs/diode_iv_plot.svg" align="middle"></span>
-    </p>
+<div class="blockquote"><blockquote class="blockquote"><p>
+        <span class="inlinemediaobject"><img src="../../graphs/diode_iv_plot.svg" align="middle"></span>
+
+      </p></blockquote></div>
 <p>
       The plotted points for no external series resistance (derived from their published
       plot as the raw data are not publicly available) are used to extrapolate back
@@ -615,12 +626,14 @@ with the functions <code class="computeroutput"><span class="identifier">lambert
       reference 'best' z50 evaluations using <code class="computeroutput"><span class="identifier">cpp_bin_float_50</span></code>
       type reduced to <code class="computeroutput"><span class="keyword">double</span></code> with <code class="computeroutput"><span class="keyword">static_cast</span><span class="special">&lt;</span><span class="keyword">double</span><span class="special">(</span><span class="identifier">z50</span><span class="special">)</span></code> :
     </p>
-<p>
-      <span class="inlinemediaobject"><img src="../../graphs/lambert_w0_errors_graph.svg" align="middle"></span>
-    </p>
-<p>
-      <span class="inlinemediaobject"><img src="../../graphs/lambert_wm1_errors_graph.svg" align="middle"></span>
-    </p>
+<div class="blockquote"><blockquote class="blockquote"><p>
+        <span class="inlinemediaobject"><img src="../../graphs/lambert_w0_errors_graph.svg" align="middle"></span>
+
+      </p></blockquote></div>
+<div class="blockquote"><blockquote class="blockquote"><p>
+        <span class="inlinemediaobject"><img src="../../graphs/lambert_wm1_errors_graph.svg" align="middle"></span>
+
+      </p></blockquote></div>
 <p>
       As noted in the implementation section, the distribution of these differences
       is somewhat biased for Lambert <span class="emphasis"><em>W</em></span><sub>-1</sub> and this might be reduced
@@ -964,7 +977,7 @@ if (f(w) / f'</span><span class="special">(</span><span class="identifier">w</sp
       z = 0.0501 to 703, in 0.001 step factor 1.05 when module 7 == 0
     </p>
 <div class="table">
-<a name="math_toolkit.lambert_w.lambert_w0_Fukushima"></a><p class="title"><b>Table&#160;7.73.&#160;Fukushima Lambert <span class="emphasis"><em>W</em></span><sub>0</sub> and typical improvement from
+<a name="math_toolkit.lambert_w.lambert_w0_Fukushima"></a><p class="title"><b>Table&#160;8.73.&#160;Fukushima Lambert <span class="emphasis"><em>W</em></span><sub>0</sub> and typical improvement from
       a single Halley step.</b></p>
 <div class="table-contents"><table class="table" summary="Fukushima Lambert W0 and typical improvement from
       a single Halley step.">
@@ -1100,7 +1113,7 @@ if (f(w) / f'</span><span class="special">(</span><span class="identifier">w</sp
       bit different, and only 2 two-bits 'wrong'.
     </p>
 <div class="table">
-<a name="math_toolkit.lambert_w.lambert_w0_plus_halley"></a><p class="title"><b>Table&#160;7.74.&#160;Rational polynomial Lambert <span class="emphasis"><em>W</em></span><sub>0</sub> and typical improvement
+<a name="math_toolkit.lambert_w.lambert_w0_plus_halley"></a><p class="title"><b>Table&#160;8.74.&#160;Rational polynomial Lambert <span class="emphasis"><em>W</em></span><sub>0</sub> and typical improvement
       from a single Halley step.</b></p>
 <div class="table-contents"><table class="table" summary="Rational polynomial Lambert W0 and typical improvement
       from a single Halley step.">
@@ -1241,7 +1254,7 @@ if (f(w) / f'</span><span class="special">(</span><span class="identifier">w</sp
       used.
     </p>
 <div class="table">
-<a name="math_toolkit.lambert_w.lambert_wm1_fukushima"></a><p class="title"><b>Table&#160;7.75.&#160;Lambert <span class="emphasis"><em>W</em></span><sub>-1</sub> using Fukushima algorithm.</b></p>
+<a name="math_toolkit.lambert_w.lambert_wm1_fukushima"></a><p class="title"><b>Table&#160;8.75.&#160;Lambert <span class="emphasis"><em>W</em></span><sub>-1</sub> using Fukushima algorithm.</b></p>
 <div class="table-contents"><table class="table" summary="Lambert W-1 using Fukushima algorithm.">
 <colgroup>
 <col>
@@ -1737,10 +1750,14 @@ if (f(w) / f'</span><span class="special">(</span><span class="identifier">w</sp
       value, a minority are within 1 <a href="http://en.wikipedia.org/wiki/Unit_in_the_last_place" target="_top">Unit
       in the last place (ULP)</a> and only a very few 2 ULP.
     </p>
-<p>
-      <span class="inlinemediaobject"><img src="../../graphs/lambert_w0_errors_graph.svg" align="middle"></span>
-  <span class="inlinemediaobject"><img src="../../graphs/lambert_wm1_errors_graph.svg" align="middle"></span>
-    </p>
+<div class="blockquote"><blockquote class="blockquote"><p>
+        <span class="inlinemediaobject"><img src="../../graphs/lambert_w0_errors_graph.svg" align="middle"></span>
+
+      </p></blockquote></div>
+<div class="blockquote"><blockquote class="blockquote"><p>
+        <span class="inlinemediaobject"><img src="../../graphs/lambert_wm1_errors_graph.svg" align="middle"></span>
+
+      </p></blockquote></div>
 <p>
       For the range of z arguments over the range -0.35 to 0.5, a different algorithm
       is used, but the same technique of evaluating reference values using a <a href="../../../../../libs/multiprecision/doc/html/index.html" target="_top">Boost.Multiprecision</a>