<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
<title>Exponential Integral En</title>
<link rel="stylesheet" href="../../../../../../../../doc/src/boostbook.css" type="text/css">
<meta name="generator" content="DocBook XSL Stylesheets V1.74.0">
<link rel="home" href="../../../index.html" title="Math Toolkit">
<link rel="up" href="../expint.html" title="Exponential Integrals">
<link rel="prev" href="../expint.html" title="Exponential Integrals">
<link rel="next" href="expint_i.html" title="Exponential Integral Ei">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
<table cellpadding="2" width="100%"><tr>
<td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../../../../boost.png"></td>
<td align="center"><a href="../../../../../../../../index.html">Home</a></td>
<td align="center"><a href="../../../../../../../../libs/libraries.htm">Libraries</a></td>
<td align="center"><a href="http://www.boost.org/users/people.html">People</a></td>
<td align="center"><a href="http://www.boost.org/users/faq.html">FAQ</a></td>
<td align="center"><a href="../../../../../../../../more/index.htm">More</a></td>
</tr></table>
<hr>
<div class="spirit-nav">
<a accesskey="p" href="../expint.html"><img src="../../../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../expint.html"><img src="../../../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../../index.html"><img src="../../../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="expint_i.html"><img src="../../../../../../../../doc/src/images/next.png" alt="Next"></a>
</div>
<div class="section" lang="en">
<div class="titlepage"><div><div><h4 class="title">
<a name="math_toolkit.special.expint.expint_n"></a><a class="link" href="expint_n.html" title="Exponential Integral En"> Exponential
        Integral En</a>
</h4></div></div></div>
<a name="math_toolkit.special.expint.expint_n.synopsis"></a><h5>
<a name="id1142284"></a>
          <a class="link" href="expint_n.html#math_toolkit.special.expint.expint_n.synopsis">Synopsis</a>
        </h5>
<p>
          
</p>
<pre class="programlisting"><span class="preprocessor">#include</span> <span class="special">&lt;</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">math</span><span class="special">/</span><span class="identifier">special_functions</span><span class="special">/</span><span class="identifier">expint</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span>
</pre>
<p>
        </p>
<pre class="programlisting"><span class="keyword">namespace</span> <span class="identifier">boost</span><span class="special">{</span> <span class="keyword">namespace</span> <span class="identifier">math</span><span class="special">{</span>

<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="../../main_overview/result_type.html" title="Calculation of the Type of the Result"><span class="emphasis"><em>calculated-result-type</em></span></a> <span class="identifier">expint</span><span class="special">(</span><span class="keyword">unsigned</span> <span class="identifier">n</span><span class="special">,</span> <span class="identifier">T</span> <span class="identifier">z</span><span class="special">);</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="Policies">Policy</a><span class="special">&gt;</span>
<a class="link" href="../../main_overview/result_type.html" title="Calculation of the Type of the Result"><span class="emphasis"><em>calculated-result-type</em></span></a> <span class="identifier">expint</span><span class="special">(</span><span class="keyword">unsigned</span> <span class="identifier">n</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="Policies">Policy</a><span class="special">&amp;);</span>

<span class="special">}}</span> <span class="comment">// namespaces
</span></pre>
<p>
          The return type of these functions is computed using the <a class="link" href="../../main_overview/result_type.html" title="Calculation of the Type of the Result"><span class="emphasis"><em>result
          type calculation rules</em></span></a>: the return type is <code class="computeroutput"><span class="keyword">double</span></code> if T is an integer type, and T otherwise.
        </p>
<p>
          </p>
<p>
            The final <a class="link" href="../../policy.html" title="Policies">Policy</a> argument
            is optional and can be used to control the behaviour of the function:
            how it handles errors, what level of precision to use etc. Refer to the
            <a class="link" href="../../policy.html" title="Policies">policy documentation for more details</a>.
          </p>
<p>
        </p>
<a name="math_toolkit.special.expint.expint_n.description"></a><h5>
<a name="id1142570"></a>
          <a class="link" href="expint_n.html#math_toolkit.special.expint.expint_n.description">Description</a>
        </h5>
<pre class="programlisting"><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="../../main_overview/result_type.html" title="Calculation of the Type of the Result"><span class="emphasis"><em>calculated-result-type</em></span></a> <span class="identifier">expint</span><span class="special">(</span><span class="keyword">unsigned</span> <span class="identifier">n</span><span class="special">,</span> <span class="identifier">T</span> <span class="identifier">z</span><span class="special">);</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="Policies">Policy</a><span class="special">&gt;</span>
<a class="link" href="../../main_overview/result_type.html" title="Calculation of the Type of the Result"><span class="emphasis"><em>calculated-result-type</em></span></a> <span class="identifier">expint</span><span class="special">(</span><span class="keyword">unsigned</span> <span class="identifier">n</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="Policies">Policy</a><span class="special">&amp;);</span>
</pre>
<p>
          Returns the <a href="http://mathworld.wolfram.com/En-Function.html" target="_top">exponential
          integral En</a> of z:
        </p>
<p>
          <span class="inlinemediaobject"><img src="../../../../equations/expint_n_1.png"></span>
        </p>
<p>
          <span class="inlinemediaobject"><img src="../../../../graphs/expint2.png" align="middle"></span>
        </p>
<a name="math_toolkit.special.expint.expint_n.accuracy"></a><h5>
<a name="id1142795"></a>
          <a class="link" href="expint_n.html#math_toolkit.special.expint.expint_n.accuracy">Accuracy</a>
        </h5>
<p>
          The following table shows the peak errors (in units of epsilon) found on
          various platforms with various floating point types, along with comparisons
          to the <a href="http://www.netlib.org/cephes/" target="_top">Cephes</a> library.
          Unless otherwise specified any floating point type that is narrower than
          the one shown will have <a class="link" href="../../backgrounders/relative_error.html#zero_error">effectively zero error</a>.
        </p>
<div class="table">
<a name="math_toolkit.special.expint.expint_n.errors_in_the_function_expint_n__z_"></a><p class="title"><b>Table&#160;45.&#160;Errors In the Function expint(n, z)</b></p>
<div class="table-contents"><table class="table" summary="Errors In the Function expint(n, z)">
<colgroup>
<col>
<col>
<col>
<col>
</colgroup>
<thead><tr>
<th>
                  <p>
                    Significand Size
                  </p>
                </th>
<th>
                  <p>
                    Platform and Compiler
                  </p>
                </th>
<th>
                  <p>
                    En
                  </p>
                </th>
<th>
                  <p>
                    E1
                  </p>
                </th>
</tr></thead>
<tbody>
<tr>
<td>
                  <p>
                    53
                  </p>
                </td>
<td>
                  <p>
                    Win32, Visual C++ 8
                  </p>
                </td>
<td>
                  <p>
                    Peak=7.1 Mean=1.8
                  </p>
                  <p>
                    <a href="http://www.netlib.org/cephes/" target="_top">Cephes</a> Peak=5.1
                    Mean=1.3
                  </p>
                </td>
<td>
                  <p>
                    Peak=0.99 Mean=0.5
                  </p>
                  <p>
                    <a href="http://www.netlib.org/cephes/" target="_top">Cephes</a> Peak=3.1
                    Mean=1.1
                  </p>
                </td>
</tr>
<tr>
<td>
                  <p>
                    64
                  </p>
                </td>
<td>
                  <p>
                    RedHat Linux IA_EM64, gcc-4.1
                  </p>
                </td>
<td>
                  <p>
                    Peak=9.9 Mean=2.1
                  </p>
                </td>
<td>
                  <p>
                    Peak=0.97 Mean=0.4
                  </p>
                </td>
</tr>
<tr>
<td>
                  <p>
                    64
                  </p>
                </td>
<td>
                  <p>
                    Redhat Linux IA64, gcc-4.1
                  </p>
                </td>
<td>
                  <p>
                    Peak=9.9 Mean=2.1
                  </p>
                </td>
<td>
                  <p>
                    Peak=0.97 Mean=0.4
                  </p>
                </td>
</tr>
<tr>
<td>
                  <p>
                    113
                  </p>
                </td>
<td>
                  <p>
                    HPUX IA64, aCC A.06.06
                  </p>
                </td>
<td>
                  <p>
                    Peak=23.3 Mean=3.7
                  </p>
                </td>
<td>
                  <p>
                    Peak=1.6 Mean=0.5
                  </p>
                </td>
</tr>
</tbody>
</table></div>
</div>
<br class="table-break"><a name="math_toolkit.special.expint.expint_n.testing"></a><h5>
<a name="id1143038"></a>
          <a class="link" href="expint_n.html#math_toolkit.special.expint.expint_n.testing">Testing</a>
        </h5>
<p>
          The tests for these functions come in two parts: basic sanity checks use
          spot values calculated using <a href="http://functions.wolfram.com/webMathematica/FunctionEvaluation.jsp?name=ExpIntegralE" target="_top">Mathworld's
          online evaluator</a>, while accuracy checks use high-precision test
          values calculated at 1000-bit precision with <a href="http://shoup.net/ntl/doc/RR.txt" target="_top">NTL::RR</a>
          and this implementation. Note that the generic and type-specific versions
          of these functions use differing implementations internally, so this gives
          us reasonably independent test data. Using our test data to test other
          "known good" implementations also provides an additional sanity
          check.
        </p>
<a name="math_toolkit.special.expint.expint_n.implementation"></a><h5>
<a name="id1143065"></a>
          <a class="link" href="expint_n.html#math_toolkit.special.expint.expint_n.implementation">Implementation</a>
        </h5>
<p>
          The generic version of this function uses the continued fraction:
        </p>
<p>
          <span class="inlinemediaobject"><img src="../../../../equations/expint_n_3.png"></span>
        </p>
<p>
          for large <span class="emphasis"><em>x</em></span> and the infinite series:
        </p>
<p>
          <span class="inlinemediaobject"><img src="../../../../equations/expint_n_2.png"></span>
        </p>
<p>
          for small <span class="emphasis"><em>x</em></span>.
        </p>
<p>
          Where the precision of <span class="emphasis"><em>x</em></span> is known at compile time
          and is 113 bits or fewer in precision, then rational approximations <a class="link" href="../../backgrounders/implementation.html#math_toolkit.backgrounders.implementation.rational_approximations_used">devised
          by JM</a> are used for the <code class="computeroutput"><span class="identifier">n</span>
          <span class="special">==</span> <span class="number">1</span></code>
          case.
        </p>
<p>
          For <code class="computeroutput"><span class="identifier">x</span> <span class="special">&lt;</span>
          <span class="number">1</span></code> the approximating form is a minimax
          approximation:
        </p>
<p>
          <span class="inlinemediaobject"><img src="../../../../equations/expint_n_4.png"></span>
        </p>
<p>
          and for <code class="computeroutput"><span class="identifier">x</span> <span class="special">&gt;</span>
          <span class="number">1</span></code> a Chebyshev interpolated approximation
          of the form:
        </p>
<p>
          <span class="inlinemediaobject"><img src="../../../../equations/expint_n_5.png"></span>
        </p>
<p>
          is used.
        </p>
</div>
<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
<td align="left"></td>
<td align="right"><div class="copyright-footer">Copyright &#169; 2006 , 2007, 2008, 2009, 2010 John Maddock, Paul A. Bristow,
      Hubert Holin, Xiaogang Zhang, Bruno Lalande, Johan R&#229;de, Gautam Sewani and
      Thijs van den Berg<p>
        Distributed under the Boost Software License, Version 1.0. (See accompanying
        file LICENSE_1_0.txt or copy at <a href="http://www.boost.org/LICENSE_1_0.txt" target="_top">http://www.boost.org/LICENSE_1_0.txt</a>)
      </p>
</div></td>
</tr></table>
<hr>
<div class="spirit-nav">
<a accesskey="p" href="../expint.html"><img src="../../../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../expint.html"><img src="../../../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../../index.html"><img src="../../../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="expint_i.html"><img src="../../../../../../../../doc/src/images/next.png" alt="Next"></a>
</div>
</body>
</html>
