Update docs with error new graphs.
[CI SKIP]
|
Before Width: | Height: | Size: 22 KiB After Width: | Height: | Size: 21 KiB |
|
Before Width: | Height: | Size: 22 KiB After Width: | Height: | Size: 21 KiB |
|
Before Width: | Height: | Size: 24 KiB After Width: | Height: | Size: 21 KiB |
|
Before Width: | Height: | Size: 23 KiB After Width: | Height: | Size: 21 KiB |
|
Before Width: | Height: | Size: 24 KiB After Width: | Height: | Size: 26 KiB |
|
Before Width: | Height: | Size: 35 KiB After Width: | Height: | Size: 21 KiB |
|
Before Width: | Height: | Size: 22 KiB After Width: | Height: | Size: 28 KiB |
|
Before Width: | Height: | Size: 35 KiB After Width: | Height: | Size: 21 KiB |
|
Before Width: | Height: | Size: 25 KiB After Width: | Height: | Size: 25 KiB |
|
Before Width: | Height: | Size: 24 KiB After Width: | Height: | Size: 25 KiB |
|
Before Width: | Height: | Size: 23 KiB After Width: | Height: | Size: 21 KiB |
|
Before Width: | Height: | Size: 23 KiB After Width: | Height: | Size: 21 KiB |
|
Before Width: | Height: | Size: 23 KiB After Width: | Height: | Size: 21 KiB |
|
Before Width: | Height: | Size: 23 KiB After Width: | Height: | Size: 26 KiB |
|
Before Width: | Height: | Size: 24 KiB After Width: | Height: | Size: 21 KiB |
|
Before Width: | Height: | Size: 23 KiB After Width: | Height: | Size: 21 KiB |
|
Before Width: | Height: | Size: 23 KiB After Width: | Height: | Size: 25 KiB |
|
Before Width: | Height: | Size: 23 KiB After Width: | Height: | Size: 25 KiB |
|
Before Width: | Height: | Size: 24 KiB After Width: | Height: | Size: 26 KiB |
@@ -381,7 +381,7 @@ int main()
|
||||
plot_errors_1d(tgamma_func(), boost::multiprecision::float128(1e-200), boost::multiprecision::float128(150.0), 10000, "tgamma, __float128");
|
||||
plot_errors_1d(lgamma_func(), boost::multiprecision::float128(1e-200), boost::multiprecision::float128(1000.0), 10000, "lgamma, __float128");
|
||||
plot_errors_1d(trigamma_func(), boost::multiprecision::float128(1e-200), boost::multiprecision::float128(10.0), 10000, "trigamma, __float128");
|
||||
plot_errors_1d(erf_func(), -boost::multiprecision::float128(5.0), boost::multiprecision::float128(5.0), 10000, "erf, 80-bit __float128");
|
||||
plot_errors_1d(erf_func(), -boost::multiprecision::float128(5.0), boost::multiprecision::float128(5.0), 10000, "erf, __float128");
|
||||
plot_errors_1d(erfc_func(), -boost::multiprecision::float128(5.0), boost::multiprecision::float128(120.0), 10000, "erfc, __float128");
|
||||
plot_errors_1d(j0_func(), boost::multiprecision::float128(0.0), boost::multiprecision::float128(50.0), 10000, "j0, __float128", boost::multiprecision::float128(50.0));
|
||||
plot_errors_1d(j1_func(), boost::multiprecision::float128(0.0), boost::multiprecision::float128(50.0), 10000, "j1, __float128", boost::multiprecision::float128(50.0));
|
||||
|
||||
|
Before Width: | Height: | Size: 25 KiB After Width: | Height: | Size: 24 KiB |
|
Before Width: | Height: | Size: 24 KiB After Width: | Height: | Size: 23 KiB |
|
Before Width: | Height: | Size: 21 KiB After Width: | Height: | Size: 21 KiB |
|
Before Width: | Height: | Size: 23 KiB After Width: | Height: | Size: 21 KiB |
|
Before Width: | Height: | Size: 23 KiB After Width: | Height: | Size: 22 KiB |
@@ -122,7 +122,7 @@ This manual is also available in <a href="http://sourceforge.net/projects/boost/
|
||||
</div>
|
||||
</div>
|
||||
<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
|
||||
<td align="left"><p><small>Last revised: March 02, 2018 at 18:04:21 GMT</small></p></td>
|
||||
<td align="left"><p><small>Last revised: March 08, 2018 at 08:50:23 GMT</small></p></td>
|
||||
<td align="right"><div class="copyright-footer"></div></td>
|
||||
</tr></table>
|
||||
<hr>
|
||||
|
||||
@@ -24,7 +24,7 @@
|
||||
</div>
|
||||
<div class="section">
|
||||
<div class="titlepage"><div><div><h2 class="title" style="clear: both">
|
||||
<a name="id2312967"></a>Function Index</h2></div></div></div>
|
||||
<a name="id2307386"></a>Function Index</h2></div></div></div>
|
||||
<p><a class="link" href="s01.html#idx_id_0">1</a> <a class="link" href="s01.html#idx_id_1">2</a> <a class="link" href="s01.html#idx_id_2">4</a> <a class="link" href="s01.html#idx_id_3">A</a> <a class="link" href="s01.html#idx_id_4">B</a> <a class="link" href="s01.html#idx_id_5">C</a> <a class="link" href="s01.html#idx_id_6">D</a> <a class="link" href="s01.html#idx_id_7">E</a> <a class="link" href="s01.html#idx_id_8">F</a> <a class="link" href="s01.html#idx_id_9">G</a> <a class="link" href="s01.html#idx_id_10">H</a> <a class="link" href="s01.html#idx_id_11">I</a> <a class="link" href="s01.html#idx_id_12">J</a> <a class="link" href="s01.html#idx_id_13">K</a> <a class="link" href="s01.html#idx_id_14">L</a> <a class="link" href="s01.html#idx_id_15">M</a> <a class="link" href="s01.html#idx_id_16">N</a> <a class="link" href="s01.html#idx_id_17">O</a> <a class="link" href="s01.html#idx_id_18">P</a> <a class="link" href="s01.html#idx_id_19">Q</a> <a class="link" href="s01.html#idx_id_20">R</a> <a class="link" href="s01.html#idx_id_21">S</a> <a class="link" href="s01.html#idx_id_22">T</a> <a class="link" href="s01.html#idx_id_23">U</a> <a class="link" href="s01.html#idx_id_24">V</a> <a class="link" href="s01.html#idx_id_25">W</a> <a class="link" href="s01.html#idx_id_26">X</a> <a class="link" href="s01.html#idx_id_27">Y</a> <a class="link" href="s01.html#idx_id_28">Z</a></p>
|
||||
<div class="variablelist"><dl class="variablelist">
|
||||
<dt>
|
||||
|
||||
@@ -24,7 +24,7 @@
|
||||
</div>
|
||||
<div class="section">
|
||||
<div class="titlepage"><div><div><h2 class="title" style="clear: both">
|
||||
<a name="id2333475"></a>Class Index</h2></div></div></div>
|
||||
<a name="id2334829"></a>Class Index</h2></div></div></div>
|
||||
<p><a class="link" href="s02.html#idx_id_32">A</a> <a class="link" href="s02.html#idx_id_33">B</a> <a class="link" href="s02.html#idx_id_34">C</a> <a class="link" href="s02.html#idx_id_35">D</a> <a class="link" href="s02.html#idx_id_36">E</a> <a class="link" href="s02.html#idx_id_37">F</a> <a class="link" href="s02.html#idx_id_38">G</a> <a class="link" href="s02.html#idx_id_39">H</a> <a class="link" href="s02.html#idx_id_40">I</a> <a class="link" href="s02.html#idx_id_43">L</a> <a class="link" href="s02.html#idx_id_44">M</a> <a class="link" href="s02.html#idx_id_45">N</a> <a class="link" href="s02.html#idx_id_46">O</a> <a class="link" href="s02.html#idx_id_47">P</a> <a class="link" href="s02.html#idx_id_48">Q</a> <a class="link" href="s02.html#idx_id_49">R</a> <a class="link" href="s02.html#idx_id_50">S</a> <a class="link" href="s02.html#idx_id_51">T</a> <a class="link" href="s02.html#idx_id_52">U</a> <a class="link" href="s02.html#idx_id_54">W</a></p>
|
||||
<div class="variablelist"><dl class="variablelist">
|
||||
<dt>
|
||||
|
||||
@@ -24,7 +24,7 @@
|
||||
</div>
|
||||
<div class="section">
|
||||
<div class="titlepage"><div><div><h2 class="title" style="clear: both">
|
||||
<a name="id2337880"></a>Typedef Index</h2></div></div></div>
|
||||
<a name="id2333864"></a>Typedef Index</h2></div></div></div>
|
||||
<p><a class="link" href="s03.html#idx_id_61">A</a> <a class="link" href="s03.html#idx_id_62">B</a> <a class="link" href="s03.html#idx_id_63">C</a> <a class="link" href="s03.html#idx_id_64">D</a> <a class="link" href="s03.html#idx_id_65">E</a> <a class="link" href="s03.html#idx_id_66">F</a> <a class="link" href="s03.html#idx_id_67">G</a> <a class="link" href="s03.html#idx_id_68">H</a> <a class="link" href="s03.html#idx_id_69">I</a> <a class="link" href="s03.html#idx_id_72">L</a> <a class="link" href="s03.html#idx_id_74">N</a> <a class="link" href="s03.html#idx_id_75">O</a> <a class="link" href="s03.html#idx_id_76">P</a> <a class="link" href="s03.html#idx_id_78">R</a> <a class="link" href="s03.html#idx_id_79">S</a> <a class="link" href="s03.html#idx_id_80">T</a> <a class="link" href="s03.html#idx_id_81">U</a> <a class="link" href="s03.html#idx_id_82">V</a> <a class="link" href="s03.html#idx_id_83">W</a></p>
|
||||
<div class="variablelist"><dl class="variablelist">
|
||||
<dt>
|
||||
|
||||
@@ -24,7 +24,7 @@
|
||||
</div>
|
||||
<div class="section">
|
||||
<div class="titlepage"><div><div><h2 class="title" style="clear: both">
|
||||
<a name="id2341013"></a>Macro Index</h2></div></div></div>
|
||||
<a name="id2336617"></a>Macro Index</h2></div></div></div>
|
||||
<p><a class="link" href="s04.html#idx_id_91">B</a> <a class="link" href="s04.html#idx_id_95">F</a></p>
|
||||
<div class="variablelist"><dl class="variablelist">
|
||||
<dt>
|
||||
|
||||
@@ -23,7 +23,7 @@
|
||||
</div>
|
||||
<div class="section">
|
||||
<div class="titlepage"><div><div><h2 class="title" style="clear: both">
|
||||
<a name="id2340159"></a>Index</h2></div></div></div>
|
||||
<a name="id2341432"></a>Index</h2></div></div></div>
|
||||
<p><a class="link" href="s05.html#idx_id_116">1</a> <a class="link" href="s05.html#idx_id_117">2</a> <a class="link" href="s05.html#idx_id_118">4</a> <a class="link" href="s05.html#idx_id_119">A</a> <a class="link" href="s05.html#idx_id_120">B</a> <a class="link" href="s05.html#idx_id_121">C</a> <a class="link" href="s05.html#idx_id_122">D</a> <a class="link" href="s05.html#idx_id_123">E</a> <a class="link" href="s05.html#idx_id_124">F</a> <a class="link" href="s05.html#idx_id_125">G</a> <a class="link" href="s05.html#idx_id_126">H</a> <a class="link" href="s05.html#idx_id_127">I</a> <a class="link" href="s05.html#idx_id_128">J</a> <a class="link" href="s05.html#idx_id_129">K</a> <a class="link" href="s05.html#idx_id_130">L</a> <a class="link" href="s05.html#idx_id_131">M</a> <a class="link" href="s05.html#idx_id_132">N</a> <a class="link" href="s05.html#idx_id_133">O</a> <a class="link" href="s05.html#idx_id_134">P</a> <a class="link" href="s05.html#idx_id_135">Q</a> <a class="link" href="s05.html#idx_id_136">R</a> <a class="link" href="s05.html#idx_id_137">S</a> <a class="link" href="s05.html#idx_id_138">T</a> <a class="link" href="s05.html#idx_id_139">U</a> <a class="link" href="s05.html#idx_id_140">V</a> <a class="link" href="s05.html#idx_id_141">W</a> <a class="link" href="s05.html#idx_id_142">X</a> <a class="link" href="s05.html#idx_id_143">Y</a> <a class="link" href="s05.html#idx_id_144">Z</a></p>
|
||||
<div class="variablelist"><dl class="variablelist">
|
||||
<dt>
|
||||
|
||||
@@ -82,7 +82,10 @@
|
||||
<p>
|
||||
In general though, the relative error is low (less than 100 ε) for <span class="emphasis"><em>x
|
||||
> 0</em></span> while only the absolute error is low for <span class="emphasis"><em>x <
|
||||
0</em></span>.
|
||||
0</em></span> as the following error plot illustrates:
|
||||
</p>
|
||||
<p>
|
||||
<span class="inlinemediaobject"><img src="../../../graphs/ai__double.svg" align="middle"></span>
|
||||
</p>
|
||||
<h5>
|
||||
<a name="math_toolkit.airy.ai.h3"></a>
|
||||
|
||||
@@ -79,7 +79,10 @@
|
||||
<p>
|
||||
In general though, the relative error is low (less than 100 ε) for <span class="emphasis"><em>x
|
||||
> 0</em></span> while only the absolute error is low for <span class="emphasis"><em>x <
|
||||
0</em></span>.
|
||||
0</em></span> as the following error plot illustrates:
|
||||
</p>
|
||||
<p>
|
||||
<span class="inlinemediaobject"><img src="../../../graphs/ai_prime__double.svg" align="middle"></span>
|
||||
</p>
|
||||
<h5>
|
||||
<a name="math_toolkit.airy.aip.h3"></a>
|
||||
|
||||
@@ -78,7 +78,10 @@
|
||||
<p>
|
||||
In general though, the relative error is low (less than 100 ε) for <span class="emphasis"><em>x
|
||||
> 0</em></span> while only the absolute error is low for <span class="emphasis"><em>x <
|
||||
0</em></span>.
|
||||
0</em></span> as the following error plot illustrate:
|
||||
</p>
|
||||
<p>
|
||||
<span class="inlinemediaobject"><img src="../../../graphs/bi__double.svg" align="middle"></span>
|
||||
</p>
|
||||
<h5>
|
||||
<a name="math_toolkit.airy.bi.h3"></a>
|
||||
|
||||
@@ -79,7 +79,10 @@
|
||||
<p>
|
||||
In general though, the relative error is low (less than 100 ε) for <span class="emphasis"><em>x
|
||||
> 0</em></span> while only the absolute error is low for <span class="emphasis"><em>x <
|
||||
0</em></span>.
|
||||
0</em></span> as the following error plot illustrates:
|
||||
</p>
|
||||
<p>
|
||||
<span class="inlinemediaobject"><img src="../../../graphs/bi_prime__double.svg" align="middle"></span>
|
||||
</p>
|
||||
<h5>
|
||||
<a name="math_toolkit.airy.bip.h3"></a>
|
||||
|
||||
@@ -37,7 +37,7 @@
|
||||
<span class="keyword">class</span> <span class="identifier">barycentric_rational</span>
|
||||
<span class="special">{</span>
|
||||
<span class="keyword">public</span><span class="special">:</span>
|
||||
<span class="keyword">template</span> <span class="special"><</span><span class="keyword">class</span> <span class="identifier">InputIterator1</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">InputIterator2</span><span class="special">></span>
|
||||
<span class="keyword">template</span> <span class="special"><</span><span class="keyword">class</span> <span class="identifier">InputIterator1</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">InputIterator2</span><span class="special">></span>
|
||||
<span class="identifier">barycentric_rational</span><span class="special">(</span><span class="identifier">InputIterator1</span> <span class="identifier">start_x</span><span class="special">,</span> <span class="identifier">InputIterator1</span> <span class="identifier">end_x</span><span class="special">,</span> <span class="identifier">InputIterator2</span> <span class="identifier">start_y</span><span class="special">,</span> <span class="identifier">size_t</span> <span class="identifier">approximation_order</span> <span class="special">=</span> <span class="number">3</span><span class="special">);</span>
|
||||
<span class="identifier">barycentric_rational</span><span class="special">(</span><span class="keyword">const</span> <span class="identifier">Real</span><span class="special">*</span> <span class="keyword">const</span> <span class="identifier">x</span><span class="special">,</span> <span class="keyword">const</span> <span class="identifier">Real</span><span class="special">*</span> <span class="keyword">const</span> <span class="identifier">y</span><span class="special">,</span> <span class="identifier">size_t</span> <span class="identifier">n</span><span class="special">,</span> <span class="identifier">size_t</span> <span class="identifier">approximation_order</span> <span class="special">=</span> <span class="number">3</span><span class="special">);</span>
|
||||
|
||||
@@ -68,7 +68,7 @@
|
||||
This implicitly calls the constructor with approximation order 3, and hence
|
||||
the accuracy is 𝑶(h<sup>4</sup>). In general, if you require an approximation order <span class="emphasis"><em>d</em></span>,
|
||||
then the error is 𝑶(h<sup>d+1</sup>). A call to the constructor with an explicit approximation
|
||||
order could be
|
||||
order is demonstrated below
|
||||
</p>
|
||||
<pre class="programlisting"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">math</span><span class="special">::</span><span class="identifier">barycentric_rational</span><span class="special"><</span><span class="keyword">double</span><span class="special">></span> <span class="identifier">interpolant</span><span class="special">(</span><span class="identifier">x</span><span class="special">.</span><span class="identifier">data</span><span class="special">(),</span> <span class="identifier">y</span><span class="special">.</span><span class="identifier">data</span><span class="special">(),</span> <span class="identifier">y</span><span class="special">.</span><span class="identifier">size</span><span class="special">(),</span> <span class="number">5</span><span class="special">);</span>
|
||||
</pre>
|
||||
|
||||
@@ -1180,6 +1180,19 @@
|
||||
and the result checked against our test data: no errors in the test data
|
||||
were found.
|
||||
</p>
|
||||
<p>
|
||||
The following error plot are based on an exhaustive search of the functions
|
||||
domain for J0 and Y0, MSVC-15.5 at <code class="computeroutput"><span class="keyword">double</span></code>
|
||||
precision, other compilers and precisions are very similar - the plots simply
|
||||
illustrate the relatively large errors as you approach a zero, and the very
|
||||
low errors elsewhere.
|
||||
</p>
|
||||
<p>
|
||||
<span class="inlinemediaobject"><img src="../../../graphs/j0__double.svg" align="middle"></span>
|
||||
</p>
|
||||
<p>
|
||||
<span class="inlinemediaobject"><img src="../../../graphs/y0__double.svg" align="middle"></span>
|
||||
</p>
|
||||
<h5>
|
||||
<a name="math_toolkit.bessel.bessel_first.h4"></a>
|
||||
<span class="phrase"><a name="math_toolkit.bessel.bessel_first.implementation"></a></span><a class="link" href="bessel_first.html#math_toolkit.bessel.bessel_first.implementation">Implementation</a>
|
||||
|
||||
@@ -955,7 +955,49 @@
|
||||
</tbody>
|
||||
</table></div>
|
||||
</div>
|
||||
<br class="table-break"><h5>
|
||||
<br class="table-break"><p>
|
||||
The following error plot are based on an exhaustive search of the functions
|
||||
domain for I0, I1, K0, and K1, MSVC-15.5 at <code class="computeroutput"><span class="keyword">double</span></code>
|
||||
precision, and GCC-7.1/Ubuntu for <code class="computeroutput"><span class="keyword">long</span>
|
||||
<span class="keyword">double</span></code> and <code class="computeroutput"><span class="identifier">__float128</span></code>.
|
||||
</p>
|
||||
<p>
|
||||
<span class="inlinemediaobject"><img src="../../../graphs/i0__double.svg" align="middle"></span>
|
||||
</p>
|
||||
<p>
|
||||
<span class="inlinemediaobject"><img src="../../../graphs/i0__80_bit_long_double.svg" align="middle"></span>
|
||||
</p>
|
||||
<p>
|
||||
<span class="inlinemediaobject"><img src="../../../graphs/i0____float128.svg" align="middle"></span>
|
||||
</p>
|
||||
<p>
|
||||
<span class="inlinemediaobject"><img src="../../../graphs/i1__double.svg" align="middle"></span>
|
||||
</p>
|
||||
<p>
|
||||
<span class="inlinemediaobject"><img src="../../../graphs/i1__80_bit_long_double.svg" align="middle"></span>
|
||||
</p>
|
||||
<p>
|
||||
<span class="inlinemediaobject"><img src="../../../graphs/i1____float128.svg" align="middle"></span>
|
||||
</p>
|
||||
<p>
|
||||
<span class="inlinemediaobject"><img src="../../../graphs/k0__double.svg" align="middle"></span>
|
||||
</p>
|
||||
<p>
|
||||
<span class="inlinemediaobject"><img src="../../../graphs/k0__80_bit_long_double.svg" align="middle"></span>
|
||||
</p>
|
||||
<p>
|
||||
<span class="inlinemediaobject"><img src="../../../graphs/k0____float128.svg" align="middle"></span>
|
||||
</p>
|
||||
<p>
|
||||
<span class="inlinemediaobject"><img src="../../../graphs/k1__double.svg" align="middle"></span>
|
||||
</p>
|
||||
<p>
|
||||
<span class="inlinemediaobject"><img src="../../../graphs/k1__80_bit_long_double.svg" align="middle"></span>
|
||||
</p>
|
||||
<p>
|
||||
<span class="inlinemediaobject"><img src="../../../graphs/k1____float128.svg" align="middle"></span>
|
||||
</p>
|
||||
<h5>
|
||||
<a name="math_toolkit.bessel.mbessel.h4"></a>
|
||||
<span class="phrase"><a name="math_toolkit.bessel.mbessel.implementation"></a></span><a class="link" href="mbessel.html#math_toolkit.bessel.mbessel.implementation">Implementation</a>
|
||||
</h5>
|
||||
|
||||
@@ -27,7 +27,7 @@
|
||||
<a name="math_toolkit.conventions"></a><a class="link" href="conventions.html" title="Document Conventions">Document Conventions</a>
|
||||
</h2></div></div></div>
|
||||
<p>
|
||||
<a class="indexterm" name="id1446634"></a>
|
||||
<a class="indexterm" name="id1443465"></a>
|
||||
</p>
|
||||
<p>
|
||||
This documentation aims to use of the following naming and formatting conventions.
|
||||
|
||||
@@ -64,13 +64,13 @@
|
||||
of a function which is known at equally spaced points. The cubic B-spline interpolation
|
||||
is numerically stable as it uses compactly supported basis functions constructed
|
||||
via iterative convolution. This is to be contrasted to traditional cubic spline
|
||||
interpolation is ill-conditioned as the global support of cubic polynomials
|
||||
causes small changes far from the evaluation point exert a large influence
|
||||
interpolation which is ill-conditioned as the global support of cubic polynomials
|
||||
causes small changes far from the evaluation point to exert a large influence
|
||||
on the calculated value.
|
||||
</p>
|
||||
<p>
|
||||
There are many use cases for interpolating a function at equally spaced points.
|
||||
One particularly important example is solving ODE's whose coefficients depend
|
||||
One particularly important example is solving ODEs whose coefficients depend
|
||||
on data determined from experiment or numerical simulation. Since most ODE
|
||||
steppers are adaptive, they must be able to sample the coefficients at arbitrary
|
||||
points; not just at the points we know the values of our function.
|
||||
|
||||
@@ -221,7 +221,22 @@
|
||||
</tbody>
|
||||
</table></div>
|
||||
</div>
|
||||
<br class="table-break"><h5>
|
||||
<br class="table-break"><p>
|
||||
The following error plot are based on an exhaustive search of the functions
|
||||
domain, MSVC-15.5 at <code class="computeroutput"><span class="keyword">double</span></code>
|
||||
precision, and GCC-7.1/Ubuntu for <code class="computeroutput"><span class="keyword">long</span>
|
||||
<span class="keyword">double</span></code> and <code class="computeroutput"><span class="identifier">__float128</span></code>.
|
||||
</p>
|
||||
<p>
|
||||
<span class="inlinemediaobject"><img src="../../../graphs/elliptic_integral_k__double.svg" align="middle"></span>
|
||||
</p>
|
||||
<p>
|
||||
<span class="inlinemediaobject"><img src="../../../graphs/elliptic_integral_k__80_bit_long_double.svg" align="middle"></span>
|
||||
</p>
|
||||
<p>
|
||||
<span class="inlinemediaobject"><img src="../../../graphs/elliptic_integral_k____float128.svg" align="middle"></span>
|
||||
</p>
|
||||
<h5>
|
||||
<a name="math_toolkit.ellint.ellint_1.h3"></a>
|
||||
<span class="phrase"><a name="math_toolkit.ellint.ellint_1.testing"></a></span><a class="link" href="ellint_1.html#math_toolkit.ellint.ellint_1.testing">Testing</a>
|
||||
</h5>
|
||||
|
||||
@@ -222,7 +222,22 @@
|
||||
</tbody>
|
||||
</table></div>
|
||||
</div>
|
||||
<br class="table-break"><h5>
|
||||
<br class="table-break"><p>
|
||||
The following error plot are based on an exhaustive search of the functions
|
||||
domain, MSVC-15.5 at <code class="computeroutput"><span class="keyword">double</span></code>
|
||||
precision, and GCC-7.1/Ubuntu for <code class="computeroutput"><span class="keyword">long</span>
|
||||
<span class="keyword">double</span></code> and <code class="computeroutput"><span class="identifier">__float128</span></code>.
|
||||
</p>
|
||||
<p>
|
||||
<span class="inlinemediaobject"><img src="../../../graphs/elliptic_integral_e__double.svg" align="middle"></span>
|
||||
</p>
|
||||
<p>
|
||||
<span class="inlinemediaobject"><img src="../../../graphs/elliptic_integral_e__80_bit_long_double.svg" align="middle"></span>
|
||||
</p>
|
||||
<p>
|
||||
<span class="inlinemediaobject"><img src="../../../graphs/elliptic_integral_e____float128.svg" align="middle"></span>
|
||||
</p>
|
||||
<h5>
|
||||
<a name="math_toolkit.ellint.ellint_2.h3"></a>
|
||||
<span class="phrase"><a name="math_toolkit.ellint.ellint_2.testing"></a></span><a class="link" href="ellint_2.html#math_toolkit.ellint.ellint_2.testing">Testing</a>
|
||||
</h5>
|
||||
|
||||
@@ -302,7 +302,22 @@ is very large, in which case the usual trigonometric function argument-reduction
|
||||
</tbody>
|
||||
</table></div>
|
||||
</div>
|
||||
<br class="table-break"><h5>
|
||||
<br class="table-break"><p>
|
||||
The following error plot are based on an exhaustive search of the functions
|
||||
domain, MSVC-15.5 at <code class="computeroutput"><span class="keyword">double</span></code>
|
||||
precision, and GCC-7.1/Ubuntu for <code class="computeroutput"><span class="keyword">long</span>
|
||||
<span class="keyword">double</span></code> and <code class="computeroutput"><span class="identifier">__float128</span></code>.
|
||||
</p>
|
||||
<p>
|
||||
<span class="inlinemediaobject"><img src="../../../graphs/elliptic_integral_d__double.svg" align="middle"></span>
|
||||
</p>
|
||||
<p>
|
||||
<span class="inlinemediaobject"><img src="../../../graphs/elliptic_integral_d__80_bit_long_double.svg" align="middle"></span>
|
||||
</p>
|
||||
<p>
|
||||
<span class="inlinemediaobject"><img src="../../../graphs/elliptic_integral_d____float128.svg" align="middle"></span>
|
||||
</p>
|
||||
<h5>
|
||||
<a name="math_toolkit.ellint.ellint_d.h3"></a>
|
||||
<span class="phrase"><a name="math_toolkit.ellint.ellint_d.testing"></a></span><a class="link" href="ellint_d.html#math_toolkit.ellint.ellint_d.testing">Testing</a>
|
||||
</h5>
|
||||
|
||||
@@ -217,6 +217,21 @@
|
||||
SPECFUN along with this implementation increase their error rates very slightly
|
||||
over the range [4,6].
|
||||
</p>
|
||||
<p>
|
||||
The following error plot are based on an exhaustive search of the functions
|
||||
domain, MSVC-15.5 at <code class="computeroutput"><span class="keyword">double</span></code>
|
||||
precision, and GCC-7.1/Ubuntu for <code class="computeroutput"><span class="keyword">long</span>
|
||||
<span class="keyword">double</span></code> and <code class="computeroutput"><span class="identifier">__float128</span></code>.
|
||||
</p>
|
||||
<p>
|
||||
<span class="inlinemediaobject"><img src="../../../graphs/exponential_integral_ei__double.svg" align="middle"></span>
|
||||
</p>
|
||||
<p>
|
||||
<span class="inlinemediaobject"><img src="../../../graphs/exponential_integral_ei__80_bit_long_double.svg" align="middle"></span>
|
||||
</p>
|
||||
<p>
|
||||
<span class="inlinemediaobject"><img src="../../../graphs/exponential_integral_ei____float128.svg" align="middle"></span>
|
||||
</p>
|
||||
<h5>
|
||||
<a name="math_toolkit.expint.expint_i.h3"></a>
|
||||
<span class="phrase"><a name="math_toolkit.expint.expint_i.testing"></a></span><a class="link" href="expint_i.html#math_toolkit.expint.expint_i.testing">Testing</a>
|
||||
|
||||
@@ -41,7 +41,7 @@
|
||||
it is rarely done via numerical methods. Instead, transcendental and numerically
|
||||
defined functions are integrated via Gaussian quadrature, and the defining
|
||||
problem becomes how to estimate the remainder. Gaussian quadrature alone (without
|
||||
some form on interval splitting) cannot answer this question.
|
||||
some form of interval splitting) cannot answer this question.
|
||||
</p>
|
||||
<p>
|
||||
It is possible to compute a Gaussian quadrature of order <span class="emphasis"><em>n</em></span>
|
||||
@@ -64,10 +64,9 @@
|
||||
singularities, please refer to the <a class="link" href="double_exponential.html" title="Double-exponential quadrature">double-exponential
|
||||
integration schemes</a>.
|
||||
</p>
|
||||
<p>
|
||||
<code class="computeroutput"><span class="preprocessor">#include</span> <span class="special"><</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">math</span><span class="special">/</span><span class="identifier">quadrature</span><span class="special">/</span><span class="identifier">gauss_kronrod</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span></code>
|
||||
</p>
|
||||
<pre class="programlisting"><span class="keyword">template</span> <span class="special"><</span><span class="keyword">class</span> <span class="identifier">Real</span><span class="special">,</span> <span class="keyword">unsigned</span> <span class="identifier">N</span><span class="special">,</span> <span class="keyword">class</span> <a class="link" href="../policy.html" title="Chapter 18. Policies: Controlling Precision, Error Handling etc">Policy</a> <span class="special">=</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">math</span><span class="special">::</span><span class="identifier">policies</span><span class="special">::</span><span class="identifier">policy</span><span class="special"><></span> <span class="special">></span>
|
||||
<pre class="programlisting"><span class="preprocessor">#include</span> <span class="special"><</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">math</span><span class="special">/</span><span class="identifier">quadrature</span><span class="special">/</span><span class="identifier">gauss_kronrod</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span>
|
||||
|
||||
<span class="keyword">template</span> <span class="special"><</span><span class="keyword">class</span> <span class="identifier">Real</span><span class="special">,</span> <span class="keyword">unsigned</span> <span class="identifier">N</span><span class="special">,</span> <span class="keyword">class</span> <a class="link" href="../policy.html" title="Chapter 18. Policies: Controlling Precision, Error Handling etc">Policy</a> <span class="special">=</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">math</span><span class="special">::</span><span class="identifier">policies</span><span class="special">::</span><span class="identifier">policy</span><span class="special"><></span> <span class="special">></span>
|
||||
<span class="keyword">class</span> <span class="identifier">gauss_kronrod</span>
|
||||
<span class="special">{</span>
|
||||
<span class="keyword">static</span> <span class="keyword">const</span> <span class="identifier">RandomAccessContainer</span><span class="special">&</span> <span class="identifier">abscissa</span><span class="special">();</span>
|
||||
|
||||
@@ -27,7 +27,7 @@
|
||||
<a name="math_toolkit.navigation"></a><a class="link" href="navigation.html" title="Navigation">Navigation</a>
|
||||
</h2></div></div></div>
|
||||
<p>
|
||||
<a class="indexterm" name="id1446470"></a>
|
||||
<a class="indexterm" name="id1443356"></a>
|
||||
</p>
|
||||
<p>
|
||||
Boost.Math documentation is provided in both HTML and PDF formats.
|
||||
|
||||
@@ -382,7 +382,22 @@
|
||||
</tbody>
|
||||
</table></div>
|
||||
</div>
|
||||
<br class="table-break"><h5>
|
||||
<br class="table-break"><p>
|
||||
The following error plot are based on an exhaustive search of the functions
|
||||
domain, MSVC-15.5 at <code class="computeroutput"><span class="keyword">double</span></code>
|
||||
precision, and GCC-7.1/Ubuntu for <code class="computeroutput"><span class="keyword">long</span>
|
||||
<span class="keyword">double</span></code> and <code class="computeroutput"><span class="identifier">__float128</span></code>.
|
||||
</p>
|
||||
<p>
|
||||
<span class="inlinemediaobject"><img src="../../../graphs/erf__double.svg" align="middle"></span>
|
||||
</p>
|
||||
<p>
|
||||
<span class="inlinemediaobject"><img src="../../../graphs/erf__80_bit_long_double.svg" align="middle"></span>
|
||||
</p>
|
||||
<p>
|
||||
<span class="inlinemediaobject"><img src="../../../graphs/erf____float128.svg" align="middle"></span>
|
||||
</p>
|
||||
<h5>
|
||||
<a name="math_toolkit.sf_erf.error_function.h3"></a>
|
||||
<span class="phrase"><a name="math_toolkit.sf_erf.error_function.testing"></a></span><a class="link" href="error_function.html#math_toolkit.sf_erf.error_function.testing">Testing</a>
|
||||
</h5>
|
||||
|
||||
@@ -251,7 +251,22 @@
|
||||
</tbody>
|
||||
</table></div>
|
||||
</div>
|
||||
<br class="table-break"><h5>
|
||||
<br class="table-break"><p>
|
||||
The following error plot are based on an exhaustive search of the functions
|
||||
domain, MSVC-15.5 at <code class="computeroutput"><span class="keyword">double</span></code>
|
||||
precision, and GCC-7.1/Ubuntu for <code class="computeroutput"><span class="keyword">long</span>
|
||||
<span class="keyword">double</span></code> and <code class="computeroutput"><span class="identifier">__float128</span></code>.
|
||||
</p>
|
||||
<p>
|
||||
<span class="inlinemediaobject"><img src="../../../graphs/erfc__double.svg" align="middle"></span>
|
||||
</p>
|
||||
<p>
|
||||
<span class="inlinemediaobject"><img src="../../../graphs/erfc__80_bit_long_double.svg" align="middle"></span>
|
||||
</p>
|
||||
<p>
|
||||
<span class="inlinemediaobject"><img src="../../../graphs/erfc____float128.svg" align="middle"></span>
|
||||
</p>
|
||||
<h5>
|
||||
<a name="math_toolkit.sf_erf.error_inv.h3"></a>
|
||||
<span class="phrase"><a name="math_toolkit.sf_erf.error_inv.testing"></a></span><a class="link" href="error_inv.html#math_toolkit.sf_erf.error_inv.testing">Testing</a>
|
||||
</h5>
|
||||
|
||||
@@ -330,6 +330,21 @@
|
||||
relative errors very close to these can be arbitrarily large, although absolute
|
||||
error will remain very low.
|
||||
</p>
|
||||
<p>
|
||||
The following error plot are based on an exhaustive search of the functions
|
||||
domain, MSVC-15.5 at <code class="computeroutput"><span class="keyword">double</span></code>
|
||||
precision, and GCC-7.1/Ubuntu for <code class="computeroutput"><span class="keyword">long</span>
|
||||
<span class="keyword">double</span></code> and <code class="computeroutput"><span class="identifier">__float128</span></code>.
|
||||
</p>
|
||||
<p>
|
||||
<span class="inlinemediaobject"><img src="../../../graphs/digamma__double.svg" align="middle"></span>
|
||||
</p>
|
||||
<p>
|
||||
<span class="inlinemediaobject"><img src="../../../graphs/digamma__80_bit_long_double.svg" align="middle"></span>
|
||||
</p>
|
||||
<p>
|
||||
<span class="inlinemediaobject"><img src="../../../graphs/digamma____float128.svg" align="middle"></span>
|
||||
</p>
|
||||
<h5>
|
||||
<a name="math_toolkit.sf_gamma.digamma.h3"></a>
|
||||
<span class="phrase"><a name="math_toolkit.sf_gamma.digamma.testing"></a></span><a class="link" href="digamma.html#math_toolkit.sf_gamma.digamma.testing">Testing</a>
|
||||
|
||||
@@ -347,7 +347,22 @@
|
||||
</tbody>
|
||||
</table></div>
|
||||
</div>
|
||||
<br class="table-break"><h5>
|
||||
<br class="table-break"><p>
|
||||
The following error plot are based on an exhaustive search of the functions
|
||||
domain, MSVC-15.5 at <code class="computeroutput"><span class="keyword">double</span></code>
|
||||
precision, and GCC-7.1/Ubuntu for <code class="computeroutput"><span class="keyword">long</span>
|
||||
<span class="keyword">double</span></code> and <code class="computeroutput"><span class="identifier">__float128</span></code>.
|
||||
</p>
|
||||
<p>
|
||||
<span class="inlinemediaobject"><img src="../../../graphs/lgamma__double.svg" align="middle"></span>
|
||||
</p>
|
||||
<p>
|
||||
<span class="inlinemediaobject"><img src="../../../graphs/lgamma__80_bit_long_double.svg" align="middle"></span>
|
||||
</p>
|
||||
<p>
|
||||
<span class="inlinemediaobject"><img src="../../../graphs/lgamma____float128.svg" align="middle"></span>
|
||||
</p>
|
||||
<h5>
|
||||
<a name="math_toolkit.sf_gamma.lgamma.h3"></a>
|
||||
<span class="phrase"><a name="math_toolkit.sf_gamma.lgamma.testing"></a></span><a class="link" href="lgamma.html#math_toolkit.sf_gamma.lgamma.testing">Testing</a>
|
||||
</h5>
|
||||
|
||||
@@ -430,7 +430,22 @@
|
||||
</tr></tbody>
|
||||
</table></div>
|
||||
</div>
|
||||
<br class="table-break"><h5>
|
||||
<br class="table-break"><p>
|
||||
The following error plot are based on an exhaustive search of the functions
|
||||
domain, MSVC-15.5 at <code class="computeroutput"><span class="keyword">double</span></code>
|
||||
precision, and GCC-7.1/Ubuntu for <code class="computeroutput"><span class="keyword">long</span>
|
||||
<span class="keyword">double</span></code> and <code class="computeroutput"><span class="identifier">__float128</span></code>.
|
||||
</p>
|
||||
<p>
|
||||
<span class="inlinemediaobject"><img src="../../../graphs/tgamma__double.svg" align="middle"></span>
|
||||
</p>
|
||||
<p>
|
||||
<span class="inlinemediaobject"><img src="../../../graphs/tgamma__80_bit_long_double.svg" align="middle"></span>
|
||||
</p>
|
||||
<p>
|
||||
<span class="inlinemediaobject"><img src="../../../graphs/tgamma____float128.svg" align="middle"></span>
|
||||
</p>
|
||||
<h5>
|
||||
<a name="math_toolkit.sf_gamma.tgamma.h3"></a>
|
||||
<span class="phrase"><a name="math_toolkit.sf_gamma.tgamma.testing"></a></span><a class="link" href="tgamma.html#math_toolkit.sf_gamma.tgamma.testing">Testing</a>
|
||||
</h5>
|
||||
|
||||
@@ -145,6 +145,21 @@
|
||||
As shown above, error rates are generally very low for built in types. For
|
||||
multiprecision types, error rates are typically in the order of a few epsilon.
|
||||
</p>
|
||||
<p>
|
||||
The following error plot are based on an exhaustive search of the functions
|
||||
domain, MSVC-15.5 at <code class="computeroutput"><span class="keyword">double</span></code>
|
||||
precision, and GCC-7.1/Ubuntu for <code class="computeroutput"><span class="keyword">long</span>
|
||||
<span class="keyword">double</span></code> and <code class="computeroutput"><span class="identifier">__float128</span></code>.
|
||||
</p>
|
||||
<p>
|
||||
<span class="inlinemediaobject"><img src="../../../graphs/trigamma__double.svg" align="middle"></span>
|
||||
</p>
|
||||
<p>
|
||||
<span class="inlinemediaobject"><img src="../../../graphs/trigamma__80_bit_long_double.svg" align="middle"></span>
|
||||
</p>
|
||||
<p>
|
||||
<span class="inlinemediaobject"><img src="../../../graphs/trigamma____float128.svg" align="middle"></span>
|
||||
</p>
|
||||
<h5>
|
||||
<a name="math_toolkit.sf_gamma.trigamma.h3"></a>
|
||||
<span class="phrase"><a name="math_toolkit.sf_gamma.trigamma.testing"></a></span><a class="link" href="trigamma.html#math_toolkit.sf_gamma.trigamma.testing">Testing</a>
|
||||
|
||||
@@ -283,7 +283,22 @@
|
||||
</tbody>
|
||||
</table></div>
|
||||
</div>
|
||||
<br class="table-break"><h5>
|
||||
<br class="table-break"><p>
|
||||
The following error plot are based on an exhaustive search of the functions
|
||||
domain, MSVC-15.5 at <code class="computeroutput"><span class="keyword">double</span></code>
|
||||
precision, and GCC-7.1/Ubuntu for <code class="computeroutput"><span class="keyword">long</span>
|
||||
<span class="keyword">double</span></code> and <code class="computeroutput"><span class="identifier">__float128</span></code>.
|
||||
</p>
|
||||
<p>
|
||||
<span class="inlinemediaobject"><img src="../../../graphs/zeta__double.svg" align="middle"></span>
|
||||
</p>
|
||||
<p>
|
||||
<span class="inlinemediaobject"><img src="../../../graphs/zeta__80_bit_long_double.svg" align="middle"></span>
|
||||
</p>
|
||||
<p>
|
||||
<span class="inlinemediaobject"><img src="../../../graphs/zeta____float128.svg" align="middle"></span>
|
||||
</p>
|
||||
<h5>
|
||||
<a name="math_toolkit.zetas.zeta.h3"></a>
|
||||
<span class="phrase"><a name="math_toolkit.zetas.zeta.testing"></a></span><a class="link" href="zeta.html#math_toolkit.zetas.zeta.testing">Testing</a>
|
||||
</h5>
|
||||
|
||||
@@ -49,7 +49,9 @@ This function is implemented entirely in terms of the Bessel functions
|
||||
__cyl_bessel_j and __cyl_bessel_k - refer to those functions for detailed accuracy information.
|
||||
|
||||
In general though, the relative error is low (less than 100 [epsilon]) for /x > 0/ while
|
||||
only the absolute error is low for /x < 0/.
|
||||
only the absolute error is low for /x < 0/ as the following error plot illustrates:
|
||||
|
||||
[graph ai__double]
|
||||
|
||||
[heading Testing]
|
||||
|
||||
@@ -101,7 +103,9 @@ This function is implemented entirely in terms of the Bessel functions
|
||||
__cyl_bessel_i and __cyl_bessel_j - refer to those functions for detailed accuracy information.
|
||||
|
||||
In general though, the relative error is low (less than 100 [epsilon]) for /x > 0/ while
|
||||
only the absolute error is low for /x < 0/.
|
||||
only the absolute error is low for /x < 0/ as the following error plot illustrate:
|
||||
|
||||
[graph bi__double]
|
||||
|
||||
[heading Testing]
|
||||
|
||||
@@ -153,7 +157,9 @@ This function is implemented entirely in terms of the Bessel functions
|
||||
__cyl_bessel_j and __cyl_bessel_k - refer to those functions for detailed accuracy information.
|
||||
|
||||
In general though, the relative error is low (less than 100 [epsilon]) for /x > 0/ while
|
||||
only the absolute error is low for /x < 0/.
|
||||
only the absolute error is low for /x < 0/ as the following error plot illustrates:
|
||||
|
||||
[graph ai_prime__double]
|
||||
|
||||
[heading Testing]
|
||||
|
||||
@@ -205,7 +211,9 @@ This function is implemented entirely in terms of the Bessel functions
|
||||
__cyl_bessel_i and __cyl_bessel_j - refer to those functions for detailed accuracy information.
|
||||
|
||||
In general though, the relative error is low (less than 100 [epsilon]) for /x > 0/ while
|
||||
only the absolute error is low for /x < 0/.
|
||||
only the absolute error is low for /x < 0/ as the following error plot illustrates:
|
||||
|
||||
[graph bi_prime__double]
|
||||
|
||||
[heading Testing]
|
||||
|
||||
|
||||
@@ -78,6 +78,35 @@ problem cases in other libraries:
|
||||
|
||||
[table_cyl_bessel_k]
|
||||
|
||||
The following error plot are based on an exhaustive search of the functions domain for I0, I1, K0, and K1,
|
||||
MSVC-15.5 at `double` precision, and GCC-7.1/Ubuntu for `long double` and `__float128`.
|
||||
|
||||
|
||||
[graph i0__double]
|
||||
|
||||
[graph i0__80_bit_long_double]
|
||||
|
||||
[graph i0____float128]
|
||||
|
||||
[graph i1__double]
|
||||
|
||||
[graph i1__80_bit_long_double]
|
||||
|
||||
[graph i1____float128]
|
||||
|
||||
[graph k0__double]
|
||||
|
||||
[graph k0__80_bit_long_double]
|
||||
|
||||
[graph k0____float128]
|
||||
|
||||
[graph k1__double]
|
||||
|
||||
[graph k1__80_bit_long_double]
|
||||
|
||||
[graph k1____float128]
|
||||
|
||||
|
||||
[h4 Implementation]
|
||||
|
||||
The following are handled as special cases first:
|
||||
|
||||
@@ -99,6 +99,15 @@ by way of double-checking these results, the worst performing __cephes and GSL c
|
||||
were recomputed using [@http://functions.wolfram.com functions.wolfram.com],
|
||||
and the result checked against our test data: no errors in the test data were found.
|
||||
|
||||
The following error plot are based on an exhaustive search of the functions domain for J0 and Y0,
|
||||
MSVC-15.5 at `double` precision, other compilers and precisions are very similar - the plots simply
|
||||
illustrate the relatively large errors as you approach a zero, and the very low errors elsewhere.
|
||||
|
||||
[graph j0__double]
|
||||
|
||||
[graph y0__double]
|
||||
|
||||
|
||||
[h4 Implementation]
|
||||
|
||||
The implementation is mostly about filtering off various special cases:
|
||||
|
||||
@@ -44,6 +44,15 @@ For negative arguments there are an infinite number of irrational roots:
|
||||
relative errors very close to these can be arbitrarily large, although
|
||||
absolute error will remain very low.
|
||||
|
||||
The following error plot are based on an exhaustive search of the functions domain, MSVC-15.5 at `double` precision,
|
||||
and GCC-7.1/Ubuntu for `long double` and `__float128`.
|
||||
|
||||
[graph digamma__double]
|
||||
|
||||
[graph digamma__80_bit_long_double]
|
||||
|
||||
[graph digamma____float128]
|
||||
|
||||
[h4 Testing]
|
||||
|
||||
There are two sets of tests: spot values are computed using
|
||||
|
||||
@@ -79,6 +79,15 @@ are relative errors in units of epsilon.
|
||||
|
||||
[table_ellint_1]
|
||||
|
||||
The following error plot are based on an exhaustive search of the functions domain, MSVC-15.5 at `double` precision,
|
||||
and GCC-7.1/Ubuntu for `long double` and `__float128`.
|
||||
|
||||
[graph elliptic_integral_k__double]
|
||||
|
||||
[graph elliptic_integral_k__80_bit_long_double]
|
||||
|
||||
[graph elliptic_integral_k____float128]
|
||||
|
||||
[heading Testing]
|
||||
|
||||
The tests use a mixture of spot test values calculated using the online
|
||||
@@ -173,6 +182,15 @@ are relative errors in units of epsilon.
|
||||
|
||||
[table_ellint_2]
|
||||
|
||||
The following error plot are based on an exhaustive search of the functions domain, MSVC-15.5 at `double` precision,
|
||||
and GCC-7.1/Ubuntu for `long double` and `__float128`.
|
||||
|
||||
[graph elliptic_integral_e__double]
|
||||
|
||||
[graph elliptic_integral_e__80_bit_long_double]
|
||||
|
||||
[graph elliptic_integral_e____float128]
|
||||
|
||||
[heading Testing]
|
||||
|
||||
The tests use a mixture of spot test values calculated using the online
|
||||
@@ -392,6 +410,17 @@ is very large, in which case the usual trigonometric function argument-reduction
|
||||
|
||||
[table_ellint_d]
|
||||
|
||||
The following error plot are based on an exhaustive search of the functions domain, MSVC-15.5 at `double` precision,
|
||||
and GCC-7.1/Ubuntu for `long double` and `__float128`.
|
||||
|
||||
[graph elliptic_integral_d__double]
|
||||
|
||||
[graph elliptic_integral_d__80_bit_long_double]
|
||||
|
||||
[graph elliptic_integral_d____float128]
|
||||
|
||||
|
||||
|
||||
[heading Testing]
|
||||
|
||||
The tests use a mixture of spot test values calculated using
|
||||
|
||||
@@ -66,6 +66,15 @@ than the one shown will have __zero_error.
|
||||
|
||||
[table_erfc]
|
||||
|
||||
The following error plot are based on an exhaustive search of the functions domain, MSVC-15.5 at `double` precision,
|
||||
and GCC-7.1/Ubuntu for `long double` and `__float128`.
|
||||
|
||||
[graph erf__double]
|
||||
|
||||
[graph erf__80_bit_long_double]
|
||||
|
||||
[graph erf____float128]
|
||||
|
||||
[h4 Testing]
|
||||
|
||||
The tests for these functions come in two parts:
|
||||
|
||||
@@ -66,6 +66,15 @@ functions have the same accuracy as the
|
||||
|
||||
[table_erfc_inv]
|
||||
|
||||
The following error plot are based on an exhaustive search of the functions domain, MSVC-15.5 at `double` precision,
|
||||
and GCC-7.1/Ubuntu for `long double` and `__float128`.
|
||||
|
||||
[graph erfc__double]
|
||||
|
||||
[graph erfc__80_bit_long_double]
|
||||
|
||||
[graph erfc____float128]
|
||||
|
||||
[h4 Testing]
|
||||
|
||||
There are two sets of tests:
|
||||
|
||||
@@ -144,6 +144,17 @@ GSL has the greatest difficulty near the positive root of En, while
|
||||
Cody's SPECFUN along with this implementation increase their
|
||||
error rates very slightly over the range \[4,6\].
|
||||
|
||||
The following error plot are based on an exhaustive search of the functions domain, MSVC-15.5 at `double` precision,
|
||||
and GCC-7.1/Ubuntu for `long double` and `__float128`.
|
||||
|
||||
[graph exponential_integral_ei__double]
|
||||
|
||||
[graph exponential_integral_ei__80_bit_long_double]
|
||||
|
||||
[graph exponential_integral_ei____float128]
|
||||
|
||||
|
||||
|
||||
[h4 Testing]
|
||||
|
||||
The tests for these functions come in two parts:
|
||||
|
||||
@@ -62,6 +62,15 @@ a low absolute error can be guaranteed.
|
||||
|
||||
[table_lgamma]
|
||||
|
||||
The following error plot are based on an exhaustive search of the functions domain, MSVC-15.5 at `double` precision,
|
||||
and GCC-7.1/Ubuntu for `long double` and `__float128`.
|
||||
|
||||
[graph lgamma__double]
|
||||
|
||||
[graph lgamma__80_bit_long_double]
|
||||
|
||||
[graph lgamma____float128]
|
||||
|
||||
[h4 Testing]
|
||||
|
||||
The main tests for this function involve comparisons against the logs of
|
||||
|
||||
@@ -79,6 +79,16 @@ than the one shown will have __zero_error.
|
||||
|
||||
[table_tgamma1pm1]
|
||||
|
||||
The following error plot are based on an exhaustive search of the functions domain, MSVC-15.5 at `double` precision,
|
||||
and GCC-7.1/Ubuntu for `long double` and `__float128`.
|
||||
|
||||
[graph tgamma__double]
|
||||
|
||||
[graph tgamma__80_bit_long_double]
|
||||
|
||||
[graph tgamma____float128]
|
||||
|
||||
|
||||
[h4 Testing]
|
||||
|
||||
The gamma is relatively easy to test: factorials and half-integer factorials
|
||||
|
||||
@@ -43,6 +43,15 @@ As shown above, error rates are generally very low for built in types.
|
||||
For multiprecision types, error rates are typically in the order of a
|
||||
few epsilon.
|
||||
|
||||
The following error plot are based on an exhaustive search of the functions domain, MSVC-15.5 at `double` precision,
|
||||
and GCC-7.1/Ubuntu for `long double` and `__float128`.
|
||||
|
||||
[graph trigamma__double]
|
||||
|
||||
[graph trigamma__80_bit_long_double]
|
||||
|
||||
[graph trigamma____float128]
|
||||
|
||||
[h4 Testing]
|
||||
|
||||
Testing is against Mathematica generated spot values to 35 digit precision.
|
||||
|
||||
@@ -48,6 +48,15 @@ than the one shown will have __zero_error.
|
||||
|
||||
[table_zeta]
|
||||
|
||||
The following error plot are based on an exhaustive search of the functions domain, MSVC-15.5 at `double` precision,
|
||||
and GCC-7.1/Ubuntu for `long double` and `__float128`.
|
||||
|
||||
[graph zeta__double]
|
||||
|
||||
[graph zeta__80_bit_long_double]
|
||||
|
||||
[graph zeta____float128]
|
||||
|
||||
[h4 Testing]
|
||||
|
||||
The tests for these functions come in two parts:
|
||||
|
||||