diff options
Diffstat (limited to 'libs/math/doc/sf_and_dist/html/math_toolkit/perf')
7 files changed, 4929 insertions, 0 deletions
diff --git a/libs/math/doc/sf_and_dist/html/math_toolkit/perf/comp_compilers.html b/libs/math/doc/sf_and_dist/html/math_toolkit/perf/comp_compilers.html new file mode 100644 index 0000000000..cc2a322533 --- /dev/null +++ b/libs/math/doc/sf_and_dist/html/math_toolkit/perf/comp_compilers.html @@ -0,0 +1,377 @@ +<html> +<head> +<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII"> +<title>Comparing Compilers</title> +<link rel="stylesheet" href="../../../../../../../doc/src/boostbook.css" type="text/css"> +<meta name="generator" content="DocBook XSL Stylesheets V1.76.1"> +<link rel="home" href="../../index.html" title="Math Toolkit"> +<link rel="up" href="../perf.html" title="Performance"> +<link rel="prev" href="getting_best.html" title="Getting the Best Performance from this Library"> +<link rel="next" href="tuning.html" title="Performance Tuning Macros"> +</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="getting_best.html"><img src="../../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../perf.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="tuning.html"><img src="../../../../../../../doc/src/images/next.png" alt="Next"></a> +</div> +<div class="section math_toolkit_perf_comp_compilers"> +<div class="titlepage"><div><div><h3 class="title"> +<a name="math_toolkit.perf.comp_compilers"></a><a class="link" href="comp_compilers.html" title="Comparing Compilers">Comparing Compilers</a> +</h3></div></div></div> +<p> + After a good choice of build settings the next most important thing you can + do, is choose your compiler - and the standard C library it sits on top of + - very carefully. GCC-3.x in particular has been found to be particularly + bad at inlining code, and performing the kinds of high level transformations + that good C++ performance demands (thankfully GCC-4.x is somewhat better + in this respect). + </p> +<div class="table"> +<a name="math_toolkit.perf.comp_compilers.performance_comparison_of_various_windows_compilers"></a><p class="title"><b>Table 52. Performance Comparison of Various Windows Compilers</b></p> +<div class="table-contents"><table class="table" summary="Performance Comparison of Various Windows Compilers"> +<colgroup> +<col> +<col> +<col> +<col> +</colgroup> +<thead><tr> +<th> + <p> + Function + </p> + </th> +<th> + <p> + Intel C++ 10.0 + </p> + <p> + ( /Ox /Qipo /QxN ) + </p> + </th> +<th> + <p> + Microsoft Visual C++ 8.0 + </p> + <p> + ( /Ox /arch:SSE2 ) + </p> + </th> +<th> + <p> + Cygwin G++ 3.4 + </p> + <p> + ( /O3 ) + </p> + </th> +</tr></thead> +<tbody> +<tr> +<td> + <p> + <a class="link" href="../special/sf_erf/error_function.html" title="Error Functions">erf</a> + </p> + </td> +<td> + <p> + </p> +<p><span class="bold"><strong>1.00</strong></span></p> +<p> </p> +<p>(4.118e-008s)</p> +<p> + </p> + </td> +<td> + <p> + </p> +<p><span class="bold"><strong>1.00</strong></span></p> +<p> </p> +<p>(1.483e-007s)</p> +<p> + </p> + </td> +<td> + <p> + </p> +<p>3.24</p> +<p> </p> +<p>(1.336e-007s)</p> +<p> + </p> + </td> +</tr> +<tr> +<td> + <p> + <a class="link" href="../special/sf_erf/error_inv.html" title="Error Function Inverses">erf_inv</a> + </p> + </td> +<td> + <p> + </p> +<p><span class="bold"><strong>1.00</strong></span></p> +<p> </p> +<p>(4.439e-008s)</p> +<p> + </p> + </td> +<td> + <p> + </p> +<p><span class="bold"><strong>1.00</strong></span></p> +<p> </p> +<p>(4.888e-007s)</p> +<p> + </p> + </td> +<td> + <p> + </p> +<p>7.88</p> +<p> </p> +<p>(3.500e-007s)</p> +<p> + </p> + </td> +</tr> +<tr> +<td> + <p> + <a class="link" href="../special/sf_beta/ibeta_function.html" title="Incomplete Beta Functions">ibeta</a> + and <a class="link" href="../special/sf_beta/ibeta_function.html" title="Incomplete Beta Functions">ibetac</a> + </p> + </td> +<td> + <p> + </p> +<p><span class="bold"><strong>1.00</strong></span></p> +<p> </p> +<p>(1.631e-006s)</p> +<p> + </p> + </td> +<td> + <p> + </p> +<p>1.14</p> +<p> </p> +<p>(1.852e-006s)</p> +<p> + </p> + </td> +<td> + <p> + </p> +<p>3.05</p> +<p> </p> +<p>(4.975e-006s)</p> +<p> + </p> + </td> +</tr> +<tr> +<td> + <p> + <a class="link" href="../special/sf_beta/ibeta_inv_function.html" title="The Incomplete Beta Function Inverses">ibeta_inv</a> + and <a class="link" href="../special/sf_beta/ibeta_inv_function.html" title="The Incomplete Beta Function Inverses">ibetac_inv</a> + </p> + </td> +<td> + <p> + </p> +<p><span class="bold"><strong>1.00</strong></span></p> +<p> </p> +<p>(6.133e-006s)</p> +<p> + </p> + </td> +<td> + <p> + </p> +<p>1.19</p> +<p> </p> +<p>(7.311e-006s)</p> +<p> + </p> + </td> +<td> + <p> + </p> +<p>2.60</p> +<p> </p> +<p>(1.597e-005s)</p> +<p> + </p> + </td> +</tr> +<tr> +<td> + <p> + <a class="link" href="../special/sf_beta/ibeta_inv_function.html" title="The Incomplete Beta Function Inverses">ibeta_inva</a>, + <a class="link" href="../special/sf_beta/ibeta_inv_function.html" title="The Incomplete Beta Function Inverses">ibetac_inva</a>, + <a class="link" href="../special/sf_beta/ibeta_inv_function.html" title="The Incomplete Beta Function Inverses">ibeta_invb</a> + and <a class="link" href="../special/sf_beta/ibeta_inv_function.html" title="The Incomplete Beta Function Inverses">ibetac_invb</a> + </p> + </td> +<td> + <p> + </p> +<p><span class="bold"><strong>1.00</strong></span></p> +<p> </p> +<p>(2.453e-005s)</p> +<p> + </p> + </td> +<td> + <p> + </p> +<p>1.16</p> +<p> </p> +<p>(2.847e-005s)</p> +<p> + </p> + </td> +<td> + <p> + </p> +<p>2.83</p> +<p> </p> +<p>(6.947e-005s)</p> +<p> + </p> + </td> +</tr> +<tr> +<td> + <p> + <a class="link" href="../special/sf_gamma/igamma.html" title="Incomplete Gamma Functions">gamma_p</a> + and <a class="link" href="../special/sf_gamma/igamma.html" title="Incomplete Gamma Functions">gamma_q</a> + </p> + </td> +<td> + <p> + </p> +<p><span class="bold"><strong>1.00</strong></span></p> +<p> </p> +<p>(6.735e-007s)</p> +<p> + </p> + </td> +<td> + <p> + </p> +<p>1.41</p> +<p> </p> +<p>(9.504e-007s)</p> +<p> + </p> + </td> +<td> + <p> + </p> +<p>2.78</p> +<p> </p> +<p>(1.872e-006s)</p> +<p> + </p> + </td> +</tr> +<tr> +<td> + <p> + <a class="link" href="../special/sf_gamma/igamma_inv.html" title="Incomplete Gamma Function Inverses">gamma_p_inv</a> + and <a class="link" href="../special/sf_gamma/igamma_inv.html" title="Incomplete Gamma Function Inverses">gamma_q_inv</a> + </p> + </td> +<td> + <p> + </p> +<p><span class="bold"><strong>1.00</strong></span></p> +<p> </p> +<p>(2.637e-006s)</p> +<p> + </p> + </td> +<td> + <p> + </p> +<p>1.38</p> +<p> </p> +<p>(3.631e-006s)</p> +<p> + </p> + </td> +<td> + <p> + </p> +<p>3.31</p> +<p> </p> +<p>(8.736e-006s)</p> +<p> + </p> + </td> +</tr> +<tr> +<td> + <p> + <a class="link" href="../special/sf_gamma/igamma_inv.html" title="Incomplete Gamma Function Inverses">gamma_p_inva</a> + and <a class="link" href="../special/sf_gamma/igamma_inv.html" title="Incomplete Gamma Function Inverses">gamma_q_inva</a> + </p> + </td> +<td> + <p> + </p> +<p><span class="bold"><strong>1.00</strong></span></p> +<p> </p> +<p>(7.716e-006s)</p> +<p> + </p> + </td> +<td> + <p> + </p> +<p>1.29</p> +<p> </p> +<p>(9.982e-006s)</p> +<p> + </p> + </td> +<td> + <p> + </p> +<p>2.56</p> +<p> </p> +<p>(1.974e-005s)</p> +<p> + </p> + </td> +</tr> +</tbody> +</table></div> +</div> +<br class="table-break"> +</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 © 2006-2010 John Maddock, Paul A. Bristow, Hubert Holin, Xiaogang Zhang, Bruno + Lalande, Johan Rå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="getting_best.html"><img src="../../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../perf.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="tuning.html"><img src="../../../../../../../doc/src/images/next.png" alt="Next"></a> +</div> +</body> +</html> diff --git a/libs/math/doc/sf_and_dist/html/math_toolkit/perf/comparisons.html b/libs/math/doc/sf_and_dist/html/math_toolkit/perf/comparisons.html new file mode 100644 index 0000000000..dba9bf956f --- /dev/null +++ b/libs/math/doc/sf_and_dist/html/math_toolkit/perf/comparisons.html @@ -0,0 +1,3132 @@ +<html> +<head> +<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII"> +<title>Comparisons to Other Open Source Libraries</title> +<link rel="stylesheet" href="../../../../../../../doc/src/boostbook.css" type="text/css"> +<meta name="generator" content="DocBook XSL Stylesheets V1.76.1"> +<link rel="home" href="../../index.html" title="Math Toolkit"> +<link rel="up" href="../perf.html" title="Performance"> +<link rel="prev" href="tuning.html" title="Performance Tuning Macros"> +<link rel="next" href="perf_test_app.html" title="The Performance Test Application"> +</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="tuning.html"><img src="../../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../perf.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="perf_test_app.html"><img src="../../../../../../../doc/src/images/next.png" alt="Next"></a> +</div> +<div class="section math_toolkit_perf_comparisons"> +<div class="titlepage"><div><div><h3 class="title"> +<a name="math_toolkit.perf.comparisons"></a><a class="link" href="comparisons.html" title="Comparisons to Other Open Source Libraries">Comparisons to Other Open + Source Libraries</a> +</h3></div></div></div> +<p> + We've run our performance tests both for our own code, and against other + open source implementations of the same functions. The results are presented + below to give you a rough idea of how they all compare. + </p> +<div class="caution"><table border="0" summary="Caution"> +<tr> +<td rowspan="2" align="center" valign="top" width="25"><img alt="[Caution]" src="../../../../../../../doc/src/images/caution.png"></td> +<th align="left">Caution</th> +</tr> +<tr><td align="left" valign="top"><p> + You should exercise extreme caution when interpreting these results, relative + performance may vary by platform, the tests use data that gives good code + coverage of <span class="emphasis"><em>our</em></span> code, but which may skew the results + towards the corner cases. Finally, remember that different libraries make + different choices with regard to performance verses numerical stability. + </p></td></tr> +</table></div> +<h5> +<a name="math_toolkit.perf.comparisons.h0"></a> + <span><a name="math_toolkit.perf.comparisons.comparison_to_gsl_1_13_and_cephes"></a></span><a class="link" href="comparisons.html#math_toolkit.perf.comparisons.comparison_to_gsl_1_13_and_cephes">Comparison + to GSL-1.13 and Cephes</a> + </h5> +<p> + All the results were measured on a 2.0GHz Intel T5800 Core 2 Duo, 4Gb RAM, + Windows Vista machine, with the test program compiled with Microsoft Visual + C++ 2009 using the /Ox option. + </p> +<div class="informaltable"><table class="table"> +<colgroup> +<col> +<col> +<col> +<col> +</colgroup> +<thead><tr> +<th> + <p> + Function + </p> + </th> +<th> + <p> + Boost + </p> + </th> +<th> + <p> + GSL-1.9 + </p> + </th> +<th> + <p> + Cephes + </p> + </th> +</tr></thead> +<tbody> +<tr> +<td> + <p> + <a class="link" href="../special/powers/cbrt.html" title="cbrt">cbrt</a> + </p> + </td> +<td> + <p> + </p> +<p><span class="bold"><strong>1.00</strong></span></p> +<p> </p> +<p>(4.873e-007s)</p> +<p> + </p> + </td> +<td> + <p> + N/A + </p> + </td> +<td> + <p> + </p> +<p><span class="bold"><strong>1.00</strong></span></p> +<p> </p> +<p>(6.699e-007s)</p> +<p> + </p> + </td> +</tr> +<tr> +<td> + <p> + <a class="link" href="../special/powers/log1p.html" title="log1p">log1p</a> + </p> + </td> +<td> + <p> + </p> +<p><span class="bold"><strong>1.00</strong></span></p> +<p> </p> +<p>(1.664e-007s)</p> +<p> + </p> + </td> +<td> + <p> + </p> +<p><span class="bold"><strong>1.00</strong></span></p> +<p> </p> +<p>(2.677e-007s)</p> +<p> + </p> + </td> +<td> + <p> + </p> +<p><span class="bold"><strong>1.00</strong></span></p> +<p> </p> +<p>(1.189e-007s)</p> +<p> + </p> + </td> +</tr> +<tr> +<td> + <p> + <a class="link" href="../special/powers/expm1.html" title="expm1">expm1</a> + </p> + </td> +<td> + <p> + </p> +<p><span class="bold"><strong>1.00</strong></span></p> +<p> </p> +<p>(8.760e-008s)</p> +<p> + </p> + </td> +<td> + <p> + </p> +<p><span class="bold"><strong>1.00</strong></span></p> +<p> </p> +<p>(1.248e-007s)</p> +<p> + </p> + </td> +<td> + <p> + </p> +<p><span class="bold"><strong>1.00</strong></span></p> +<p> </p> +<p>(8.169e-008s)</p> +<p> + </p> + </td> +</tr> +<tr> +<td> + <p> + <a class="link" href="../special/sf_gamma/tgamma.html" title="Gamma">tgamma</a> + </p> + </td> +<td> + <p> + </p> +<p>1.80</p> +<p> </p> +<p>(2.997e-007s)</p> +<p> + </p> + </td> +<td> + <p> + </p> +<p>1.54</p> +<p> </p> +<p>(2.569e-007s)</p> +<p> + </p> + </td> +<td> + <p> + </p> +<p><span class="bold"><strong>1.00</strong></span></p> +<p> </p> +<p>(1.666e-007s)</p> +<p> + </p> + </td> +</tr> +<tr> +<td> + <p> + <a class="link" href="../special/sf_gamma/lgamma.html" title="Log Gamma">lgamma</a> + </p> + </td> +<td> + <p> + </p> +<p>2.20</p> +<p> </p> +<p>(3.045e-007s)</p> +<p> + </p> + </td> +<td> + <p> + </p> +<p>4.14</p> +<p> </p> +<p>(5.713e-007s)</p> +<p> + </p> + </td> +<td> + <p> + </p> +<p><span class="bold"><strong>1.00</strong></span></p> +<p> </p> +<p>(1.381e-007s)</p> +<p> + </p> + </td> +</tr> +<tr> +<td> + <p> + <a class="link" href="../special/sf_erf/error_function.html" title="Error Functions">erf</a> + and <a class="link" href="../special/sf_erf/error_function.html" title="Error Functions">erfc</a> + </p> + </td> +<td> + <p> + </p> +<p><span class="bold"><strong>1.00</strong></span></p> +<p> </p> +<p>(1.483e-007s)</p> +<p> + </p> + </td> +<td> + <p> + </p> +<p><span class="bold"><strong>1.00</strong></span></p> +<p> </p> +<p>(7.052e-007s)</p> +<p> + </p> + </td> +<td> + <p> + </p> +<p><span class="bold"><strong>1.00</strong></span></p> +<p> </p> +<p>(1.722e-007s)</p> +<p> + </p> + </td> +</tr> +<tr> +<td> + <p> + <a class="link" href="../special/sf_gamma/igamma.html" title="Incomplete Gamma Functions">gamma_p</a> + and <a class="link" href="../special/sf_gamma/igamma.html" title="Incomplete Gamma Functions">gamma_q</a> + </p> + </td> +<td> + <p> + </p> +<p><span class="bold"><strong>1.00</strong></span></p> +<p> </p> +<p>(6.182e-007s)</p> +<p> + </p> + </td> +<td> + <p> + </p> +<p>3.57</p> +<p> </p> +<p>(2.209e-006s)</p> +<p> + </p> + </td> +<td> + <p> + </p> +<p>4.29</p> +<p> </p> +<p>(2.651e-006s)</p> +<p> + </p> + </td> +</tr> +<tr> +<td> + <p> + <a class="link" href="../special/sf_gamma/igamma_inv.html" title="Incomplete Gamma Function Inverses">gamma_p_inv</a> + and <a class="link" href="../special/sf_gamma/igamma_inv.html" title="Incomplete Gamma Function Inverses">gamma_q_inv</a> + </p> + </td> +<td> + <p> + </p> +<p><span class="bold"><strong>1.00</strong></span></p> +<p> </p> +<p>(1.943e-006s)</p> +<p> + </p> + </td> +<td> + <p> + N/A + </p> + </td> +<td> + <p> + +INF <sup>[<a name="math_toolkit.perf.comparisons.f0" href="#ftn.math_toolkit.perf.comparisons.f0" class="footnote">1</a>]</sup> + </p> + </td> +</tr> +<tr> +<td> + <p> + <a class="link" href="../special/sf_beta/ibeta_function.html" title="Incomplete Beta Functions">ibeta</a> + and <a class="link" href="../special/sf_beta/ibeta_function.html" title="Incomplete Beta Functions">ibetac</a> + </p> + </td> +<td> + <p> + </p> +<p><span class="bold"><strong>1.00</strong></span></p> +<p> </p> +<p>(1.670e-006s)</p> +<p> + </p> + </td> +<td> + <p> + </p> +<p>1.16</p> +<p> </p> +<p>(1.935e-006s)</p> +<p> + </p> + </td> +<td> + <p> + </p> +<p>1.16</p> +<p> </p> +<p>(1.935e-006s)</p> +<p> + </p> + </td> +</tr> +<tr> +<td> + <p> + <a class="link" href="../special/sf_beta/ibeta_inv_function.html" title="The Incomplete Beta Function Inverses">ibeta_inv</a> + and <a class="link" href="../special/sf_beta/ibeta_inv_function.html" title="The Incomplete Beta Function Inverses">ibetac_inv</a> + </p> + </td> +<td> + <p> + </p> +<p><span class="bold"><strong>1.00</strong></span></p> +<p> </p> +<p>(6.075e-006s)</p> +<p> + </p> + </td> +<td> + <p> + N/A + </p> + </td> +<td> + <p> + </p> +<p>2.45</p> +<p> </p> +<p>(1.489e-005s)</p> +<p> + </p> + </td> +</tr> +<tr> +<td> + <p> + <a class="link" href="../special/bessel/bessel.html" title="Bessel Functions of the First and Second Kinds">cyl_bessel_j</a> + </p> + </td> +<td> + <p> + </p> +<p>17.89<sup>[<a name="math_toolkit.perf.comparisons.f1" href="#ftn.math_toolkit.perf.comparisons.f1" class="footnote">2</a>]</sup></p> +<p> </p> +<p>(4.248e-005s)</p> +<p> + </p> + </td> +<td> + <p> + </p> +<p><span class="bold"><strong>1.00</strong></span></p> +<p> </p> +<p>(5.214e-006s)</p> +<p> + </p> + </td> +<td> + <p> + </p> +<p><span class="bold"><strong>1.00</strong></span></p> +<p> </p> +<p>(2.374e-006s)</p> +<p> + </p> + </td> +</tr> +<tr> +<td> + <p> + <a class="link" href="../special/bessel/mbessel.html" title="Modified Bessel Functions of the First and Second Kinds">cyl_bessel_i</a> + </p> + </td> +<td> + <p> + </p> +<p><span class="bold"><strong>1.00</strong></span></p> +<p> </p> +<p>(5.924e-006s)</p> +<p> + </p> + </td> +<td> + <p> + </p> +<p><span class="bold"><strong>1.00</strong></span></p> +<p> </p> +<p>(4.487e-006s)</p> +<p> + </p> + </td> +<td> + <p> + </p> +<p><span class="bold"><strong>1.00</strong></span></p> +<p> </p> +<p>(4.823e-006s)</p> +<p> + </p> + </td> +</tr> +<tr> +<td> + <p> + <a class="link" href="../special/bessel/mbessel.html" title="Modified Bessel Functions of the First and Second Kinds">cyl_bessel_k</a> + </p> + </td> +<td> + <p> + </p> +<p><span class="bold"><strong>1.00</strong></span></p> +<p> </p> +<p>(2.783e-006s)</p> +<p> + </p> + </td> +<td> + <p> + </p> +<p><span class="bold"><strong>1.00</strong></span></p> +<p> </p> +<p>(3.927e-006s)</p> +<p> + </p> + </td> +<td> + <p> + N/A + </p> + </td> +</tr> +<tr> +<td> + <p> + <a class="link" href="../special/bessel/bessel.html" title="Bessel Functions of the First and Second Kinds">cyl_neumann</a> + </p> + </td> +<td> + <p> + </p> +<p><span class="bold"><strong>1.00</strong></span></p> +<p> </p> +<p>(4.465e-006s)</p> +<p> + </p> + </td> +<td> + <p> + </p> +<p><span class="bold"><strong>1.00</strong></span></p> +<p> </p> +<p>(1.230e-005s)</p> +<p> + </p> + </td> +<td> + <p> + </p> +<p><span class="bold"><strong>1.00</strong></span></p> +<p> </p> +<p>(4.977e-006s)</p> +<p> + </p> + </td> +</tr> +</tbody> +<tbody class="footnotes"><tr><td colspan="4"> +<div class="footnote"><p><sup>[<a id="ftn.math_toolkit.perf.comparisons.f0" href="#math_toolkit.perf.comparisons.f0" class="para">1</a>] </sup> + Cephes gets stuck in an infinite loop while trying to execute + our test cases. + </p></div> +<div class="footnote"><p><sup>[<a id="ftn.math_toolkit.perf.comparisons.f1" href="#math_toolkit.perf.comparisons.f1" class="para">2</a>] </sup> + The performance here is dominated by a few cases where the parameters + grow very large: faster asymptotic expansions are available, + but are of limited (or even frankly terrible) precision. The + same issue effects all of our Bessel function implementations, + but doesn't necessarily show in the current performance data. + More investigation is needed here. + </p></div> +</td></tr></tbody> +</table></div> +<h5> +<a name="math_toolkit.perf.comparisons.h1"></a> + <span><a name="math_toolkit.perf.comparisons.comparison_to_the_r_and_dcdflib_statistical_libraries_on_windows"></a></span><a class="link" href="comparisons.html#math_toolkit.perf.comparisons.comparison_to_the_r_and_dcdflib_statistical_libraries_on_windows">Comparison + to the R and DCDFLIB Statistical Libraries on Windows</a> + </h5> +<p> + All the results were measured on a 2.0GHz Intel T5800 Core 2 Duo, 4Gb RAM, + Windows Vista machine, with the test program compiled with Microsoft Visual + C++ 2009, and R-2.9.2 compiled in "standalone mode" with MinGW-4.3 + (R-2.9.2 appears not to be buildable with Visual C++). + </p> +<div class="table"> +<a name="math_toolkit.perf.comparisons.a_comparison_to_the_r_statistical_library_on_windows_xp"></a><p class="title"><b>Table 55. A Comparison to the R Statistical Library on Windows XP</b></p> +<div class="table-contents"><table class="table" summary="A Comparison to the R Statistical Library on Windows XP"> +<colgroup> +<col> +<col> +<col> +<col> +</colgroup> +<thead><tr> +<th> + <p> + Statistical Function + </p> + </th> +<th> + <p> + Boost + </p> + </th> +<th> + <p> + R + </p> + </th> +<th> + <p> + DCDFLIB + </p> + </th> +</tr></thead> +<tbody> +<tr> +<td> + <p> + <a class="link" href="../dist/dist_ref/dists/beta_dist.html" title="Beta Distribution">Beta + Distribution</a> CDF + </p> + </td> +<td> + <p> + </p> +<p>1.08</p> +<p> </p> +<p>(1.385e-006s)</p> +<p> + </p> + </td> +<td> + <p> + </p> +<p><span class="bold"><strong>1.00</strong></span></p> +<p> </p> +<p>(1.278e-006s)</p> +<p> + </p> + </td> +<td> + <p> + </p> +<p>1.06</p> +<p> </p> +<p>(1.349e-006s)</p> +<p> + </p> + </td> +</tr> +<tr> +<td> + <p> + <a class="link" href="../dist/dist_ref/dists/beta_dist.html" title="Beta Distribution">Beta + Distribution</a> Quantile + </p> + </td> +<td> + <p> + </p> +<p><span class="bold"><strong>1.00</strong></span></p> +<p> </p> +<p>(4.975e-006s)</p> +<p> + </p> + </td> +<td> + <p> + </p> +<p>67.66<sup>[<a name="math_toolkit.perf.comparisons.f2" href="#ftn.math_toolkit.perf.comparisons.f2" class="footnote">1</a>]</sup></p> +<p> </p> +<p>(3.366e-004s)</p> +<p> + </p> + </td> +<td> + <p> + </p> +<p>4.23</p> +<p> </p> +<p>(2.103e-005s)</p> +<p> + </p> + </td> +</tr> +<tr> +<td> + <p> + <a class="link" href="../dist/dist_ref/dists/binomial_dist.html" title="Binomial Distribution">Binomial + Distribution</a> CDF + </p> + </td> +<td> + <p> + </p> +<p>1.06</p> +<p> </p> +<p>(4.503e-007s)</p> +<p> + </p> + </td> +<td> + <p> + </p> +<p>1.81</p> +<p> </p> +<p>(7.680e-007s)</p> +<p> + </p> + </td> +<td> + <p> + </p> +<p><span class="bold"><strong>1.00</strong></span></p> +<p> </p> +<p>(4.239e-007s)</p> +<p> + </p> + </td> +</tr> +<tr> +<td> + <p> + <a class="link" href="../dist/dist_ref/dists/binomial_dist.html" title="Binomial Distribution">Binomial + Distribution</a> Quantile + </p> + </td> +<td> + <p> + </p> +<p><span class="bold"><strong>1.00</strong></span></p> +<p> </p> +<p>(3.254e-006s)</p> +<p> + </p> + </td> +<td> + <p> + </p> +<p>1.15</p> +<p> </p> +<p>(3.746e-006s)</p> +<p> + </p> + </td> +<td> + <p> + </p> +<p>7.25</p> +<p> </p> +<p>(2.358e-005s)</p> +<p> + </p> + </td> +</tr> +<tr> +<td> + <p> + <a class="link" href="../dist/dist_ref/dists/cauchy_dist.html" title="Cauchy-Lorentz Distribution">Cauchy + Distribution</a> CDF + </p> + </td> +<td> + <p> + </p> +<p><span class="bold"><strong>1.00</strong></span></p> +<p> </p> +<p>(1.134e-007s)</p> +<p> + </p> + </td> +<td> + <p> + </p> +<p>1.08</p> +<p> </p> +<p>(1.227e-007s)</p> +<p> + </p> + </td> +<td> + <p> + NA + </p> + </td> +</tr> +<tr> +<td> + <p> + <a class="link" href="../dist/dist_ref/dists/cauchy_dist.html" title="Cauchy-Lorentz Distribution">Cauchy + Distribution</a> Quantile + </p> + </td> +<td> + <p> + </p> +<p><span class="bold"><strong>1.00</strong></span></p> +<p> </p> +<p>(1.203e-007s)</p> +<p> + </p> + </td> +<td> + <p> + </p> +<p><span class="bold"><strong>1.00</strong></span></p> +<p> </p> +<p>(1.203e-007s)</p> +<p> + </p> + </td> +<td> + <p> + NA + </p> + </td> +</tr> +<tr> +<td> + <p> + <a class="link" href="../dist/dist_ref/dists/chi_squared_dist.html" title="Chi Squared Distribution">Chi + Squared Distribution</a> CDF + </p> + </td> +<td> + <p> + </p> +<p>1.21</p> +<p> </p> +<p>(5.021e-007s)</p> +<p> + </p> + </td> +<td> + <p> + </p> +<p>2.83</p> +<p> </p> +<p>(1.176e-006s)</p> +<p> + </p> + </td> +<td> + <p> + </p> +<p><span class="bold"><strong>1.00</strong></span></p> +<p> </p> +<p>(4.155e-007s)</p> +<p> + </p> + </td> +</tr> +<tr> +<td> + <p> + <a class="link" href="../dist/dist_ref/dists/chi_squared_dist.html" title="Chi Squared Distribution">Chi + Squared Distribution</a> Quantile + </p> + </td> +<td> + <p> + </p> +<p><span class="bold"><strong>1.00</strong></span></p> +<p> </p> +<p>(1.930e-006s)</p> +<p> + </p> + </td> +<td> + <p> + </p> +<p>2.72</p> +<p> </p> +<p>(5.243e-006s)</p> +<p> + </p> + </td> +<td> + <p> + </p> +<p>5.73</p> +<p> </p> +<p>(1.106e-005s)</p> +<p> + </p> + </td> +</tr> +<tr> +<td> + <p> + <a class="link" href="../dist/dist_ref/dists/exp_dist.html" title="Exponential Distribution">Exponential + Distribution</a> CDF + </p> + </td> +<td> + <p> + </p> +<p><span class="bold"><strong>1.00</strong></span></p> +<p> </p> +<p>(3.798e-008s)</p> +<p> + </p> + </td> +<td> + <p> + </p> +<p>5.89</p> +<p> </p> +<p>(2.236e-007s)</p> +<p> + </p> + </td> +<td> + <p> + NA + </p> + </td> +</tr> +<tr> +<td> + <p> + <a class="link" href="../dist/dist_ref/dists/exp_dist.html" title="Exponential Distribution">Exponential + Distribution</a> Quantile + </p> + </td> +<td> + <p> + </p> +<p>1.41</p> +<p> </p> +<p>(9.006e-008s)</p> +<p> + </p> + </td> +<td> + <p> + </p> +<p><span class="bold"><strong>1.00</strong></span></p> +<p> </p> +<p>(6.380e-008s)</p> +<p> + </p> + </td> +<td> + <p> + NA + </p> + </td> +</tr> +<tr> +<td> + <p> + <a class="link" href="../dist/dist_ref/dists/f_dist.html" title="F Distribution">Fisher + F Distribution</a> CDF + </p> + </td> +<td> + <p> + </p> +<p><span class="bold"><strong>1.00</strong></span></p> +<p> </p> +<p>(9.556e-007s)</p> +<p> + </p> + </td> +<td> + <p> + </p> +<p>1.34</p> +<p> </p> +<p>(1.283e-006s)</p> +<p> + </p> + </td> +<td> + <p> + </p> +<p>1.24</p> +<p> </p> +<p>(1.183e-006s)</p> +<p> + </p> + </td> +</tr> +<tr> +<td> + <p> + <a class="link" href="../dist/dist_ref/dists/f_dist.html" title="F Distribution">Fisher + F Distribution</a> Quantile + </p> + </td> +<td> + <p> + </p> +<p><span class="bold"><strong>1.00</strong></span></p> +<p> </p> +<p>(6.987e-006s)</p> +<p> + </p> + </td> +<td> + <p> + </p> +<p>1.33</p> +<p> </p> +<p>(9.325e-006s)</p> +<p> + </p> + </td> +<td> + <p> + </p> +<p>3.16</p> +<p> </p> +<p>(2.205e-005s)</p> +<p> + </p> + </td> +</tr> +<tr> +<td> + <p> + <a class="link" href="../dist/dist_ref/dists/gamma_dist.html" title="Gamma (and Erlang) Distribution">Gamma + Distribution</a> CDF + </p> + </td> +<td> + <p> + </p> +<p>1.52</p> +<p> </p> +<p>(6.240e-007s)</p> +<p> + </p> + </td> +<td> + <p> + </p> +<p>3.11</p> +<p> </p> +<p>(1.279e-006s)</p> +<p> + </p> + </td> +<td> + <p> + </p> +<p><span class="bold"><strong>1.00</strong></span></p> +<p> </p> +<p>(4.111e-007s)</p> +<p> + </p> + </td> +</tr> +<tr> +<td> + <p> + <a class="link" href="../dist/dist_ref/dists/gamma_dist.html" title="Gamma (and Erlang) Distribution">Gamma + Distribution</a> Quantile + </p> + </td> +<td> + <p> + </p> +<p>1.24</p> +<p> </p> +<p>(2.179e-006s)</p> +<p> + </p> + </td> +<td> + <p> + </p> +<p>6.25</p> +<p> </p> +<p>(1.102e-005s)</p> +<p> + </p> + </td> +<td> + <p> + </p> +<p><span class="bold"><strong>1.00</strong></span></p> +<p> </p> +<p>(1.764e-006s)</p> +<p> + </p> + </td> +</tr> +<tr> +<td> + <p> + __hypergeometric_distrib CDF + </p> + </td> +<td> + <p> + </p> +<p>3.60<sup>[<a name="math_toolkit.perf.comparisons.f3" href="#ftn.math_toolkit.perf.comparisons.f3" class="footnote">2</a>]</sup></p> +<p> </p> +<p>(5.987e-007s)</p> +<p> + </p> + </td> +<td> + <p> + </p> +<p><span class="bold"><strong>1.00</strong></span></p> +<p> </p> +<p>(1.665e-007s)</p> +<p> + </p> + </td> +<td> + <p> + NA + </p> + </td> +</tr> +<tr> +<td> + <p> + __hypergeometric_distrib Quantile + </p> + </td> +<td> + <p> + </p> +<p><span class="bold"><strong>1.00</strong></span></p> +<p> </p> +<p>(5.684e-007s)</p> +<p> + </p> + </td> +<td> + <p> + </p> +<p>3.53</p> +<p> </p> +<p>(2.004e-006s)</p> +<p> + </p> + </td> +<td> + <p> + NA + </p> + </td> +</tr> +<tr> +<td> + <p> + <a class="link" href="../dist/dist_ref/dists/logistic_dist.html" title="Logistic Distribution">Logistic + Distribution</a> CDF + </p> + </td> +<td> + <p> + </p> +<p><span class="bold"><strong>1.00</strong></span></p> +<p> </p> +<p>(1.714e-007s)</p> +<p> + </p> + </td> +<td> + <p> + </p> +<p>5.24</p> +<p> </p> +<p>(8.984e-007s)</p> +<p> + </p> + </td> +<td> + <p> + NA + </p> + </td> +</tr> +<tr> +<td> + <p> + <a class="link" href="../dist/dist_ref/dists/logistic_dist.html" title="Logistic Distribution">Logistic + Distribution</a> Quantile + </p> + </td> +<td> + <p> + </p> +<p>1.02</p> +<p> </p> +<p>(2.084e-007s)</p> +<p> + </p> + </td> +<td> + <p> + </p> +<p><span class="bold"><strong>1.00</strong></span></p> +<p> </p> +<p>(2.043e-007s)</p> +<p> + </p> + </td> +<td> + <p> + NA + </p> + </td> +</tr> +<tr> +<td> + <p> + <a class="link" href="../dist/dist_ref/dists/lognormal_dist.html" title="Log Normal Distribution">Log-normal + Distribution</a> CDF + </p> + </td> +<td> + <p> + </p> +<p><span class="bold"><strong>1.00</strong></span></p> +<p> </p> +<p>(3.579e-007s)</p> +<p> + </p> + </td> +<td> + <p> + </p> +<p>1.49</p> +<p> </p> +<p>(5.332e-007s)</p> +<p> + </p> + </td> +<td> + <p> + NA + </p> + </td> +</tr> +<tr> +<td> + <p> + <a class="link" href="../dist/dist_ref/dists/lognormal_dist.html" title="Log Normal Distribution">Log-normal + Distribution</a> Quantile + </p> + </td> +<td> + <p> + </p> +<p><span class="bold"><strong>1.00</strong></span></p> +<p> </p> +<p>(9.622e-007s)</p> +<p> + </p> + </td> +<td> + <p> + </p> +<p>1.57</p> +<p> </p> +<p>(1.507e-006s)</p> +<p> + </p> + </td> +<td> + <p> + NA + </p> + </td> +</tr> +<tr> +<td> + <p> + <a class="link" href="../dist/dist_ref/dists/negative_binomial_dist.html" title="Negative Binomial Distribution">Negative + Binomial Distribution</a> CDF + </p> + </td> +<td> + <p> + </p> +<p><span class="bold"><strong>1.00</strong></span></p> +<p> </p> +<p>(6.227e-007s)</p> +<p> + </p> + </td> +<td> + <p> + </p> +<p>2.25</p> +<p> </p> +<p>(1.403e-006s)</p> +<p> + </p> + </td> +<td> + <p> + </p> +<p>2.21</p> +<p> </p> +<p>(1.378e-006s)</p> +<p> + </p> + </td> +</tr> +<tr> +<td> + <p> + <a class="link" href="../dist/dist_ref/dists/negative_binomial_dist.html" title="Negative Binomial Distribution">Negative + Binomial Distribution</a> Quantile + </p> + </td> +<td> + <p> + </p> +<p><span class="bold"><strong>1.00</strong></span></p> +<p> </p> +<p>(8.594e-006s)</p> +<p> + </p> + </td> +<td> + <p> + </p> +<p>43.43<sup>[<a name="math_toolkit.perf.comparisons.f4" href="#ftn.math_toolkit.perf.comparisons.f4" class="footnote">3</a>]</sup></p> +<p> </p> +<p>(3.732e-004s)</p> +<p> + </p> + </td> +<td> + <p> + </p> +<p>3.48</p> +<p> </p> +<p>(2.994e-005s)</p> +<p> + </p> + </td> +</tr> +<tr> +<td> + <p> + <a class="link" href="../dist/dist_ref/dists/nc_chi_squared_dist.html" title="Noncentral Chi-Squared Distribution">Noncentral + Chi Squared Distribution</a> CDF + </p> + </td> +<td> + <p> + </p> +<p>2.16</p> +<p> </p> +<p>(3.926e-006s)</p> +<p> + </p> + </td> +<td> + <p> + </p> +<p>79.93</p> +<p> </p> +<p>(1.450e-004s)</p> +<p> + </p> + </td> +<td> + <p> + </p> +<p><span class="bold"><strong>1.00</strong></span></p> +<p> </p> +<p>(1.814e-006s)</p> +<p> + </p> + </td> +</tr> +<tr> +<td> + <p> + <a class="link" href="../dist/dist_ref/dists/nc_chi_squared_dist.html" title="Noncentral Chi-Squared Distribution">Noncentral + Chi Squared Distribution</a> Quantile + </p> + </td> +<td> + <p> + </p> +<p>5.00</p> +<p> </p> +<p>(3.393e-004s)</p> +<p> + </p> + </td> +<td> + <p> + </p> +<p>393.90<sup>[<a name="math_toolkit.perf.comparisons.f5" href="#ftn.math_toolkit.perf.comparisons.f5" class="footnote">4</a>]</sup></p> +<p> </p> +<p>(2.673e-002s)</p> +<p> + </p> + </td> +<td> + <p> + </p> +<p><span class="bold"><strong>1.00</strong></span></p> +<p> </p> +<p>(6.786e-005s)</p> +<p> + </p> + </td> +</tr> +<tr> +<td> + <p> + <a class="link" href="../dist/dist_ref/dists/nc_f_dist.html" title="Noncentral F Distribution">Noncentral + F Distribution</a> CDF + </p> + </td> +<td> + <p> + </p> +<p>1.59</p> +<p> </p> +<p>(1.128e-005s)</p> +<p> + </p> + </td> +<td> + <p> + </p> +<p><span class="bold"><strong>1.00</strong></span></p> +<p> </p> +<p>(7.087e-006s)</p> +<p> + </p> + </td> +<td> + <p> + </p> +<p><span class="bold"><strong>1.00</strong></span></p> +<p> </p> +<p>(4.274e-006s)</p> +<p> + </p> + </td> +</tr> +<tr> +<td> + <p> + <a class="link" href="../dist/dist_ref/dists/nc_f_dist.html" title="Noncentral F Distribution">Noncentral + F Distribution</a> Quantile + </p> + </td> +<td> + <p> + </p> +<p><span class="bold"><strong>1.00</strong></span></p> +<p> </p> +<p>(4.750e-004s)</p> +<p> + </p> + </td> +<td> + <p> + </p> +<p>1.62</p> +<p> </p> +<p>(7.681e-004s)</p> +<p> + </p> + </td> +<td> + <p> + </p> +<p><span class="bold"><strong>1.00</strong></span></p> +<p> </p> +<p>(4.274e-006s)</p> +<p> + </p> + </td> +</tr> +<tr> +<td> + <p> + <a class="link" href="../dist/dist_ref/dists/nc_t_dist.html" title="Noncentral T Distribution">noncentral + T distribution</a> CDF + </p> + </td> +<td> + <p> + </p> +<p>3.41</p> +<p> </p> +<p>(1.852e-005s)</p> +<p> + </p> + </td> +<td> + <p> + </p> +<p><span class="bold"><strong>1.00</strong></span></p> +<p> </p> +<p>(5.436e-006s)</p> +<p> + </p> + </td> +<td> + <p> + NA + </p> + </td> +</tr> +<tr> +<td> + <p> + <a class="link" href="../dist/dist_ref/dists/nc_t_dist.html" title="Noncentral T Distribution">noncentral + T distribution</a> Quantile + </p> + </td> +<td> + <p> + </p> +<p>1.31</p> +<p> </p> +<p>(5.768e-004s)</p> +<p> + </p> + </td> +<td> + <p> + </p> +<p><span class="bold"><strong>1.00</strong></span><sup>[<a name="math_toolkit.perf.comparisons.f6" href="#ftn.math_toolkit.perf.comparisons.f6" class="footnote">5</a>]</sup></p> +<p> </p> +<p>(4.411e-004s)</p> +<p> + </p> + </td> +<td> + <p> + NA + </p> + </td> +</tr> +<tr> +<td> + <p> + <a class="link" href="../dist/dist_ref/dists/normal_dist.html" title="Normal (Gaussian) Distribution">Normal + Distribution</a> CDF + </p> + </td> +<td> + <p> + </p> +<p><span class="bold"><strong>1.00</strong></span></p> +<p> </p> +<p>(8.373e-008s)</p> +<p> + </p> + </td> +<td> + <p> + </p> +<p>1.68</p> +<p> </p> +<p>(1.409e-007s)</p> +<p> + </p> + </td> +<td> + <p> + </p> +<p>6.01</p> +<p> </p> +<p>(5.029e-007s)</p> +<p> + </p> + </td> +</tr> +<tr> +<td> + <p> + <a class="link" href="../dist/dist_ref/dists/normal_dist.html" title="Normal (Gaussian) Distribution">Normal + Distribution</a> Quantile + </p> + </td> +<td> + <p> + </p> +<p>1.29</p> +<p> </p> +<p>(1.521e-007s)</p> +<p> + </p> + </td> +<td> + <p> + </p> +<p><span class="bold"><strong>1.00</strong></span></p> +<p> </p> +<p>(1.182e-007s)</p> +<p> + </p> + </td> +<td> + <p> + </p> +<p>10.85</p> +<p> </p> +<p>(1.283e-006s)</p> +<p> + </p> + </td> +</tr> +<tr> +<td> + <p> + <a class="link" href="../dist/dist_ref/dists/poisson_dist.html" title="Poisson Distribution">Poisson + Distribution</a> CDF + </p> + </td> +<td> + <p> + </p> +<p>1.18</p> +<p> </p> +<p>(5.193e-007s)</p> +<p> + </p> + </td> +<td> + <p> + </p> +<p>2.98</p> +<p> </p> +<p>(1.314e-006s)</p> +<p> + </p> + </td> +<td> + <p> + </p> +<p><span class="bold"><strong>1.00</strong></span></p> +<p> </p> +<p>(4.410e-007s)</p> +<p> + </p> + </td> +</tr> +<tr> +<td> + <p> + <a class="link" href="../dist/dist_ref/dists/poisson_dist.html" title="Poisson Distribution">Poisson + Distribution</a> + </p> + </td> +<td> + <p> + </p> +<p><span class="bold"><strong>1.00</strong></span></p> +<p> </p> +<p>(1.203e-006s)</p> +<p> + </p> + </td> +<td> + <p> + </p> +<p>2.20</p> +<p> </p> +<p>(2.642e-006s)</p> +<p> + </p> + </td> +<td> + <p> + </p> +<p>7.86</p> +<p> </p> +<p>(9.457e-006s)</p> +<p> + </p> + </td> +</tr> +<tr> +<td> + <p> + <a class="link" href="../dist/dist_ref/dists/students_t_dist.html" title="Students t Distribution">Students + t Distribution</a> CDF + </p> + </td> +<td> + <p> + </p> +<p><span class="bold"><strong>1.00</strong></span></p> +<p> </p> +<p>(8.655e-007s)</p> +<p> + </p> + </td> +<td> + <p> + </p> +<p>1.06</p> +<p> </p> +<p>(9.166e-007s)</p> +<p> + </p> + </td> +<td> + <p> + </p> +<p>1.04</p> +<p> </p> +<p>(8.999e-007s)</p> +<p> + </p> + </td> +</tr> +<tr> +<td> + <p> + <a class="link" href="../dist/dist_ref/dists/students_t_dist.html" title="Students t Distribution">Students + t Distribution</a> Quantile + </p> + </td> +<td> + <p> + </p> +<p><span class="bold"><strong>1.00</strong></span></p> +<p> </p> +<p>(2.294e-006s)</p> +<p> + </p> + </td> +<td> + <p> + </p> +<p>1.36</p> +<p> </p> +<p>(3.131e-006s)</p> +<p> + </p> + </td> +<td> + <p> + </p> +<p>4.82</p> +<p> </p> +<p>(1.106e-005s)</p> +<p> + </p> + </td> +</tr> +<tr> +<td> + <p> + <a class="link" href="../dist/dist_ref/dists/weibull_dist.html" title="Weibull Distribution">Weibull + Distribution</a> CDF + </p> + </td> +<td> + <p> + </p> +<p><span class="bold"><strong>1.00</strong></span></p> +<p> </p> +<p>(1.865e-007s)</p> +<p> + </p> + </td> +<td> + <p> + </p> +<p>2.33</p> +<p> </p> +<p>(4.341e-007s)</p> +<p> + </p> + </td> +<td> + <p> + NA + </p> + </td> +</tr> +<tr> +<td> + <p> + <a class="link" href="../dist/dist_ref/dists/weibull_dist.html" title="Weibull Distribution">Weibull + Distribution</a> Quantile + </p> + </td> +<td> + <p> + </p> +<p><span class="bold"><strong>1.00</strong></span></p> +<p> </p> +<p>(3.608e-007s)</p> +<p> + </p> + </td> +<td> + <p> + </p> +<p>1.22</p> +<p> </p> +<p>(4.410e-007s)</p> +<p> + </p> + </td> +<td> + <p> + NA + </p> + </td> +</tr> +</tbody> +<tbody class="footnotes"><tr><td colspan="4"> +<div class="footnote"><p><sup>[<a id="ftn.math_toolkit.perf.comparisons.f2" href="#math_toolkit.perf.comparisons.f2" class="para">1</a>] </sup> + There are a small number of our test cases where the R library + fails to converge on a result: these tend to dominate the performance + result. + </p></div> +<div class="footnote"><p><sup>[<a id="ftn.math_toolkit.perf.comparisons.f3" href="#math_toolkit.perf.comparisons.f3" class="para">2</a>] </sup> + This result is somewhat misleading: for small values of the parameters + there is virtually no difference between the two libraries, but + for large values the Boost implementation is <span class="emphasis"><em>much</em></span> + slower, albeit with much improved precision. + </p></div> +<div class="footnote"><p><sup>[<a id="ftn.math_toolkit.perf.comparisons.f4" href="#math_toolkit.perf.comparisons.f4" class="para">3</a>] </sup> + The R library appears to use a linear-search strategy, that can + perform very badly in a small number of pathological cases, but + may or may not be more efficient in "typical" cases + </p></div> +<div class="footnote"><p><sup>[<a id="ftn.math_toolkit.perf.comparisons.f5" href="#math_toolkit.perf.comparisons.f5" class="para">4</a>] </sup> + There are a small number of our test cases where the R library + fails to converge on a result: these tend to dominate the performance + result. + </p></div> +<div class="footnote"><p><sup>[<a id="ftn.math_toolkit.perf.comparisons.f6" href="#math_toolkit.perf.comparisons.f6" class="para">5</a>] </sup> + There are a small number of our test cases where the R library + fails to converge on a result: these tend to dominate the performance + result. + </p></div> +</td></tr></tbody> +</table></div> +</div> +<br class="table-break"><h5> +<a name="math_toolkit.perf.comparisons.h2"></a> + <span><a name="math_toolkit.perf.comparisons.comparison_to_the_r_statistical_library_on_linux"></a></span><a class="link" href="comparisons.html#math_toolkit.perf.comparisons.comparison_to_the_r_statistical_library_on_linux">Comparison + to the R Statistical Library on Linux</a> + </h5> +<p> + All the results were measured on a 2.0GHz Intel T5800 Core 2 Duo, 4Gb RAM, + Ubuntu Linux 9 machine, with the test program and R-2.9.2 compiled with GNU + G++ 4.3.3 using -O3 -DNDEBUG=1. + </p> +<div class="table"> +<a name="math_toolkit.perf.comparisons.a_comparison_to_the_r_statistical_library_on_linux"></a><p class="title"><b>Table 56. A Comparison to the R Statistical Library on Linux</b></p> +<div class="table-contents"><table class="table" summary="A Comparison to the R Statistical Library on Linux"> +<colgroup> +<col> +<col> +<col> +<col> +</colgroup> +<thead><tr> +<th> + <p> + Statistical Function + </p> + </th> +<th> + <p> + Boost + </p> + </th> +<th> + <p> + R + </p> + </th> +<th> + <p> + DCDFLIB + </p> + </th> +</tr></thead> +<tbody> +<tr> +<td> + <p> + <a class="link" href="../dist/dist_ref/dists/beta_dist.html" title="Beta Distribution">Beta + Distribution</a> CDF + </p> + </td> +<td> + <p> + </p> +<p>2.09</p> +<p> </p> +<p>(3.189e-006s)</p> +<p> + </p> + </td> +<td> + <p> + </p> +<p><span class="bold"><strong>1.00</strong></span></p> +<p> </p> +<p>(1.526e-006s)</p> +<p> + </p> + </td> +<td> + <p> + </p> +<p>1.19</p> +<p> </p> +<p>(1.822e-006s)</p> +<p> + </p> + </td> +</tr> +<tr> +<td> + <p> + <a class="link" href="../dist/dist_ref/dists/beta_dist.html" title="Beta Distribution">Beta + Distribution</a> Quantile + </p> + </td> +<td> + <p> + </p> +<p><span class="bold"><strong>1.00</strong></span></p> +<p> </p> +<p>(1.185e-005s)</p> +<p> + </p> + </td> +<td> + <p> + </p> +<p>30.51<sup>[<a name="math_toolkit.perf.comparisons.f7" href="#ftn.math_toolkit.perf.comparisons.f7" class="footnote">1</a>]</sup></p> +<p> </p> +<p>(3.616e-004s)</p> +<p> + </p> + </td> +<td> + <p> + </p> +<p>2.52</p> +<p> </p> +<p>(2.989e-005s)</p> +<p> + </p> + </td> +</tr> +<tr> +<td> + <p> + <a class="link" href="../dist/dist_ref/dists/binomial_dist.html" title="Binomial Distribution">Binomial + Distribution</a> CDF + </p> + </td> +<td> + <p> + </p> +<p>4.41</p> +<p> </p> +<p>(9.175e-007s)</p> +<p> + </p> + </td> +<td> + <p> + </p> +<p>3.59</p> +<p> </p> +<p>(7.476e-007s)</p> +<p> + </p> + </td> +<td> + <p> + </p> +<p><span class="bold"><strong>1.00</strong></span></p> +<p> </p> +<p>(2.081e-007s)</p> +<p> + </p> + </td> +</tr> +<tr> +<td> + <p> + <a class="link" href="../dist/dist_ref/dists/binomial_dist.html" title="Binomial Distribution">Binomial + Distribution</a> Quantile + </p> + </td> +<td> + <p> + </p> +<p>1.57</p> +<p> </p> +<p>(6.925e-006s)</p> +<p> + </p> + </td> +<td> + <p> + </p> +<p><span class="bold"><strong>1.00</strong></span></p> +<p> </p> +<p>(4.407e-006s)</p> +<p> + </p> + </td> +<td> + <p> + </p> +<p>7.43</p> +<p> </p> +<p>(3.274e-005s)</p> +<p> + </p> + </td> +</tr> +<tr> +<td> + <p> + <a class="link" href="../dist/dist_ref/dists/cauchy_dist.html" title="Cauchy-Lorentz Distribution">Cauchy + Distribution</a> CDF + </p> + </td> +<td> + <p> + </p> +<p><span class="bold"><strong>1.00</strong></span></p> +<p> </p> +<p>(1.594e-007s)</p> +<p> + </p> + </td> +<td> + <p> + </p> +<p>1.04</p> +<p> </p> +<p>(1.654e-007s)</p> +<p> + </p> + </td> +<td> + <p> + NA + </p> + </td> +</tr> +<tr> +<td> + <p> + <a class="link" href="../dist/dist_ref/dists/cauchy_dist.html" title="Cauchy-Lorentz Distribution">Cauchy + Distribution</a> Quantile + </p> + </td> +<td> + <p> + </p> +<p>1.21</p> +<p> </p> +<p>(1.752e-007s)</p> +<p> + </p> + </td> +<td> + <p> + </p> +<p><span class="bold"><strong>1.00</strong></span></p> +<p> </p> +<p>(1.448e-007s)</p> +<p> + </p> + </td> +<td> + <p> + NA + </p> + </td> +</tr> +<tr> +<td> + <p> + <a class="link" href="../dist/dist_ref/dists/chi_squared_dist.html" title="Chi Squared Distribution">Chi + Squared Distribution</a> CDF + </p> + </td> +<td> + <p> + </p> +<p>2.61</p> +<p> </p> +<p>(1.376e-006s)</p> +<p> + </p> + </td> +<td> + <p> + </p> +<p>2.36</p> +<p> </p> +<p>(1.243e-006s)</p> +<p> + </p> + </td> +<td> + <p> + </p> +<p><span class="bold"><strong>1.00</strong></span></p> +<p> </p> +<p>(5.270e-007s)</p> +<p> + </p> + </td> +</tr> +<tr> +<td> + <p> + <a class="link" href="../dist/dist_ref/dists/chi_squared_dist.html" title="Chi Squared Distribution">Chi + Squared Distribution</a> Quantile + </p> + </td> +<td> + <p> + </p> +<p><span class="bold"><strong>1.00</strong></span></p> +<p> </p> +<p>(4.252e-006s)</p> +<p> + </p> + </td> +<td> + <p> + </p> +<p>1.34</p> +<p> </p> +<p>(5.700e-006s)</p> +<p> + </p> + </td> +<td> + <p> + </p> +<p>3.47</p> +<p> </p> +<p>(1.477e-005s)</p> +<p> + </p> + </td> +</tr> +<tr> +<td> + <p> + <a class="link" href="../dist/dist_ref/dists/exp_dist.html" title="Exponential Distribution">Exponential + Distribution</a> CDF + </p> + </td> +<td> + <p> + </p> +<p><span class="bold"><strong>1.00</strong></span></p> +<p> </p> +<p>(1.342e-007s)</p> +<p> + </p> + </td> +<td> + <p> + </p> +<p>1.25</p> +<p> </p> +<p>(1.677e-007s)</p> +<p> + </p> + </td> +<td> + <p> + NA + </p> + </td> +</tr> +<tr> +<td> + <p> + <a class="link" href="../dist/dist_ref/dists/exp_dist.html" title="Exponential Distribution">Exponential + Distribution</a> Quantile + </p> + </td> +<td> + <p> + </p> +<p><span class="bold"><strong>1.00</strong></span></p> +<p> </p> +<p>(8.827e-008s)</p> +<p> + </p> + </td> +<td> + <p> + </p> +<p>1.07</p> +<p> </p> +<p>(9.470e-008s)</p> +<p> + </p> + </td> +<td> + <p> + NA + </p> + </td> +</tr> +<tr> +<td> + <p> + <a class="link" href="../dist/dist_ref/dists/f_dist.html" title="F Distribution">Fisher + F Distribution</a> CDF + </p> + </td> +<td> + <p> + </p> +<p>1.62</p> +<p> </p> +<p>(2.324e-006s)</p> +<p> + </p> + </td> +<td> + <p> + </p> +<p>1.19</p> +<p> </p> +<p>(1.711e-006s)</p> +<p> + </p> + </td> +<td> + <p> + </p> +<p><span class="bold"><strong>1.00</strong></span></p> +<p> </p> +<p>(1.437e-006s)</p> +<p> + </p> + </td> +</tr> +<tr> +<td> + <p> + <a class="link" href="../dist/dist_ref/dists/f_dist.html" title="F Distribution">Fisher + F Distribution</a> Quantile + </p> + </td> +<td> + <p> + </p> +<p>1.53</p> +<p> </p> +<p>(1.577e-005s)</p> +<p> + </p> + </td> +<td> + <p> + </p> +<p><span class="bold"><strong>1.00</strong></span></p> +<p> </p> +<p>(1.033e-005s)</p> +<p> + </p> + </td> +<td> + <p> + </p> +<p>2.63</p> +<p> </p> +<p>(2.719e-005s)</p> +<p> + </p> + </td> +</tr> +<tr> +<td> + <p> + <a class="link" href="../dist/dist_ref/dists/gamma_dist.html" title="Gamma (and Erlang) Distribution">Gamma + Distribution</a> CDF + </p> + </td> +<td> + <p> + </p> +<p>3.18</p> +<p> </p> +<p>(1.582e-006s)</p> +<p> + </p> + </td> +<td> + <p> + </p> +<p>2.63</p> +<p> </p> +<p>(1.309e-006s)</p> +<p> + </p> + </td> +<td> + <p> + </p> +<p><span class="bold"><strong>1.00</strong></span></p> +<p> </p> +<p>(4.980e-007s)</p> +<p> + </p> + </td> +</tr> +<tr> +<td> + <p> + <a class="link" href="../dist/dist_ref/dists/gamma_dist.html" title="Gamma (and Erlang) Distribution">Gamma + Distribution</a> Quantile + </p> + </td> +<td> + <p> + </p> +<p>2.19</p> +<p> </p> +<p>(4.770e-006s)</p> +<p> + </p> + </td> +<td> + <p> + </p> +<p>6.94</p> +<p> </p> +<p>(1.513e-005s)</p> +<p> + </p> + </td> +<td> + <p> + </p> +<p><span class="bold"><strong>1.00</strong></span></p> +<p> </p> +<p>(2.179e-006s)</p> +<p> + </p> + </td> +</tr> +<tr> +<td> + <p> + __hypergeometric_distrib CDF + </p> + </td> +<td> + <p> + </p> +<p>2.20<sup>[<a name="math_toolkit.perf.comparisons.f8" href="#ftn.math_toolkit.perf.comparisons.f8" class="footnote">2</a>]</sup></p> +<p> </p> +<p>(3.522e-007s)</p> +<p> + </p> + </td> +<td> + <p> + </p> +<p><span class="bold"><strong>1.00</strong></span></p> +<p> </p> +<p>(1.601e-007s)</p> +<p> + </p> + </td> +<td> + <p> + NA + </p> + </td> +</tr> +<tr> +<td> + <p> + __hypergeometric_distrib Quantile + </p> + </td> +<td> + <p> + </p> +<p><span class="bold"><strong>1.00</strong></span></p> +<p> </p> +<p>(8.279e-007s)</p> +<p> + </p> + </td> +<td> + <p> + </p> +<p>2.57</p> +<p> </p> +<p>(2.125e-006s)</p> +<p> + </p> + </td> +<td> + <p> + NA + </p> + </td> +</tr> +<tr> +<td> + <p> + <a class="link" href="../dist/dist_ref/dists/logistic_dist.html" title="Logistic Distribution">Logistic + Distribution</a> CDF + </p> + </td> +<td> + <p> + </p> +<p><span class="bold"><strong>1.00</strong></span></p> +<p> </p> +<p>(9.398e-008s)</p> +<p> + </p> + </td> +<td> + <p> + </p> +<p>2.75</p> +<p> </p> +<p>(2.588e-007s)</p> +<p> + </p> + </td> +<td> + <p> + NA + </p> + </td> +</tr> +<tr> +<td> + <p> + <a class="link" href="../dist/dist_ref/dists/logistic_dist.html" title="Logistic Distribution">Logistic + Distribution</a> Quantile + </p> + </td> +<td> + <p> + </p> +<p><span class="bold"><strong>1.00</strong></span></p> +<p> </p> +<p>(9.893e-008s)</p> +<p> + </p> + </td> +<td> + <p> + </p> +<p>1.30</p> +<p> </p> +<p>(1.285e-007s)</p> +<p> + </p> + </td> +<td> + <p> + NA + </p> + </td> +</tr> +<tr> +<td> + <p> + <a class="link" href="../dist/dist_ref/dists/lognormal_dist.html" title="Log Normal Distribution">Log-normal + Distribution</a> CDF + </p> + </td> +<td> + <p> + </p> +<p><span class="bold"><strong>1.00</strong></span></p> +<p> </p> +<p>(1.831e-007s)</p> +<p> + </p> + </td> +<td> + <p> + </p> +<p>1.39</p> +<p> </p> +<p>(2.539e-007s)</p> +<p> + </p> + </td> +<td> + <p> + NA + </p> + </td> +</tr> +<tr> +<td> + <p> + <a class="link" href="../dist/dist_ref/dists/lognormal_dist.html" title="Log Normal Distribution">Log-normal + Distribution</a> Quantile + </p> + </td> +<td> + <p> + </p> +<p>1.10</p> +<p> </p> +<p>(5.551e-007s)</p> +<p> + </p> + </td> +<td> + <p> + </p> +<p><span class="bold"><strong>1.00</strong></span></p> +<p> </p> +<p>(5.037e-007s)</p> +<p> + </p> + </td> +<td> + <p> + NA + </p> + </td> +</tr> +<tr> +<td> + <p> + <a class="link" href="../dist/dist_ref/dists/negative_binomial_dist.html" title="Negative Binomial Distribution">Negative + Binomial Distribution</a> CDF + </p> + </td> +<td> + <p> + </p> +<p>1.08</p> +<p> </p> +<p>(1.563e-006s)</p> +<p> + </p> + </td> +<td> + <p> + </p> +<p><span class="bold"><strong>1.00</strong></span></p> +<p> </p> +<p>(1.444e-006s)</p> +<p> + </p> + </td> +<td> + <p> + </p> +<p><span class="bold"><strong>1.00</strong></span></p> +<p> </p> +<p>(1.444e-006s)</p> +<p> + </p> + </td> +</tr> +<tr> +<td> + <p> + <a class="link" href="../dist/dist_ref/dists/negative_binomial_dist.html" title="Negative Binomial Distribution">Negative + Binomial Distribution</a> Quantile + </p> + </td> +<td> + <p> + </p> +<p><span class="bold"><strong>1.00</strong></span></p> +<p> </p> +<p>(1.700e-005s)</p> +<p> + </p> + </td> +<td> + <p> + </p> +<p>25.92<sup>[<a name="math_toolkit.perf.comparisons.f9" href="#ftn.math_toolkit.perf.comparisons.f9" class="footnote">3</a>]</sup></p> +<p> </p> +<p>(4.407e-004s)</p> +<p> + </p> + </td> +<td> + <p> + </p> +<p>1.93</p> +<p> </p> +<p>(3.274e-005s)</p> +<p> + </p> + </td> +</tr> +<tr> +<td> + <p> + <a class="link" href="../dist/dist_ref/dists/nc_chi_squared_dist.html" title="Noncentral Chi-Squared Distribution">Noncentral + Chi Squared Distribution</a> CDF + </p> + </td> +<td> + <p> + </p> +<p>5.06</p> +<p> </p> +<p>(2.841e-005s)</p> +<p> + </p> + </td> +<td> + <p> + </p> +<p>25.01</p> +<p> </p> +<p>(1.405e-004s)</p> +<p> + </p> + </td> +<td> + <p> + </p> +<p><span class="bold"><strong>1.00</strong></span></p> +<p> </p> +<p>(5.617e-006s)</p> +<p> + </p> + </td> +</tr> +<tr> +<td> + <p> + <a class="link" href="../dist/dist_ref/dists/nc_chi_squared_dist.html" title="Noncentral Chi-Squared Distribution">Noncentral + Chi Squared Distribution</a> Quantile + </p> + </td> +<td> + <p> + </p> +<p>8.47</p> +<p> </p> +<p>(1.879e-003s)</p> +<p> + </p> + </td> +<td> + <p> + </p> +<p>144.91<sup>[<a name="math_toolkit.perf.comparisons.f10" href="#ftn.math_toolkit.perf.comparisons.f10" class="footnote">4</a>]</sup></p> +<p> </p> +<p>(3.214e-002s)</p> +<p> + </p> + </td> +<td> + <p> + </p> +<p><span class="bold"><strong>1.00</strong></span></p> +<p> </p> +<p>(2.218e-004s)</p> +<p> + </p> + </td> +</tr> +<tr> +<td> + <p> + <a class="link" href="../dist/dist_ref/dists/nc_f_dist.html" title="Noncentral F Distribution">Noncentral + F Distribution</a> CDF + </p> + </td> +<td> + <p> + </p> +<p>10.33</p> +<p> </p> +<p>(5.868e-005s)</p> +<p> + </p> + </td> +<td> + <p> + </p> +<p>1.42</p> +<p> </p> +<p>(8.058e-006s)</p> +<p> + </p> + </td> +<td> + <p> + </p> +<p><span class="bold"><strong>1.00</strong></span></p> +<p> </p> +<p>(5.682e-006s)</p> +<p> + </p> + </td> +</tr> +<tr> +<td> + <p> + <a class="link" href="../dist/dist_ref/dists/nc_f_dist.html" title="Noncentral F Distribution">Noncentral + F Distribution</a> Quantile + </p> + </td> +<td> + <p> + </p> +<p>5.64</p> +<p> </p> +<p>(7.869e-004s)</p> +<p> + </p> + </td> +<td> + <p> + </p> +<p>6.63</p> +<p> </p> +<p>(9.256e-004s)</p> +<p> + </p> + </td> +<td> + <p> + </p> +<p><span class="bold"><strong>1.00</strong></span></p> +<p> </p> +<p>(1.396e-004s)</p> +<p> + </p> + </td> +</tr> +<tr> +<td> + <p> + <a class="link" href="../dist/dist_ref/dists/nc_t_dist.html" title="Noncentral T Distribution">noncentral + T distribution</a> CDF + </p> + </td> +<td> + <p> + </p> +<p>4.91</p> +<p> </p> +<p>(3.357e-005s)</p> +<p> + </p> + </td> +<td> + <p> + </p> +<p><span class="bold"><strong>1.00</strong></span></p> +<p> </p> +<p>(6.844e-006s)</p> +<p> + </p> + </td> +<td> + <p> + NA + </p> + </td> +</tr> +<tr> +<td> + <p> + <a class="link" href="../dist/dist_ref/dists/nc_t_dist.html" title="Noncentral T Distribution">noncentral + T distribution</a> Quantile + </p> + </td> +<td> + <p> + </p> +<p>1.57</p> +<p> </p> +<p>(9.265e-004s)</p> +<p> + </p> + </td> +<td> + <p> + </p> +<p><span class="bold"><strong>1.00</strong></span><sup>[<a name="math_toolkit.perf.comparisons.f11" href="#ftn.math_toolkit.perf.comparisons.f11" class="footnote">5</a>]</sup></p> +<p> </p> +<p>(5.916e-004s)</p> +<p> + </p> + </td> +<td> + <p> + NA + </p> + </td> +</tr> +<tr> +<td> + <p> + <a class="link" href="../dist/dist_ref/dists/normal_dist.html" title="Normal (Gaussian) Distribution">Normal + Distribution</a> CDF + </p> + </td> +<td> + <p> + </p> +<p><span class="bold"><strong>1.00</strong></span></p> +<p> </p> +<p>(1.074e-007s)</p> +<p> + </p> + </td> +<td> + <p> + </p> +<p>1.16</p> +<p> </p> +<p>(1.245e-007s)</p> +<p> + </p> + </td> +<td> + <p> + </p> +<p>5.36</p> +<p> </p> +<p>(5.762e-007s)</p> +<p> + </p> + </td> +</tr> +<tr> +<td> + <p> + <a class="link" href="../dist/dist_ref/dists/normal_dist.html" title="Normal (Gaussian) Distribution">Normal + Distribution</a> Quantile + </p> + </td> +<td> + <p> + </p> +<p>1.28</p> +<p> </p> +<p>(1.902e-007s)</p> +<p> + </p> + </td> +<td> + <p> + </p> +<p><span class="bold"><strong>1.00</strong></span></p> +<p> </p> +<p>(1.490e-007s)</p> +<p> + </p> + </td> +<td> + <p> + </p> +<p>10.35</p> +<p> </p> +<p>(1.542e-006s)</p> +<p> + </p> + </td> +</tr> +<tr> +<td> + <p> + <a class="link" href="../dist/dist_ref/dists/poisson_dist.html" title="Poisson Distribution">Poisson + Distribution</a> CDF + </p> + </td> +<td> + <p> + </p> +<p>2.43</p> +<p> </p> +<p>(1.198e-006s)</p> +<p> + </p> + </td> +<td> + <p> + </p> +<p>2.25</p> +<p> </p> +<p>(1.110e-006s)</p> +<p> + </p> + </td> +<td> + <p> + </p> +<p><span class="bold"><strong>1.00</strong></span></p> +<p> </p> +<p>(4.937e-007s)</p> +<p> + </p> + </td> +</tr> +<tr> +<td> + <p> + <a class="link" href="../dist/dist_ref/dists/poisson_dist.html" title="Poisson Distribution">Poisson + Distribution</a> + </p> + </td> +<td> + <p> + </p> +<p>1.11</p> +<p> </p> +<p>(3.032e-006s)</p> +<p> + </p> + </td> +<td> + <p> + </p> +<p><span class="bold"><strong>1.00</strong></span></p> +<p> </p> +<p>(2.724e-006s)</p> +<p> + </p> + </td> +<td> + <p> + </p> +<p>4.07</p> +<p> </p> +<p>(1.110e-005s)</p> +<p> + </p> + </td> +</tr> +<tr> +<td> + <p> + <a class="link" href="../dist/dist_ref/dists/students_t_dist.html" title="Students t Distribution">Students + t Distribution</a> CDF + </p> + </td> +<td> + <p> + </p> +<p>2.17</p> +<p> </p> +<p>(2.020e-006s)</p> +<p> + </p> + </td> +<td> + <p> + </p> +<p><span class="bold"><strong>1.00</strong></span></p> +<p> </p> +<p>(9.321e-007s)</p> +<p> + </p> + </td> +<td> + <p> + </p> +<p>1.10</p> +<p> </p> +<p>(1.021e-006s)</p> +<p> + </p> + </td> +</tr> +<tr> +<td> + <p> + <a class="link" href="../dist/dist_ref/dists/students_t_dist.html" title="Students t Distribution">Students + t Distribution</a> Quantile + </p> + </td> +<td> + <p> + </p> +<p>1.18</p> +<p> </p> +<p>(3.972e-006s)</p> +<p> + </p> + </td> +<td> + <p> + </p> +<p><span class="bold"><strong>1.00</strong></span></p> +<p> </p> +<p>(3.364e-006s)</p> +<p> + </p> + </td> +<td> + <p> + </p> +<p>3.89</p> +<p> </p> +<p>(1.308e-005s)</p> +<p> + </p> + </td> +</tr> +<tr> +<td> + <p> + <a class="link" href="../dist/dist_ref/dists/weibull_dist.html" title="Weibull Distribution">Weibull + Distribution</a> CDF + </p> + </td> +<td> + <p> + </p> +<p><span class="bold"><strong>1.00</strong></span></p> +<p> </p> +<p>(3.662e-007s)</p> +<p> + </p> + </td> +<td> + <p> + </p> +<p>1.04</p> +<p> </p> +<p>(3.808e-007s)</p> +<p> + </p> + </td> +<td> + <p> + NA + </p> + </td> +</tr> +<tr> +<td> + <p> + <a class="link" href="../dist/dist_ref/dists/weibull_dist.html" title="Weibull Distribution">Weibull + Distribution</a> Quantile + </p> + </td> +<td> + <p> + </p> +<p><span class="bold"><strong>1.00</strong></span></p> +<p> </p> +<p>(4.112e-007s)</p> +<p> + </p> + </td> +<td> + <p> + </p> +<p>1.05</p> +<p> </p> +<p>(4.317e-007s)</p> +<p> + </p> + </td> +<td> + <p> + NA + </p> + </td> +</tr> +</tbody> +<tbody class="footnotes"><tr><td colspan="4"> +<div class="footnote"><p><sup>[<a id="ftn.math_toolkit.perf.comparisons.f7" href="#math_toolkit.perf.comparisons.f7" class="para">1</a>] </sup> + There are a small number of our test cases where the R library + fails to converge on a result: these tend to dominate the performance + result. + </p></div> +<div class="footnote"><p><sup>[<a id="ftn.math_toolkit.perf.comparisons.f8" href="#math_toolkit.perf.comparisons.f8" class="para">2</a>] </sup> + This result is somewhat misleading: for small values of the parameters + there is virtually no difference between the two libraries, but + for large values the Boost implementation is <span class="emphasis"><em>much</em></span> + slower, albeit with much improved precision. + </p></div> +<div class="footnote"><p><sup>[<a id="ftn.math_toolkit.perf.comparisons.f9" href="#math_toolkit.perf.comparisons.f9" class="para">3</a>] </sup> + The R library appears to use a linear-search strategy, that can + perform very badly in a small number of pathological cases, but + may or may not be more efficient in "typical" cases + </p></div> +<div class="footnote"><p><sup>[<a id="ftn.math_toolkit.perf.comparisons.f10" href="#math_toolkit.perf.comparisons.f10" class="para">4</a>] </sup> + There are a small number of our test cases where the R library + fails to converge on a result: these tend to dominate the performance + result. + </p></div> +<div class="footnote"><p><sup>[<a id="ftn.math_toolkit.perf.comparisons.f11" href="#math_toolkit.perf.comparisons.f11" class="para">5</a>] </sup> + There are a small number of our test cases where the R library + fails to converge on a result: these tend to dominate the performance + result. + </p></div> +</td></tr></tbody> +</table></div> +</div> +<br class="table-break"> +</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 © 2006-2010 John Maddock, Paul A. Bristow, Hubert Holin, Xiaogang Zhang, Bruno + Lalande, Johan Rå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="tuning.html"><img src="../../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../perf.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="perf_test_app.html"><img src="../../../../../../../doc/src/images/next.png" alt="Next"></a> +</div> +</body> +</html> diff --git a/libs/math/doc/sf_and_dist/html/math_toolkit/perf/getting_best.html b/libs/math/doc/sf_and_dist/html/math_toolkit/perf/getting_best.html new file mode 100644 index 0000000000..c5db0e415f --- /dev/null +++ b/libs/math/doc/sf_and_dist/html/math_toolkit/perf/getting_best.html @@ -0,0 +1,294 @@ +<html> +<head> +<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII"> +<title>Getting the Best Performance from this Library</title> +<link rel="stylesheet" href="../../../../../../../doc/src/boostbook.css" type="text/css"> +<meta name="generator" content="DocBook XSL Stylesheets V1.76.1"> +<link rel="home" href="../../index.html" title="Math Toolkit"> +<link rel="up" href="../perf.html" title="Performance"> +<link rel="prev" href="interp.html" title="Interpreting these Results"> +<link rel="next" href="comp_compilers.html" title="Comparing Compilers"> +</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="interp.html"><img src="../../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../perf.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="comp_compilers.html"><img src="../../../../../../../doc/src/images/next.png" alt="Next"></a> +</div> +<div class="section math_toolkit_perf_getting_best"> +<div class="titlepage"><div><div><h3 class="title"> +<a name="math_toolkit.perf.getting_best"></a><a class="link" href="getting_best.html" title="Getting the Best Performance from this Library">Getting the Best Performance + from this Library</a> +</h3></div></div></div> +<p> + By far the most important thing you can do when using this library is turn + on your compiler's optimisation options. As the following table shows the + penalty for using the library in debug mode can be quite large. + </p> +<div class="table"> +<a name="math_toolkit.perf.getting_best.performance_comparison_of_release_and_debug_settings"></a><p class="title"><b>Table 51. Performance Comparison of Release and Debug Settings</b></p> +<div class="table-contents"><table class="table" summary="Performance Comparison of Release and Debug Settings"> +<colgroup> +<col> +<col> +<col> +</colgroup> +<thead><tr> +<th> + <p> + Function + </p> + </th> +<th> + <p> + Microsoft Visual C++ 8.0 + </p> + <p> + Debug Settings: /Od /ZI + </p> + </th> +<th> + <p> + Microsoft Visual C++ 8.0 + </p> + <p> + Release settings: /Ox /arch:SSE2 + </p> + </th> +</tr></thead> +<tbody> +<tr> +<td> + <p> + <a class="link" href="../special/sf_erf/error_function.html" title="Error Functions">erf</a> + </p> + </td> +<td> + <p> + </p> +<p>16.65</p> +<p> </p> +<p>(1.028e-006s)</p> +<p> + </p> + </td> +<td> + <p> + </p> +<p><span class="bold"><strong>1.00</strong></span></p> +<p> </p> +<p>(1.483e-007s)</p> +<p> + </p> + </td> +</tr> +<tr> +<td> + <p> + <a class="link" href="../special/sf_erf/error_inv.html" title="Error Function Inverses">erf_inv</a> + </p> + </td> +<td> + <p> + </p> +<p>19.28</p> +<p> </p> +<p>(1.215e-006s)</p> +<p> + </p> + </td> +<td> + <p> + </p> +<p><span class="bold"><strong>1.00</strong></span></p> +<p> </p> +<p>(4.888e-007s)</p> +<p> + </p> + </td> +</tr> +<tr> +<td> + <p> + <a class="link" href="../special/sf_beta/ibeta_function.html" title="Incomplete Beta Functions">ibeta</a> + and <a class="link" href="../special/sf_beta/ibeta_function.html" title="Incomplete Beta Functions">ibetac</a> + </p> + </td> +<td> + <p> + </p> +<p>8.32</p> +<p> </p> +<p>(1.540e-005s)</p> +<p> + </p> + </td> +<td> + <p> + </p> +<p><span class="bold"><strong>1.00</strong></span></p> +<p> </p> +<p>(1.852e-006s)</p> +<p> + </p> + </td> +</tr> +<tr> +<td> + <p> + <a class="link" href="../special/sf_beta/ibeta_inv_function.html" title="The Incomplete Beta Function Inverses">ibeta_inv</a> + and <a class="link" href="../special/sf_beta/ibeta_inv_function.html" title="The Incomplete Beta Function Inverses">ibetac_inv</a> + </p> + </td> +<td> + <p> + </p> +<p>10.25</p> +<p> </p> +<p>(7.492e-005s)</p> +<p> + </p> + </td> +<td> + <p> + </p> +<p><span class="bold"><strong>1.00</strong></span></p> +<p> </p> +<p>(7.311e-006s)</p> +<p> + </p> + </td> +</tr> +<tr> +<td> + <p> + <a class="link" href="../special/sf_beta/ibeta_inv_function.html" title="The Incomplete Beta Function Inverses">ibeta_inva</a>, + <a class="link" href="../special/sf_beta/ibeta_inv_function.html" title="The Incomplete Beta Function Inverses">ibetac_inva</a>, + <a class="link" href="../special/sf_beta/ibeta_inv_function.html" title="The Incomplete Beta Function Inverses">ibeta_invb</a> + and <a class="link" href="../special/sf_beta/ibeta_inv_function.html" title="The Incomplete Beta Function Inverses">ibetac_invb</a> + </p> + </td> +<td> + <p> + </p> +<p>8.57</p> +<p> </p> +<p>(2.441e-004s)</p> +<p> + </p> + </td> +<td> + <p> + </p> +<p><span class="bold"><strong>1.00</strong></span></p> +<p> </p> +<p>(2.847e-005s)</p> +<p> + </p> + </td> +</tr> +<tr> +<td> + <p> + <a class="link" href="../special/sf_gamma/igamma.html" title="Incomplete Gamma Functions">gamma_p</a> + and <a class="link" href="../special/sf_gamma/igamma.html" title="Incomplete Gamma Functions">gamma_q</a> + </p> + </td> +<td> + <p> + </p> +<p>10.98</p> +<p> </p> +<p>(1.044e-005s)</p> +<p> + </p> + </td> +<td> + <p> + </p> +<p><span class="bold"><strong>1.00</strong></span></p> +<p> </p> +<p>(9.504e-007s)</p> +<p> + </p> + </td> +</tr> +<tr> +<td> + <p> + <a class="link" href="../special/sf_gamma/igamma_inv.html" title="Incomplete Gamma Function Inverses">gamma_p_inv</a> + and <a class="link" href="../special/sf_gamma/igamma_inv.html" title="Incomplete Gamma Function Inverses">gamma_q_inv</a> + </p> + </td> +<td> + <p> + </p> +<p>10.25</p> +<p> </p> +<p>(3.721e-005s)</p> +<p> + </p> + </td> +<td> + <p> + </p> +<p><span class="bold"><strong>1.00</strong></span></p> +<p> </p> +<p>(3.631e-006s)</p> +<p> + </p> + </td> +</tr> +<tr> +<td> + <p> + <a class="link" href="../special/sf_gamma/igamma_inv.html" title="Incomplete Gamma Function Inverses">gamma_p_inva</a> + and <a class="link" href="../special/sf_gamma/igamma_inv.html" title="Incomplete Gamma Function Inverses">gamma_q_inva</a> + </p> + </td> +<td> + <p> + </p> +<p>11.26</p> +<p> </p> +<p>(1.124e-004s)</p> +<p> + </p> + </td> +<td> + <p> + </p> +<p><span class="bold"><strong>1.00</strong></span></p> +<p> </p> +<p>(9.982e-006s)</p> +<p> + </p> + </td> +</tr> +</tbody> +</table></div> +</div> +<br class="table-break"> +</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 © 2006-2010 John Maddock, Paul A. Bristow, Hubert Holin, Xiaogang Zhang, Bruno + Lalande, Johan Rå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="interp.html"><img src="../../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../perf.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="comp_compilers.html"><img src="../../../../../../../doc/src/images/next.png" alt="Next"></a> +</div> +</body> +</html> diff --git a/libs/math/doc/sf_and_dist/html/math_toolkit/perf/interp.html b/libs/math/doc/sf_and_dist/html/math_toolkit/perf/interp.html new file mode 100644 index 0000000000..1731d6d0da --- /dev/null +++ b/libs/math/doc/sf_and_dist/html/math_toolkit/perf/interp.html @@ -0,0 +1,81 @@ +<html> +<head> +<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII"> +<title>Interpreting these Results</title> +<link rel="stylesheet" href="../../../../../../../doc/src/boostbook.css" type="text/css"> +<meta name="generator" content="DocBook XSL Stylesheets V1.76.1"> +<link rel="home" href="../../index.html" title="Math Toolkit"> +<link rel="up" href="../perf.html" title="Performance"> +<link rel="prev" href="perf_over.html" title="Performance Overview"> +<link rel="next" href="getting_best.html" title="Getting the Best Performance from this Library"> +</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="perf_over.html"><img src="../../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../perf.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="getting_best.html"><img src="../../../../../../../doc/src/images/next.png" alt="Next"></a> +</div> +<div class="section math_toolkit_perf_interp"> +<div class="titlepage"><div><div><h3 class="title"> +<a name="math_toolkit.perf.interp"></a><a class="link" href="interp.html" title="Interpreting these Results">Interpreting these Results</a> +</h3></div></div></div> +<p> + In all of the following tables, the best performing result in each row, is + assigned a relative value of "1" and shown in bold, so a score + of "2" means <span class="emphasis"><em>"twice as slow as the best performing + result".</em></span> Actual timings in seconds per function call are + also shown in parenthesis. + </p> +<p> + Result were obtained on a system with an Intel 2.8GHz Pentium 4 processor + with 2Gb of RAM and running either Windows XP or Mandriva Linux. + </p> +<div class="caution"><table border="0" summary="Caution"> +<tr> +<td rowspan="2" align="center" valign="top" width="25"><img alt="[Caution]" src="../../../../../../../doc/src/images/caution.png"></td> +<th align="left">Caution</th> +</tr> +<tr><td align="left" valign="top"><p> + As usual with performance results these should be taken with a large pinch + of salt: relative performance is known to shift quite a bit depending upon + the architecture of the particular test system used. Further more, our + performance results were obtained using our own test data: these test values + are designed to provide good coverage of our code and test all the appropriate + corner cases. They do not necessarily represent "typical" usage: + whatever that may be! + </p></td></tr> +</table></div> +<div class="note"><table border="0" summary="Note"> +<tr> +<td rowspan="2" align="center" valign="top" width="25"><img alt="[Note]" src="../../../../../../../doc/src/images/note.png"></td> +<th align="left">Note</th> +</tr> +<tr><td align="left" valign="top"><p> + Since these tests were run, most compilers have improved their code optimisation, + and processor speeds have improved too, so these results are known to be + out of date. + </p></td></tr> +</table></div> +</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 © 2006-2010 John Maddock, Paul A. Bristow, Hubert Holin, Xiaogang Zhang, Bruno + Lalande, Johan Rå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="perf_over.html"><img src="../../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../perf.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="getting_best.html"><img src="../../../../../../../doc/src/images/next.png" alt="Next"></a> +</div> +</body> +</html> diff --git a/libs/math/doc/sf_and_dist/html/math_toolkit/perf/perf_over.html b/libs/math/doc/sf_and_dist/html/math_toolkit/perf/perf_over.html new file mode 100644 index 0000000000..ca256d87cb --- /dev/null +++ b/libs/math/doc/sf_and_dist/html/math_toolkit/perf/perf_over.html @@ -0,0 +1,81 @@ +<html> +<head> +<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII"> +<title>Performance Overview</title> +<link rel="stylesheet" href="../../../../../../../doc/src/boostbook.css" type="text/css"> +<meta name="generator" content="DocBook XSL Stylesheets V1.76.1"> +<link rel="home" href="../../index.html" title="Math Toolkit"> +<link rel="up" href="../perf.html" title="Performance"> +<link rel="prev" href="../perf.html" title="Performance"> +<link rel="next" href="interp.html" title="Interpreting these Results"> +</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="../perf.html"><img src="../../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../perf.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="interp.html"><img src="../../../../../../../doc/src/images/next.png" alt="Next"></a> +</div> +<div class="section math_toolkit_perf_perf_over"> +<div class="titlepage"><div><div><h3 class="title"> +<a name="math_toolkit.perf.perf_over"></a><a class="link" href="perf_over.html" title="Performance Overview">Performance Overview</a> +</h3></div></div></div> +<p> + By and large the performance of this library should be acceptable for most + needs. However, you should note that this library's primary emphasis is on + accuracy and numerical stability, and <span class="emphasis"><em>not</em></span> speed. + </p> +<p> + In terms of the algorithms used, this library aims to use the same "best + of breed" algorithms as many other libraries: the principle difference + is that this library is implemented in C++ - taking advantage of all the + abstraction mechanisms that C++ offers - where as most traditional numeric + libraries are implemented in C or FORTRAN. Traditionally languages such as + C or FORTRAN are perceived as easier to optimise than more complex languages + like C++, so in a sense this library provides a good test of current compiler + technology, and the "abstraction penalty" - if any - of C++ compared + to other languages. + </p> +<p> + The two most important things you can do to ensure the best performance from + this library are: + </p> +<div class="orderedlist"><ol class="orderedlist" type="1"> +<li class="listitem"> + Turn on your compilers optimisations: the difference between "release" + and "debug" builds can easily be a <a class="link" href="getting_best.html" title="Getting the Best Performance from this Library">factor + of 20</a>. + </li> +<li class="listitem"> + Pick your compiler carefully: <a class="link" href="comp_compilers.html" title="Comparing Compilers">performance + differences of up to 8 fold</a> have been found between some Windows + compilers for example. + </li> +</ol></div> +<p> + The <a class="link" href="../perf.html" title="Performance">performance section</a> contains + more information on the performance of this library, what you can do to fine + tune it, and how this library compares to some other open source alternatives. + </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 © 2006-2010 John Maddock, Paul A. Bristow, Hubert Holin, Xiaogang Zhang, Bruno + Lalande, Johan Rå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="../perf.html"><img src="../../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../perf.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="interp.html"><img src="../../../../../../../doc/src/images/next.png" alt="Next"></a> +</div> +</body> +</html> diff --git a/libs/math/doc/sf_and_dist/html/math_toolkit/perf/perf_test_app.html b/libs/math/doc/sf_and_dist/html/math_toolkit/perf/perf_test_app.html new file mode 100644 index 0000000000..8dd6928e11 --- /dev/null +++ b/libs/math/doc/sf_and_dist/html/math_toolkit/perf/perf_test_app.html @@ -0,0 +1,63 @@ +<html> +<head> +<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII"> +<title>The Performance Test Application</title> +<link rel="stylesheet" href="../../../../../../../doc/src/boostbook.css" type="text/css"> +<meta name="generator" content="DocBook XSL Stylesheets V1.76.1"> +<link rel="home" href="../../index.html" title="Math Toolkit"> +<link rel="up" href="../perf.html" title="Performance"> +<link rel="prev" href="comparisons.html" title="Comparisons to Other Open Source Libraries"> +<link rel="next" href="../backgrounders.html" title="Backgrounders"> +</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="comparisons.html"><img src="../../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../perf.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="../backgrounders.html"><img src="../../../../../../../doc/src/images/next.png" alt="Next"></a> +</div> +<div class="section math_toolkit_perf_perf_test_app"> +<div class="titlepage"><div><div><h3 class="title"> +<a name="math_toolkit.perf.perf_test_app"></a><a class="link" href="perf_test_app.html" title="The Performance Test Application">The Performance Test + Application</a> +</h3></div></div></div> +<p> + Under <span class="emphasis"><em>boost-path</em></span>/libs/math/performance you will find + a (fairly rudimentary) performance test application for this library. + </p> +<p> + To run this application yourself, build the all the .cpp files in <span class="emphasis"><em>boost-path</em></span>/libs/math/performance + into an application using your usual release-build settings. Run the application + with --help to see a full list of options, or with --all to test everything + (which takes quite a while), or with --tune to test the <a class="link" href="tuning.html" title="Performance Tuning Macros">available + performance tuning options</a>. + </p> +<p> + If you want to use this application to test the effect of changing any of + the <a class="link" href="../policy.html" title="Policies">Policies</a>, then you will need + to build and run it twice: once with the default <a class="link" href="../policy.html" title="Policies">Policies</a>, + and then a second time with the <a class="link" href="../policy.html" title="Policies">Policies</a> + you want to test set as the default. + </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 © 2006-2010 John Maddock, Paul A. Bristow, Hubert Holin, Xiaogang Zhang, Bruno + Lalande, Johan Rå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="comparisons.html"><img src="../../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../perf.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="../backgrounders.html"><img src="../../../../../../../doc/src/images/next.png" alt="Next"></a> +</div> +</body> +</html> diff --git a/libs/math/doc/sf_and_dist/html/math_toolkit/perf/tuning.html b/libs/math/doc/sf_and_dist/html/math_toolkit/perf/tuning.html new file mode 100644 index 0000000000..7d158c04fd --- /dev/null +++ b/libs/math/doc/sf_and_dist/html/math_toolkit/perf/tuning.html @@ -0,0 +1,901 @@ +<html> +<head> +<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII"> +<title>Performance Tuning Macros</title> +<link rel="stylesheet" href="../../../../../../../doc/src/boostbook.css" type="text/css"> +<meta name="generator" content="DocBook XSL Stylesheets V1.76.1"> +<link rel="home" href="../../index.html" title="Math Toolkit"> +<link rel="up" href="../perf.html" title="Performance"> +<link rel="prev" href="comp_compilers.html" title="Comparing Compilers"> +<link rel="next" href="comparisons.html" title="Comparisons to Other Open Source Libraries"> +</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="comp_compilers.html"><img src="../../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../perf.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="comparisons.html"><img src="../../../../../../../doc/src/images/next.png" alt="Next"></a> +</div> +<div class="section math_toolkit_perf_tuning"> +<div class="titlepage"><div><div><h3 class="title"> +<a name="math_toolkit.perf.tuning"></a><a class="link" href="tuning.html" title="Performance Tuning Macros">Performance Tuning Macros</a> +</h3></div></div></div> +<p> + There are a small number of performance tuning options that are determined + by configuration macros. These should be set in boost/math/tools/user.hpp; + or else reported to the Boost-development mailing list so that the appropriate + option for a given compiler and OS platform can be set automatically in our + configuration setup. + </p> +<div class="informaltable"><table class="table"> +<colgroup> +<col> +<col> +</colgroup> +<thead><tr> +<th> + <p> + Macro + </p> + </th> +<th> + <p> + Meaning + </p> + </th> +</tr></thead> +<tbody> +<tr> +<td> + <p> + BOOST_MATH_POLY_METHOD + </p> + </td> +<td> + <p> + Determines how polynomials and most rational functions are evaluated. + Define to one of the values 0, 1, 2 or 3: see below for the meaning + of these values. + </p> + </td> +</tr> +<tr> +<td> + <p> + BOOST_MATH_RATIONAL_METHOD + </p> + </td> +<td> + <p> + Determines how symmetrical rational functions are evaluated: mostly + this only effects how the Lanczos approximation is evaluated, and + how the <code class="computeroutput"><span class="identifier">evaluate_rational</span></code> + function behaves. Define to one of the values 0, 1, 2 or 3: see + below for the meaning of these values. + </p> + </td> +</tr> +<tr> +<td> + <p> + BOOST_MATH_MAX_POLY_ORDER + </p> + </td> +<td> + <p> + The maximum order of polynomial or rational function that will + be evaluated by a method other than 0 (a simple "for" + loop). + </p> + </td> +</tr> +<tr> +<td> + <p> + BOOST_MATH_INT_TABLE_TYPE(RT, IT) + </p> + </td> +<td> + <p> + Many of the coefficients to the polynomials and rational functions + used by this library are integers. Normally these are stored as + tables as integers, but if mixed integer / floating point arithmetic + is much slower than regular floating point arithmetic then they + can be stored as tables of floating point values instead. If mixed + arithmetic is slow then add: + </p> + <p> + #define BOOST_MATH_INT_TABLE_TYPE(RT, IT) RT + </p> + <p> + to boost/math/tools/user.hpp, otherwise the default of: + </p> + <p> + #define BOOST_MATH_INT_TABLE_TYPE(RT, IT) IT + </p> + <p> + Set in boost/math/config.hpp is fine, and may well result in smaller + code. + </p> + </td> +</tr> +</tbody> +</table></div> +<p> + The values to which <code class="computeroutput"><span class="identifier">BOOST_MATH_POLY_METHOD</span></code> + and <code class="computeroutput"><span class="identifier">BOOST_MATH_RATIONAL_METHOD</span></code> + may be set are as follows: + </p> +<div class="informaltable"><table class="table"> +<colgroup> +<col> +<col> +</colgroup> +<thead><tr> +<th> + <p> + Value + </p> + </th> +<th> + <p> + Effect + </p> + </th> +</tr></thead> +<tbody> +<tr> +<td> + <p> + 0 + </p> + </td> +<td> + <p> + The polynomial or rational function is evaluated using Horner's + method, and a simple for-loop. + </p> + <p> + Note that if the order of the polynomial or rational function is + a runtime parameter, or the order is greater than the value of + <code class="computeroutput"><span class="identifier">BOOST_MATH_MAX_POLY_ORDER</span></code>, + then this method is always used, irrespective of the value of + <code class="computeroutput"><span class="identifier">BOOST_MATH_POLY_METHOD</span></code> + or <code class="computeroutput"><span class="identifier">BOOST_MATH_RATIONAL_METHOD</span></code>. + </p> + </td> +</tr> +<tr> +<td> + <p> + 1 + </p> + </td> +<td> + <p> + The polynomial or rational function is evaluated without the use + of a loop, and using Horner's method. This only occurs if the order + of the polynomial is known at compile time and is less than or + equal to <code class="computeroutput"><span class="identifier">BOOST_MATH_MAX_POLY_ORDER</span></code>. + </p> + </td> +</tr> +<tr> +<td> + <p> + 2 + </p> + </td> +<td> + <p> + The polynomial or rational function is evaluated without the use + of a loop, and using a second order Horner's method. In theory + this permits two operations to occur in parallel for polynomials, + and four in parallel for rational functions. This only occurs if + the order of the polynomial is known at compile time and is less + than or equal to <code class="computeroutput"><span class="identifier">BOOST_MATH_MAX_POLY_ORDER</span></code>. + </p> + </td> +</tr> +<tr> +<td> + <p> + 3 + </p> + </td> +<td> + <p> + The polynomial or rational function is evaluated without the use + of a loop, and using a second order Horner's method. In theory + this permits two operations to occur in parallel for polynomials, + and four in parallel for rational functions. This differs from + method "2" in that the code is carefully ordered to make + the parallelisation more obvious to the compiler: rather than relying + on the compiler's optimiser to spot the parallelisation opportunities. + This only occurs if the order of the polynomial is known at compile + time and is less than or equal to <code class="computeroutput"><span class="identifier">BOOST_MATH_MAX_POLY_ORDER</span></code>. + </p> + </td> +</tr> +</tbody> +</table></div> +<p> + To determine which of these options is best for your particular compiler/platform + build the performance test application with your usual release settings, + and run the program with the --tune command line option. + </p> +<p> + In practice the difference between methods is rather small at present, as + the following table shows. However, parallelisation /vectorisation is likely + to become more important in the future: quite likely the methods currently + supported will need to be supplemented or replaced by ones more suited to + highly vectorisable processors in the future. + </p> +<div class="table"> +<a name="math_toolkit.perf.tuning.a_comparison_of_polynomial_evaluation_methods"></a><p class="title"><b>Table 53. A Comparison of Polynomial Evaluation Methods</b></p> +<div class="table-contents"><table class="table" summary="A Comparison of Polynomial Evaluation Methods"> +<colgroup> +<col> +<col> +<col> +<col> +<col> +</colgroup> +<thead><tr> +<th> + <p> + Compiler/platform + </p> + </th> +<th> + <p> + Method 0 + </p> + </th> +<th> + <p> + Method 1 + </p> + </th> +<th> + <p> + Method 2 + </p> + </th> +<th> + <p> + Method 3 + </p> + </th> +</tr></thead> +<tbody> +<tr> +<td> + <p> + Microsoft C++ 9.0, Polynomial evaluation + </p> + </td> +<td> + <p> + </p> +<p>1.26</p> +<p> </p> +<p>(7.421e-008s)</p> +<p> + </p> + </td> +<td> + <p> + </p> +<p>1.22</p> +<p> </p> +<p>(7.226e-008s)</p> +<p> + </p> + </td> +<td> + <p> + </p> +<p><span class="bold"><strong>1.00</strong></span></p> +<p> </p> +<p>(5.901e-008s)</p> +<p> + </p> + </td> +<td> + <p> + </p> +<p>1.04</p> +<p> </p> +<p>(6.115e-008s)</p> +<p> + </p> + </td> +</tr> +<tr> +<td> + <p> + Microsoft C++ 9.0, Rational evaluation + </p> + </td> +<td> + <p> + </p> +<p><span class="bold"><strong>1.00</strong></span></p> +<p> </p> +<p>(1.008e-007s)</p> +<p> + </p> + </td> +<td> + <p> + </p> +<p><span class="bold"><strong>1.00</strong></span></p> +<p> </p> +<p>(1.008e-007s)</p> +<p> + </p> + </td> +<td> + <p> + </p> +<p>1.43</p> +<p> </p> +<p>(1.445e-007s)</p> +<p> + </p> + </td> +<td> + <p> + </p> +<p>1.40</p> +<p> </p> +<p>(1.409e-007s)</p> +<p> + </p> + </td> +</tr> +<tr> +<td> + <p> + Intel C++ 11.1 (Windows), Polynomial evaluation + </p> + </td> +<td> + <p> + </p> +<p>1.18</p> +<p> </p> +<p>(6.517e-008s)</p> +<p> + </p> + </td> +<td> + <p> + </p> +<p>1.18</p> +<p> </p> +<p>(6.505e-008s)</p> +<p> + </p> + </td> +<td> + <p> + </p> +<p><span class="bold"><strong>1.00</strong></span></p> +<p> </p> +<p>(5.516e-008s)</p> +<p> + </p> + </td> +<td> + <p> + </p> +<p><span class="bold"><strong>1.00</strong></span></p> +<p> </p> +<p>(5.516e-008s)</p> +<p> + </p> + </td> +</tr> +<tr> +<td> + <p> + Intel C++ 11.1 (Windows), Rational evaluation + </p> + </td> +<td> + <p> + </p> +<p><span class="bold"><strong>1.00</strong></span></p> +<p> </p> +<p>(8.947e-008s)</p> +<p> + </p> + </td> +<td> + <p> + </p> +<p>1.02</p> +<p> </p> +<p>(9.130e-008s)</p> +<p> + </p> + </td> +<td> + <p> + </p> +<p>1.49</p> +<p> </p> +<p>(1.333e-007s)</p> +<p> + </p> + </td> +<td> + <p> + </p> +<p>1.04</p> +<p> </p> +<p>(9.325e-008s)</p> +<p> + </p> + </td> +</tr> +<tr> +<td> + <p> + GNU G++ 4.2 (Linux), Polynomial evaluation + </p> + </td> +<td> + <p> + </p> +<p>1.61</p> +<p> </p> +<p>(1.220e-007s)</p> +<p> + </p> + </td> +<td> + <p> + </p> +<p>1.68</p> +<p> </p> +<p>(1.269e-007s)</p> +<p> + </p> + </td> +<td> + <p> + </p> +<p>1.23</p> +<p> </p> +<p>(9.275e-008s)</p> +<p> + </p> + </td> +<td> + <p> + </p> +<p><span class="bold"><strong>1.00</strong></span></p> +<p> </p> +<p>(7.566e-008s)</p> +<p> + </p> + </td> +</tr> +<tr> +<td> + <p> + GNU G++ 4.2 (Linux), Rational evaluation + </p> + </td> +<td> + <p> + </p> +<p>1.26</p> +<p> </p> +<p>(1.660e-007s)</p> +<p> + </p> + </td> +<td> + <p> + </p> +<p>1.33</p> +<p> </p> +<p>(1.758e-007s)</p> +<p> + </p> + </td> +<td> + <p> + </p> +<p><span class="bold"><strong>1.00</strong></span></p> +<p> </p> +<p>(1.318e-007s)</p> +<p> + </p> + </td> +<td> + <p> + </p> +<p>1.15</p> +<p> </p> +<p>(1.513e-007s)</p> +<p> + </p> + </td> +</tr> +<tr> +<td> + <p> + Intel C++ 10.0 (Linux), Polynomial evaluation + </p> + </td> +<td> + <p> + </p> +<p>1.15</p> +<p> </p> +<p>(9.154e-008s)</p> +<p> + </p> + </td> +<td> + <p> + </p> +<p>1.15</p> +<p> </p> +<p>(9.154e-008s)</p> +<p> + </p> + </td> +<td> + <p> + </p> +<p><span class="bold"><strong>1.00</strong></span></p> +<p> </p> +<p>(7.934e-008s)</p> +<p> + </p> + </td> +<td> + <p> + </p> +<p><span class="bold"><strong>1.00</strong></span></p> +<p> </p> +<p>(7.934e-008s)</p> +<p> + </p> + </td> +</tr> +<tr> +<td> + <p> + Intel C++ 10.0 (Linux), Rational evaluation + </p> + </td> +<td> + <p> + </p> +<p><span class="bold"><strong>1.00</strong></span></p> +<p> </p> +<p>(1.245e-007s)</p> +<p> + </p> + </td> +<td> + <p> + </p> +<p><span class="bold"><strong>1.00</strong></span></p> +<p> </p> +<p>(1.245e-007s)</p> +<p> + </p> + </td> +<td> + <p> + </p> +<p>1.35</p> +<p> </p> +<p>(1.684e-007s)</p> +<p> + </p> + </td> +<td> + <p> + </p> +<p>1.04</p> +<p> </p> +<p>(1.294e-007s)</p> +<p> + </p> + </td> +</tr> +</tbody> +</table></div> +</div> +<br class="table-break"><p> + There is one final performance tuning option that is available as a compile + time <a class="link" href="../policy.html" title="Policies">policy</a>. Normally when evaluating + functions at <code class="computeroutput"><span class="keyword">double</span></code> precision, + these are actually evaluated at <code class="computeroutput"><span class="keyword">long</span> + <span class="keyword">double</span></code> precision internally: this + helps to ensure that as close to full <code class="computeroutput"><span class="keyword">double</span></code> + precision as possible is achieved, but may slow down execution in some environments. + The defaults for this policy can be changed by <a class="link" href="../policy/pol_ref/policy_defaults.html" title="Using Macros to Change the Policy Defaults">defining + the macro <code class="computeroutput"><span class="identifier">BOOST_MATH_PROMOTE_DOUBLE_POLICY</span></code></a> + to <code class="computeroutput"><span class="keyword">false</span></code>, or <a class="link" href="../policy/pol_ref/internal_promotion.html" title="Internal Floating-point Promotion Policies">by + specifying a specific policy</a> when calling the special functions or + distributions. See also the <a class="link" href="../policy/pol_tutorial.html" title="Policy Tutorial">policy + tutorial</a>. + </p> +<div class="table"> +<a name="math_toolkit.perf.tuning.performance_comparison_with_and_without_internal_promotion_to_long_double"></a><p class="title"><b>Table 54. Performance Comparison with and Without Internal Promotion to long + double</b></p> +<div class="table-contents"><table class="table" summary="Performance Comparison with and Without Internal Promotion to long + double"> +<colgroup> +<col> +<col> +<col> +</colgroup> +<thead><tr> +<th> + <p> + Function + </p> + </th> +<th> + <p> + GCC 4.2 , Linux + </p> + <p> + (with internal promotion of double to long double). + </p> + </th> +<th> + <p> + GCC 4.2, Linux + </p> + <p> + (without promotion of double). + </p> + </th> +</tr></thead> +<tbody> +<tr> +<td> + <p> + <a class="link" href="../special/sf_erf/error_function.html" title="Error Functions">erf</a> + </p> + </td> +<td> + <p> + </p> +<p>1.48</p> +<p> </p> +<p>(1.387e-007s)</p> +<p> + </p> + </td> +<td> + <p> + </p> +<p><span class="bold"><strong>1.00</strong></span></p> +<p> </p> +<p>(9.377e-008s)</p> +<p> + </p> + </td> +</tr> +<tr> +<td> + <p> + <a class="link" href="../special/sf_erf/error_inv.html" title="Error Function Inverses">erf_inv</a> + </p> + </td> +<td> + <p> + </p> +<p>1.11</p> +<p> </p> +<p>(4.009e-007s)</p> +<p> + </p> + </td> +<td> + <p> + </p> +<p><span class="bold"><strong>1.00</strong></span></p> +<p> </p> +<p>(3.598e-007s)</p> +<p> + </p> + </td> +</tr> +<tr> +<td> + <p> + <a class="link" href="../special/sf_beta/ibeta_function.html" title="Incomplete Beta Functions">ibeta</a> + and <a class="link" href="../special/sf_beta/ibeta_function.html" title="Incomplete Beta Functions">ibetac</a> + </p> + </td> +<td> + <p> + </p> +<p>1.29</p> +<p> </p> +<p>(5.354e-006s)</p> +<p> + </p> + </td> +<td> + <p> + </p> +<p><span class="bold"><strong>1.00</strong></span></p> +<p> </p> +<p>(4.137e-006s)</p> +<p> + </p> + </td> +</tr> +<tr> +<td> + <p> + <a class="link" href="../special/sf_beta/ibeta_inv_function.html" title="The Incomplete Beta Function Inverses">ibeta_inv</a> + and <a class="link" href="../special/sf_beta/ibeta_inv_function.html" title="The Incomplete Beta Function Inverses">ibetac_inv</a> + </p> + </td> +<td> + <p> + </p> +<p>1.44</p> +<p> </p> +<p>(2.220e-005s)</p> +<p> + </p> + </td> +<td> + <p> + </p> +<p><span class="bold"><strong>1.00</strong></span></p> +<p> </p> +<p>(1.538e-005s)</p> +<p> + </p> + </td> +</tr> +<tr> +<td> + <p> + <a class="link" href="../special/sf_beta/ibeta_inv_function.html" title="The Incomplete Beta Function Inverses">ibeta_inva</a>, + <a class="link" href="../special/sf_beta/ibeta_inv_function.html" title="The Incomplete Beta Function Inverses">ibetac_inva</a>, + <a class="link" href="../special/sf_beta/ibeta_inv_function.html" title="The Incomplete Beta Function Inverses">ibeta_invb</a> + and <a class="link" href="../special/sf_beta/ibeta_inv_function.html" title="The Incomplete Beta Function Inverses">ibetac_invb</a> + </p> + </td> +<td> + <p> + </p> +<p>1.25</p> +<p> </p> +<p>(7.009e-005s)</p> +<p> + </p> + </td> +<td> + <p> + </p> +<p><span class="bold"><strong>1.00</strong></span></p> +<p> </p> +<p>(5.607e-005s)</p> +<p> + </p> + </td> +</tr> +<tr> +<td> + <p> + <a class="link" href="../special/sf_gamma/igamma.html" title="Incomplete Gamma Functions">gamma_p</a> + and <a class="link" href="../special/sf_gamma/igamma.html" title="Incomplete Gamma Functions">gamma_q</a> + </p> + </td> +<td> + <p> + </p> +<p>1.26</p> +<p> </p> +<p>(3.116e-006s)</p> +<p> + </p> + </td> +<td> + <p> + </p> +<p><span class="bold"><strong>1.00</strong></span></p> +<p> </p> +<p>(2.464e-006s)</p> +<p> + </p> + </td> +</tr> +<tr> +<td> + <p> + <a class="link" href="../special/sf_gamma/igamma_inv.html" title="Incomplete Gamma Function Inverses">gamma_p_inv</a> + and <a class="link" href="../special/sf_gamma/igamma_inv.html" title="Incomplete Gamma Function Inverses">gamma_q_inv</a> + </p> + </td> +<td> + <p> + </p> +<p>1.27</p> +<p> </p> +<p>(1.178e-005s)</p> +<p> + </p> + </td> +<td> + <p> + </p> +<p><span class="bold"><strong>1.00</strong></span></p> +<p> </p> +<p>(9.291e-006s)</p> +<p> + </p> + </td> +</tr> +<tr> +<td> + <p> + <a class="link" href="../special/sf_gamma/igamma_inv.html" title="Incomplete Gamma Function Inverses">gamma_p_inva</a> + and <a class="link" href="../special/sf_gamma/igamma_inv.html" title="Incomplete Gamma Function Inverses">gamma_q_inva</a> + </p> + </td> +<td> + <p> + </p> +<p>1.20</p> +<p> </p> +<p>(2.765e-005s)</p> +<p> + </p> + </td> +<td> + <p> + </p> +<p><span class="bold"><strong>1.00</strong></span></p> +<p> </p> +<p>(2.311e-005s)</p> +<p> + </p> + </td> +</tr> +</tbody> +</table></div> +</div> +<br class="table-break"> +</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 © 2006-2010 John Maddock, Paul A. Bristow, Hubert Holin, Xiaogang Zhang, Bruno + Lalande, Johan Rå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="comp_compilers.html"><img src="../../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../perf.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="comparisons.html"><img src="../../../../../../../doc/src/images/next.png" alt="Next"></a> +</div> +</body> +</html> |