WSJT-X/boost/libs/math/doc/html/math_toolkit/comp_compilers.html

2413 lines
52 KiB
HTML

<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
<title>Comparing Different Compilers</title>
<link rel="stylesheet" href="../math.css" type="text/css">
<meta name="generator" content="DocBook XSL Stylesheets V1.79.1">
<link rel="home" href="../index.html" title="Math Toolkit 2.5.1">
<link rel="up" href="../perf.html" title="Chapter&#160;16.&#160;Performance">
<link rel="prev" href="tuning.html" title="Performance Tuning Macros">
<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="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="comparisons.html"><img src="../../../../../doc/src/images/next.png" alt="Next"></a>
</div>
<div class="section">
<div class="titlepage"><div><div><h2 class="title" style="clear: both">
<a name="math_toolkit.comp_compilers"></a><a class="link" href="comp_compilers.html" title="Comparing Different Compilers">Comparing Different Compilers</a>
</h2></div></div></div>
<p>
By running our performance test suite multiple times, we can compare the effect
of different compilers: as might be expected, the differences are generally
small compared to say disabling internal use of <code class="computeroutput"><span class="keyword">long</span>
<span class="keyword">double</span></code>. However, there are still gains
to be main, particularly from some of the commercial offerings:
</p>
<div class="table">
<a name="math_toolkit.comp_compilers.table_Compiler_Comparison_on_Windows_x64"></a><p class="title"><b>Table&#160;16.5.&#160;Compiler Comparison on Windows x64</b></p>
<div class="table-contents"><table class="table" summary="Compiler Comparison on Windows x64">
<colgroup>
<col>
<col>
<col>
<col>
<col>
</colgroup>
<thead><tr>
<th>
<p>
Function
</p>
</th>
<th>
<p>
Microsoft Visual C++ version 14.0<br> boost 1.61
</p>
</th>
<th>
<p>
GNU C++ version 5.3.0<br> boost 1.61
</p>
</th>
<th>
<p>
GNU C++ version 5.3.0<br> boost 1.61<br> promote_double&lt;false&gt;
</p>
</th>
<th>
<p>
Intel C++ C++0x mode version 1600<br> boost 1.61
</p>
</th>
</tr></thead>
<tbody>
<tr>
<td>
<p>
assoc_laguerre
</p>
</td>
<td>
<p>
<span class="green">1.16<br> (208ns)</span>
</p>
</td>
<td>
<p>
<span class="blue">1.21<br> (217ns)</span>
</p>
</td>
<td>
<p>
<span class="green">1.06<br> (190ns)</span>
</p>
</td>
<td>
<p>
<span class="green">1.00<br> (180ns)</span>
</p>
</td>
</tr>
<tr>
<td>
<p>
assoc_legendre
</p>
</td>
<td>
<p>
<span class="blue">1.57<br> (151ns)</span>
</p>
</td>
<td>
<p>
<span class="blue">1.80<br> (173ns)</span>
</p>
</td>
<td>
<p>
<span class="green">1.16<br> (111ns)</span>
</p>
</td>
<td>
<p>
<span class="green">1.00<br> (96ns)</span>
</p>
</td>
</tr>
<tr>
<td>
<p>
beta
</p>
</td>
<td>
<p>
<span class="blue">1.74<br> (176ns)</span>
</p>
</td>
<td>
<p>
<span class="red">3.78<br> (382ns)</span>
</p>
</td>
<td>
<p>
<span class="red">2.17<br> (219ns)</span>
</p>
</td>
<td>
<p>
<span class="green">1.00<br> (101ns)</span>
</p>
</td>
</tr>
<tr>
<td>
<p>
beta (incomplete)
</p>
</td>
<td>
<p>
<span class="blue">1.44<br> (520ns)</span>
</p>
</td>
<td>
<p>
<span class="red">3.03<br> (1096ns)</span>
</p>
</td>
<td>
<p>
<span class="blue">1.84<br> (666ns)</span>
</p>
</td>
<td>
<p>
<span class="green">1.00<br> (362ns)</span>
</p>
</td>
</tr>
<tr>
<td>
<p>
cbrt
</p>
</td>
<td>
<p>
<span class="red">3.21<br> (45ns)</span>
</p>
</td>
<td>
<p>
<span class="red">3.43<br> (48ns)</span>
</p>
</td>
<td>
<p>
<span class="red">3.07<br> (43ns)</span>
</p>
</td>
<td>
<p>
<span class="green">1.00<br> (14ns)</span>
</p>
</td>
</tr>
<tr>
<td>
<p>
cyl_bessel_i
</p>
</td>
<td>
<p>
<span class="green">1.11<br> (404ns)</span>
</p>
</td>
<td>
<p>
<span class="red">2.78<br> (1016ns)</span>
</p>
</td>
<td>
<p>
<span class="blue">1.21<br> (442ns)</span>
</p>
</td>
<td>
<p>
<span class="green">1.00<br> (365ns)</span>
</p>
</td>
</tr>
<tr>
<td>
<p>
cyl_bessel_i (integer order)
</p>
</td>
<td>
<p>
<span class="blue">1.29<br> (261ns)</span>
</p>
</td>
<td>
<p>
<span class="red">3.16<br> (638ns)</span>
</p>
</td>
<td>
<p>
<span class="blue">1.22<br> (247ns)</span>
</p>
</td>
<td>
<p>
<span class="green">1.00<br> (202ns)</span>
</p>
</td>
</tr>
<tr>
<td>
<p>
cyl_bessel_j
</p>
</td>
<td>
<p>
<span class="green">1.19<br> (488ns)</span>
</p>
</td>
<td>
<p>
<span class="red">2.06<br> (841ns)</span>
</p>
</td>
<td>
<p>
<span class="blue">1.25<br> (513ns)</span>
</p>
</td>
<td>
<p>
<span class="green">1.00<br> (409ns)</span>
</p>
</td>
</tr>
<tr>
<td>
<p>
cyl_bessel_j (integer order)
</p>
</td>
<td>
<p>
<span class="blue">1.36<br> (103ns)</span>
</p>
</td>
<td>
<p>
<span class="red">2.39<br> (182ns)</span>
</p>
</td>
<td>
<p>
<span class="blue">1.47<br> (112ns)</span>
</p>
</td>
<td>
<p>
<span class="green">1.00<br> (76ns)</span>
</p>
</td>
</tr>
<tr>
<td>
<p>
cyl_bessel_k
</p>
</td>
<td>
<p>
<span class="green">1.04<br> (747ns)</span>
</p>
</td>
<td>
<p>
<span class="red">9.43<br> (6743ns)</span>
</p>
</td>
<td>
<p>
<span class="green">1.03<br> (734ns)</span>
</p>
</td>
<td>
<p>
<span class="green">1.00<br> (715ns)</span>
</p>
</td>
</tr>
<tr>
<td>
<p>
cyl_bessel_k (integer order)
</p>
</td>
<td>
<p>
<span class="blue">1.26<br> (419ns)</span>
</p>
</td>
<td>
<p>
<span class="red">10.49<br> (3494ns)</span>
</p>
</td>
<td>
<p>
<span class="green">1.10<br> (367ns)</span>
</p>
</td>
<td>
<p>
<span class="green">1.00<br> (333ns)</span>
</p>
</td>
</tr>
<tr>
<td>
<p>
cyl_neumann
</p>
</td>
<td>
<p>
<span class="red">16.76<br> (11212ns)</span>
</p>
</td>
<td>
<p>
<span class="red">2.01<br> (1346ns)</span>
</p>
</td>
<td>
<p>
<span class="green">1.00<br> (669ns)</span>
</p>
</td>
<td>
<p>
<span class="red">15.35<br> (10266ns)</span>
</p>
</td>
</tr>
<tr>
<td>
<p>
cyl_neumann (integer order)
</p>
</td>
<td>
<p>
<span class="green">1.00<br> (225ns)</span>
</p>
</td>
<td>
<p>
<span class="blue">1.79<br> (403ns)</span>
</p>
</td>
<td>
<p>
<span class="blue">1.24<br> (279ns)</span>
</p>
</td>
<td>
<p>
<span class="green">1.02<br> (229ns)</span>
</p>
</td>
</tr>
<tr>
<td>
<p>
digamma
</p>
</td>
<td>
<p>
<span class="green">1.20<br> (24ns)</span>
</p>
</td>
<td>
<p>
<span class="red">3.75<br> (75ns)</span>
</p>
</td>
<td>
<p>
<span class="red">2.15<br> (43ns)</span>
</p>
</td>
<td>
<p>
<span class="green">1.00<br> (20ns)</span>
</p>
</td>
</tr>
<tr>
<td>
<p>
ellint_1
</p>
</td>
<td>
<p>
<span class="blue">1.87<br> (329ns)</span>
</p>
</td>
<td>
<p>
<span class="blue">1.99<br> (350ns)</span>
</p>
</td>
<td>
<p>
<span class="blue">1.32<br> (232ns)</span>
</p>
</td>
<td>
<p>
<span class="green">1.00<br> (176ns)</span>
</p>
</td>
</tr>
<tr>
<td>
<p>
ellint_1 (complete)
</p>
</td>
<td>
<p>
<span class="red">2.18<br> (61ns)</span>
</p>
</td>
<td>
<p>
<span class="red">2.57<br> (72ns)</span>
</p>
</td>
<td>
<p>
<span class="blue">1.57<br> (44ns)</span>
</p>
</td>
<td>
<p>
<span class="green">1.00<br> (28ns)</span>
</p>
</td>
</tr>
<tr>
<td>
<p>
ellint_2
</p>
</td>
<td>
<p>
<span class="blue">1.78<br> (525ns)</span>
</p>
</td>
<td>
<p>
<span class="red">2.17<br> (640ns)</span>
</p>
</td>
<td>
<p>
<span class="blue">1.52<br> (449ns)</span>
</p>
</td>
<td>
<p>
<span class="green">1.00<br> (295ns)</span>
</p>
</td>
</tr>
<tr>
<td>
<p>
ellint_2 (complete)
</p>
</td>
<td>
<p>
<span class="red">2.14<br> (62ns)</span>
</p>
</td>
<td>
<p>
<span class="red">2.07<br> (60ns)</span>
</p>
</td>
<td>
<p>
<span class="blue">1.24<br> (36ns)</span>
</p>
</td>
<td>
<p>
<span class="green">1.00<br> (29ns)</span>
</p>
</td>
</tr>
<tr>
<td>
<p>
ellint_3
</p>
</td>
<td>
<p>
<span class="blue">1.94<br> (1155ns)</span>
</p>
</td>
<td>
<p>
<span class="red">2.91<br> (1733ns)</span>
</p>
</td>
<td>
<p>
<span class="blue">1.65<br> (986ns)</span>
</p>
</td>
<td>
<p>
<span class="green">1.00<br> (596ns)</span>
</p>
</td>
</tr>
<tr>
<td>
<p>
ellint_3 (complete)
</p>
</td>
<td>
<p>
<span class="red">2.05<br> (721ns)</span>
</p>
</td>
<td>
<p>
<span class="red">3.07<br> (1079ns)</span>
</p>
</td>
<td>
<p>
<span class="blue">1.46<br> (514ns)</span>
</p>
</td>
<td>
<p>
<span class="green">1.00<br> (352ns)</span>
</p>
</td>
</tr>
<tr>
<td>
<p>
ellint_rc
</p>
</td>
<td>
<p>
<span class="blue">1.58<br> (49ns)</span>
</p>
</td>
<td>
<p>
<span class="red">2.68<br> (83ns)</span>
</p>
</td>
<td>
<p>
<span class="blue">1.55<br> (48ns)</span>
</p>
</td>
<td>
<p>
<span class="green">1.00<br> (31ns)</span>
</p>
</td>
</tr>
<tr>
<td>
<p>
ellint_rd
</p>
</td>
<td>
<p>
<span class="blue">1.75<br> (332ns)</span>
</p>
</td>
<td>
<p>
<span class="blue">1.83<br> (348ns)</span>
</p>
</td>
<td>
<p>
<span class="blue">1.40<br> (266ns)</span>
</p>
</td>
<td>
<p>
<span class="green">1.00<br> (190ns)</span>
</p>
</td>
</tr>
<tr>
<td>
<p>
ellint_rf
</p>
</td>
<td>
<p>
<span class="blue">1.69<br> (71ns)</span>
</p>
</td>
<td>
<p>
<span class="red">2.40<br> (101ns)</span>
</p>
</td>
<td>
<p>
<span class="blue">1.57<br> (66ns)</span>
</p>
</td>
<td>
<p>
<span class="green">1.00<br> (42ns)</span>
</p>
</td>
</tr>
<tr>
<td>
<p>
ellint_rj
</p>
</td>
<td>
<p>
<span class="blue">1.91<br> (344ns)</span>
</p>
</td>
<td>
<p>
<span class="red">2.96<br> (532ns)</span>
</p>
</td>
<td>
<p>
<span class="blue">1.43<br> (257ns)</span>
</p>
</td>
<td>
<p>
<span class="green">1.00<br> (180ns)</span>
</p>
</td>
</tr>
<tr>
<td>
<p>
erf
</p>
</td>
<td>
<p>
<span class="blue">1.77<br> (23ns)</span>
</p>
</td>
<td>
<p>
<span class="red">2.92<br> (38ns)</span>
</p>
</td>
<td>
<p>
<span class="blue">1.92<br> (25ns)</span>
</p>
</td>
<td>
<p>
<span class="green">1.00<br> (13ns)</span>
</p>
</td>
</tr>
<tr>
<td>
<p>
erfc
</p>
</td>
<td>
<p>
<span class="blue">1.29<br> (22ns)</span>
</p>
</td>
<td>
<p>
<span class="red">3.41<br> (58ns)</span>
</p>
</td>
<td>
<p>
<span class="red">2.06<br> (35ns)</span>
</p>
</td>
<td>
<p>
<span class="green">1.00<br> (17ns)</span>
</p>
</td>
</tr>
<tr>
<td>
<p>
expint
</p>
</td>
<td>
<p>
<span class="blue">1.39<br> (39ns)</span>
</p>
</td>
<td>
<p>
<span class="red">3.07<br> (86ns)</span>
</p>
</td>
<td>
<p>
<span class="red">2.14<br> (60ns)</span>
</p>
</td>
<td>
<p>
<span class="green">1.00<br> (28ns)</span>
</p>
</td>
</tr>
<tr>
<td>
<p>
expint (En)
</p>
</td>
<td>
<p>
<span class="green">1.10<br> (117ns)</span>
</p>
</td>
<td>
<p>
<span class="red">2.19<br> (232ns)</span>
</p>
</td>
<td>
<p>
<span class="blue">1.38<br> (146ns)</span>
</p>
</td>
<td>
<p>
<span class="green">1.00<br> (106ns)</span>
</p>
</td>
</tr>
<tr>
<td>
<p>
expm1
</p>
</td>
<td>
<p>
<span class="green">1.00<br> (10ns)</span>
</p>
</td>
<td>
<p>
<span class="red">3.10<br> (31ns)</span>
</p>
</td>
<td>
<p>
<span class="red">2.40<br> (24ns)</span>
</p>
</td>
<td>
<p>
<span class="green">1.10<br> (11ns)</span>
</p>
</td>
</tr>
<tr>
<td>
<p>
gamma_p
</p>
</td>
<td>
<p>
<span class="blue">1.29<br> (192ns)</span>
</p>
</td>
<td>
<p>
<span class="red">2.64<br> (393ns)</span>
</p>
</td>
<td>
<p>
<span class="blue">1.71<br> (255ns)</span>
</p>
</td>
<td>
<p>
<span class="green">1.00<br> (149ns)</span>
</p>
</td>
</tr>
<tr>
<td>
<p>
gamma_p_inv
</p>
</td>
<td>
<p>
<span class="blue">1.36<br> (706ns)</span>
</p>
</td>
<td>
<p>
<span class="red">2.47<br> (1288ns)</span>
</p>
</td>
<td>
<p>
<span class="blue">1.91<br> (997ns)</span>
</p>
</td>
<td>
<p>
<span class="green">1.00<br> (521ns)</span>
</p>
</td>
</tr>
<tr>
<td>
<p>
gamma_q
</p>
</td>
<td>
<p>
<span class="green">1.16<br> (179ns)</span>
</p>
</td>
<td>
<p>
<span class="red">2.79<br> (429ns)</span>
</p>
</td>
<td>
<p>
<span class="blue">1.61<br> (248ns)</span>
</p>
</td>
<td>
<p>
<span class="green">1.00<br> (154ns)</span>
</p>
</td>
</tr>
<tr>
<td>
<p>
gamma_q_inv
</p>
</td>
<td>
<p>
<span class="blue">1.37<br> (703ns)</span>
</p>
</td>
<td>
<p>
<span class="red">2.38<br> (1225ns)</span>
</p>
</td>
<td>
<p>
<span class="blue">1.89<br> (971ns)</span>
</p>
</td>
<td>
<p>
<span class="green">1.00<br> (515ns)</span>
</p>
</td>
</tr>
<tr>
<td>
<p>
ibeta
</p>
</td>
<td>
<p>
<span class="blue">1.34<br> (520ns)</span>
</p>
</td>
<td>
<p>
<span class="red">3.13<br> (1218ns)</span>
</p>
</td>
<td>
<p>
<span class="blue">1.83<br> (711ns)</span>
</p>
</td>
<td>
<p>
<span class="green">1.00<br> (389ns)</span>
</p>
</td>
</tr>
<tr>
<td>
<p>
ibeta_inv
</p>
</td>
<td>
<p>
<span class="blue">1.51<br> (2193ns)</span>
</p>
</td>
<td>
<p>
<span class="red">2.81<br> (4085ns)</span>
</p>
</td>
<td>
<p>
<span class="red">2.27<br> (3303ns)</span>
</p>
</td>
<td>
<p>
<span class="green">1.00<br> (1452ns)</span>
</p>
</td>
</tr>
<tr>
<td>
<p>
ibetac
</p>
</td>
<td>
<p>
<span class="blue">1.29<br> (518ns)</span>
</p>
</td>
<td>
<p>
<span class="red">2.94<br> (1179ns)</span>
</p>
</td>
<td>
<p>
<span class="blue">1.73<br> (694ns)</span>
</p>
</td>
<td>
<p>
<span class="green">1.00<br> (401ns)</span>
</p>
</td>
</tr>
<tr>
<td>
<p>
ibetac_inv
</p>
</td>
<td>
<p>
<span class="blue">1.41<br> (2045ns)</span>
</p>
</td>
<td>
<p>
<span class="red">2.80<br> (4058ns)</span>
</p>
</td>
<td>
<p>
<span class="blue">1.78<br> (2572ns)</span>
</p>
</td>
<td>
<p>
<span class="green">1.00<br> (1447ns)</span>
</p>
</td>
</tr>
<tr>
<td>
<p>
jacobi_cn
</p>
</td>
<td>
<p>
<span class="blue">1.36<br> (182ns)</span>
</p>
</td>
<td>
<p>
<span class="red">3.72<br> (499ns)</span>
</p>
</td>
<td>
<p>
<span class="red">2.28<br> (306ns)</span>
</p>
</td>
<td>
<p>
<span class="green">1.00<br> (134ns)</span>
</p>
</td>
</tr>
<tr>
<td>
<p>
jacobi_dn
</p>
</td>
<td>
<p>
<span class="blue">1.82<br> (262ns)</span>
</p>
</td>
<td>
<p>
<span class="red">3.68<br> (530ns)</span>
</p>
</td>
<td>
<p>
<span class="red">2.27<br> (327ns)</span>
</p>
</td>
<td>
<p>
<span class="green">1.00<br> (144ns)</span>
</p>
</td>
</tr>
<tr>
<td>
<p>
jacobi_sn
</p>
</td>
<td>
<p>
<span class="blue">1.31<br> (179ns)</span>
</p>
</td>
<td>
<p>
<span class="red">3.73<br> (511ns)</span>
</p>
</td>
<td>
<p>
<span class="red">2.43<br> (333ns)</span>
</p>
</td>
<td>
<p>
<span class="green">1.00<br> (137ns)</span>
</p>
</td>
</tr>
<tr>
<td>
<p>
laguerre
</p>
</td>
<td>
<p>
<span class="green">1.00<br> (121ns)</span>
</p>
</td>
<td>
<p>
<span class="green">1.15<br> (139ns)</span>
</p>
</td>
<td>
<p>
<span class="green">1.04<br> (126ns)</span>
</p>
</td>
<td>
<p>
<span class="green">1.10<br> (133ns)</span>
</p>
</td>
</tr>
<tr>
<td>
<p>
legendre
</p>
</td>
<td>
<p>
<span class="green">1.07<br> (364ns)</span>
</p>
</td>
<td>
<p>
<span class="green">1.16<br> (396ns)</span>
</p>
</td>
<td>
<p>
<span class="green">1.00<br> (340ns)</span>
</p>
</td>
<td>
<p>
<span class="green">1.13<br> (383ns)</span>
</p>
</td>
</tr>
<tr>
<td>
<p>
legendre Q
</p>
</td>
<td>
<p>
<span class="green">1.00<br> (427ns)</span>
</p>
</td>
<td>
<p>
<span class="green">1.20<br> (512ns)</span>
</p>
</td>
<td>
<p>
<span class="green">1.01<br> (430ns)</span>
</p>
</td>
<td>
<p>
<span class="green">1.07<br> (455ns)</span>
</p>
</td>
</tr>
<tr>
<td>
<p>
lgamma
</p>
</td>
<td>
<p>
<span class="green">1.00<br> (73ns)</span>
</p>
</td>
<td>
<p>
<span class="red">3.07<br> (224ns)</span>
</p>
</td>
<td>
<p>
<span class="blue">1.82<br> (133ns)</span>
</p>
</td>
<td>
<p>
<span class="green">1.05<br> (77ns)</span>
</p>
</td>
</tr>
<tr>
<td>
<p>
log1p
</p>
</td>
<td>
<p>
<span class="green">1.00<br> (14ns)</span>
</p>
</td>
<td>
<p>
<span class="blue">2.00<br> (28ns)</span>
</p>
</td>
<td>
<p>
<span class="green">1.14<br> (16ns)</span>
</p>
</td>
<td>
<p>
<span class="green">1.00<br> (14ns)</span>
</p>
</td>
</tr>
<tr>
<td>
<p>
polygamma
</p>
</td>
<td>
<p>
<span class="green">1.16<br> (3773ns)</span>
</p>
</td>
<td>
<p>
<span class="green">1.02<br> (3320ns)</span>
</p>
</td>
<td>
<p>
<span class="red">2.24<br> (7270ns)</span>
</p>
</td>
<td>
<p>
<span class="green">1.00<br> (3246ns)</span>
</p>
</td>
</tr>
<tr>
<td>
<p>
sph_bessel
</p>
</td>
<td>
<p>
<span class="green">1.17<br> (1005ns)</span>
</p>
</td>
<td>
<p>
<span class="blue">1.55<br> (1325ns)</span>
</p>
</td>
<td>
<p>
<span class="green">1.09<br> (931ns)</span>
</p>
</td>
<td>
<p>
<span class="green">1.00<br> (857ns)</span>
</p>
</td>
</tr>
<tr>
<td>
<p>
sph_neumann
</p>
</td>
<td>
<p>
<span class="green">1.08<br> (1827ns)</span>
</p>
</td>
<td>
<p>
<span class="red">2.07<br> (3483ns)</span>
</p>
</td>
<td>
<p>
<span class="green">1.00<br> (1685ns)</span>
</p>
</td>
<td>
<p>
<span class="green">1.01<br> (1702ns)</span>
</p>
</td>
</tr>
<tr>
<td>
<p>
tgamma
</p>
</td>
<td>
<p>
<span class="blue">1.31<br> (77ns)</span>
</p>
</td>
<td>
<p>
<span class="red">4.03<br> (238ns)</span>
</p>
</td>
<td>
<p>
<span class="red">2.49<br> (147ns)</span>
</p>
</td>
<td>
<p>
<span class="green">1.00<br> (59ns)</span>
</p>
</td>
</tr>
<tr>
<td>
<p>
tgamma (incomplete)
</p>
</td>
<td>
<p>
<span class="blue">1.26<br> (276ns)</span>
</p>
</td>
<td>
<p>
<span class="red">2.52<br> (552ns)</span>
</p>
</td>
<td>
<p>
<span class="blue">1.73<br> (379ns)</span>
</p>
</td>
<td>
<p>
<span class="green">1.00<br> (219ns)</span>
</p>
</td>
</tr>
<tr>
<td>
<p>
trigamma
</p>
</td>
<td>
<p>
<span class="blue">1.35<br> (23ns)</span>
</p>
</td>
<td>
<p>
<span class="red">2.88<br> (49ns)</span>
</p>
</td>
<td>
<p>
<span class="blue">1.41<br> (24ns)</span>
</p>
</td>
<td>
<p>
<span class="green">1.00<br> (17ns)</span>
</p>
</td>
</tr>
<tr>
<td>
<p>
zeta
</p>
</td>
<td>
<p>
<span class="blue">1.34<br> (121ns)</span>
</p>
</td>
<td>
<p>
<span class="red">3.83<br> (345ns)</span>
</p>
</td>
<td>
<p>
<span class="red">2.52<br> (227ns)</span>
</p>
</td>
<td>
<p>
<span class="green">1.00<br> (90ns)</span>
</p>
</td>
</tr>
</tbody>
</table></div>
</div>
<br class="table-break"><div class="table">
<a name="math_toolkit.comp_compilers.table_Compiler_Comparison_on_linux"></a><p class="title"><b>Table&#160;16.6.&#160;Compiler Comparison on linux</b></p>
<div class="table-contents"><table class="table" summary="Compiler Comparison on linux">
<colgroup>
<col>
<col>
<col>
</colgroup>
<thead><tr>
<th>
<p>
Function
</p>
</th>
<th>
<p>
GNU C++ version 5.3.0<br> boost 1.61
</p>
</th>
<th>
<p>
GNU C++ version 5.3.0<br> boost 1.61<br> promote_double&lt;false&gt;
</p>
</th>
</tr></thead>
<tbody>
<tr>
<td>
<p>
assoc_laguerre
</p>
</td>
<td>
<p>
<span class="blue">1.36<br> (263ns)</span>
</p>
</td>
<td>
<p>
<span class="green">1.00<br> (194ns)</span>
</p>
</td>
</tr>
<tr>
<td>
<p>
assoc_legendre
</p>
</td>
<td>
<p>
<span class="red">2.55<br> (258ns)</span>
</p>
</td>
<td>
<p>
<span class="green">1.00<br> (101ns)</span>
</p>
</td>
</tr>
<tr>
<td>
<p>
beta
</p>
</td>
<td>
<p>
<span class="red">4.71<br> (734ns)</span>
</p>
</td>
<td>
<p>
<span class="green">1.00<br> (156ns)</span>
</p>
</td>
</tr>
<tr>
<td>
<p>
beta (incomplete)
</p>
</td>
<td>
<p>
<span class="red">3.12<br> (1796ns)</span>
</p>
</td>
<td>
<p>
<span class="green">1.00<br> (575ns)</span>
</p>
</td>
</tr>
<tr>
<td>
<p>
cbrt
</p>
</td>
<td>
<p>
<span class="red">2.53<br> (43ns)</span>
</p>
</td>
<td>
<p>
<span class="green">1.00<br> (17ns)</span>
</p>
</td>
</tr>
<tr>
<td>
<p>
cyl_bessel_i
</p>
</td>
<td>
<p>
<span class="red">3.47<br> (1410ns)</span>
</p>
</td>
<td>
<p>
<span class="green">1.00<br> (406ns)</span>
</p>
</td>
</tr>
<tr>
<td>
<p>
cyl_bessel_i (integer order)
</p>
</td>
<td>
<p>
<span class="red">3.38<br> (893ns)</span>
</p>
</td>
<td>
<p>
<span class="green">1.00<br> (264ns)</span>
</p>
</td>
</tr>
<tr>
<td>
<p>
cyl_bessel_j
</p>
</td>
<td>
<p>
<span class="red">2.69<br> (1071ns)</span>
</p>
</td>
<td>
<p>
<span class="green">1.00<br> (398ns)</span>
</p>
</td>
</tr>
<tr>
<td>
<p>
cyl_bessel_j (integer order)
</p>
</td>
<td>
<p>
<span class="red">2.59<br> (275ns)</span>
</p>
</td>
<td>
<p>
<span class="green">1.00<br> (106ns)</span>
</p>
</td>
</tr>
<tr>
<td>
<p>
cyl_bessel_k
</p>
</td>
<td>
<p>
<span class="red">6.86<br> (4589ns)</span>
</p>
</td>
<td>
<p>
<span class="green">1.00<br> (669ns)</span>
</p>
</td>
</tr>
<tr>
<td>
<p>
cyl_bessel_k (integer order)
</p>
</td>
<td>
<p>
<span class="red">10.17<br> (3673ns)</span>
</p>
</td>
<td>
<p>
<span class="green">1.00<br> (361ns)</span>
</p>
</td>
</tr>
<tr>
<td>
<p>
cyl_neumann
</p>
</td>
<td>
<p>
<span class="red">2.48<br> (1478ns)</span>
</p>
</td>
<td>
<p>
<span class="green">1.00<br> (597ns)</span>
</p>
</td>
</tr>
<tr>
<td>
<p>
cyl_neumann (integer order)
</p>
</td>
<td>
<p>
<span class="red">2.20<br> (484ns)</span>
</p>
</td>
<td>
<p>
<span class="green">1.00<br> (220ns)</span>
</p>
</td>
</tr>
<tr>
<td>
<p>
digamma
</p>
</td>
<td>
<p>
<span class="blue">1.92<br> (75ns)</span>
</p>
</td>
<td>
<p>
<span class="green">1.00<br> (39ns)</span>
</p>
</td>
</tr>
<tr>
<td>
<p>
ellint_1
</p>
</td>
<td>
<p>
<span class="blue">1.94<br> (358ns)</span>
</p>
</td>
<td>
<p>
<span class="green">1.00<br> (185ns)</span>
</p>
</td>
</tr>
<tr>
<td>
<p>
ellint_1 (complete)
</p>
</td>
<td>
<p>
<span class="blue">1.86<br> (52ns)</span>
</p>
</td>
<td>
<p>
<span class="green">1.00<br> (28ns)</span>
</p>
</td>
</tr>
<tr>
<td>
<p>
ellint_2
</p>
</td>
<td>
<p>
<span class="red">2.32<br> (805ns)</span>
</p>
</td>
<td>
<p>
<span class="green">1.00<br> (347ns)</span>
</p>
</td>
</tr>
<tr>
<td>
<p>
ellint_2 (complete)
</p>
</td>
<td>
<p>
<span class="blue">1.71<br> (60ns)</span>
</p>
</td>
<td>
<p>
<span class="green">1.00<br> (35ns)</span>
</p>
</td>
</tr>
<tr>
<td>
<p>
ellint_3
</p>
</td>
<td>
<p>
<span class="red">2.75<br> (2154ns)</span>
</p>
</td>
<td>
<p>
<span class="green">1.00<br> (783ns)</span>
</p>
</td>
</tr>
<tr>
<td>
<p>
ellint_3 (complete)
</p>
</td>
<td>
<p>
<span class="red">2.23<br> (1172ns)</span>
</p>
</td>
<td>
<p>
<span class="green">1.00<br> (525ns)</span>
</p>
</td>
</tr>
<tr>
<td>
<p>
ellint_rc
</p>
</td>
<td>
<p>
<span class="blue">1.57<br> (77ns)</span>
</p>
</td>
<td>
<p>
<span class="green">1.00<br> (49ns)</span>
</p>
</td>
</tr>
<tr>
<td>
<p>
ellint_rd
</p>
</td>
<td>
<p>
<span class="red">2.23<br> (520ns)</span>
</p>
</td>
<td>
<p>
<span class="green">1.00<br> (233ns)</span>
</p>
</td>
</tr>
<tr>
<td>
<p>
ellint_rf
</p>
</td>
<td>
<p>
<span class="blue">1.51<br> (95ns)</span>
</p>
</td>
<td>
<p>
<span class="green">1.00<br> (63ns)</span>
</p>
</td>
</tr>
<tr>
<td>
<p>
ellint_rj
</p>
</td>
<td>
<p>
<span class="red">2.33<br> (481ns)</span>
</p>
</td>
<td>
<p>
<span class="green">1.00<br> (206ns)</span>
</p>
</td>
</tr>
<tr>
<td>
<p>
erf
</p>
</td>
<td>
<p>
<span class="red">2.60<br> (39ns)</span>
</p>
</td>
<td>
<p>
<span class="green">1.00<br> (15ns)</span>
</p>
</td>
</tr>
<tr>
<td>
<p>
erfc
</p>
</td>
<td>
<p>
<span class="red">2.68<br> (59ns)</span>
</p>
</td>
<td>
<p>
<span class="green">1.00<br> (22ns)</span>
</p>
</td>
</tr>
<tr>
<td>
<p>
expint
</p>
</td>
<td>
<p>
<span class="red">2.47<br> (94ns)</span>
</p>
</td>
<td>
<p>
<span class="green">1.00<br> (38ns)</span>
</p>
</td>
</tr>
<tr>
<td>
<p>
expint (En)
</p>
</td>
<td>
<p>
<span class="blue">1.86<br> (273ns)</span>
</p>
</td>
<td>
<p>
<span class="green">1.00<br> (147ns)</span>
</p>
</td>
</tr>
<tr>
<td>
<p>
expm1
</p>
</td>
<td>
<p>
<span class="green">1.00<br> (10ns)</span>
</p>
</td>
<td>
<p>
<span class="green">1.10<br> (11ns)</span>
</p>
</td>
</tr>
<tr>
<td>
<p>
gamma_p
</p>
</td>
<td>
<p>
<span class="red">2.42<br> (492ns)</span>
</p>
</td>
<td>
<p>
<span class="green">1.00<br> (203ns)</span>
</p>
</td>
</tr>
<tr>
<td>
<p>
gamma_p_inv
</p>
</td>
<td>
<p>
<span class="red">2.24<br> (1577ns)</span>
</p>
</td>
<td>
<p>
<span class="green">1.00<br> (704ns)</span>
</p>
</td>
</tr>
<tr>
<td>
<p>
gamma_q
</p>
</td>
<td>
<p>
<span class="red">2.53<br> (508ns)</span>
</p>
</td>
<td>
<p>
<span class="green">1.00<br> (201ns)</span>
</p>
</td>
</tr>
<tr>
<td>
<p>
gamma_q_inv
</p>
</td>
<td>
<p>
<span class="red">2.45<br> (1841ns)</span>
</p>
</td>
<td>
<p>
<span class="green">1.00<br> (751ns)</span>
</p>
</td>
</tr>
<tr>
<td>
<p>
ibeta
</p>
</td>
<td>
<p>
<span class="red">2.71<br> (1715ns)</span>
</p>
</td>
<td>
<p>
<span class="green">1.00<br> (634ns)</span>
</p>
</td>
</tr>
<tr>
<td>
<p>
ibeta_inv
</p>
</td>
<td>
<p>
<span class="red">2.58<br> (5742ns)</span>
</p>
</td>
<td>
<p>
<span class="green">1.00<br> (2224ns)</span>
</p>
</td>
</tr>
<tr>
<td>
<p>
ibetac
</p>
</td>
<td>
<p>
<span class="red">2.66<br> (1736ns)</span>
</p>
</td>
<td>
<p>
<span class="green">1.00<br> (653ns)</span>
</p>
</td>
</tr>
<tr>
<td>
<p>
ibetac_inv
</p>
</td>
<td>
<p>
<span class="red">2.44<br> (5451ns)</span>
</p>
</td>
<td>
<p>
<span class="green">1.00<br> (2237ns)</span>
</p>
</td>
</tr>
<tr>
<td>
<p>
jacobi_cn
</p>
</td>
<td>
<p>
<span class="red">2.77<br> (476ns)</span>
</p>
</td>
<td>
<p>
<span class="green">1.00<br> (172ns)</span>
</p>
</td>
</tr>
<tr>
<td>
<p>
jacobi_dn
</p>
</td>
<td>
<p>
<span class="red">2.80<br> (481ns)</span>
</p>
</td>
<td>
<p>
<span class="green">1.00<br> (172ns)</span>
</p>
</td>
</tr>
<tr>
<td>
<p>
jacobi_sn
</p>
</td>
<td>
<p>
<span class="red">2.86<br> (492ns)</span>
</p>
</td>
<td>
<p>
<span class="green">1.00<br> (172ns)</span>
</p>
</td>
</tr>
<tr>
<td>
<p>
laguerre
</p>
</td>
<td>
<p>
<span class="green">1.09<br> (139ns)</span>
</p>
</td>
<td>
<p>
<span class="green">1.00<br> (128ns)</span>
</p>
</td>
</tr>
<tr>
<td>
<p>
legendre
</p>
</td>
<td>
<p>
<span class="green">1.16<br> (399ns)</span>
</p>
</td>
<td>
<p>
<span class="green">1.00<br> (345ns)</span>
</p>
</td>
</tr>
<tr>
<td>
<p>
legendre Q
</p>
</td>
<td>
<p>
<span class="green">1.18<br> (496ns)</span>
</p>
</td>
<td>
<p>
<span class="green">1.00<br> (422ns)</span>
</p>
</td>
</tr>
<tr>
<td>
<p>
lgamma
</p>
</td>
<td>
<p>
<span class="red">2.20<br> (257ns)</span>
</p>
</td>
<td>
<p>
<span class="green">1.00<br> (117ns)</span>
</p>
</td>
</tr>
<tr>
<td>
<p>
log1p
</p>
</td>
<td>
<p>
<span class="green">1.00<br> (12ns)</span>
</p>
</td>
<td>
<p>
<span class="green">1.00<br> (12ns)</span>
</p>
</td>
</tr>
<tr>
<td>
<p>
polygamma
</p>
</td>
<td>
<p>
<span class="red">3.93<br> (2885ns)</span>
</p>
</td>
<td>
<p>
<span class="green">1.00<br> (734ns)</span>
</p>
</td>
</tr>
<tr>
<td>
<p>
sph_bessel
</p>
</td>
<td>
<p>
<span class="blue">1.71<br> (1563ns)</span>
</p>
</td>
<td>
<p>
<span class="green">1.00<br> (915ns)</span>
</p>
</td>
</tr>
<tr>
<td>
<p>
sph_neumann
</p>
</td>
<td>
<p>
<span class="red">2.15<br> (3745ns)</span>
</p>
</td>
<td>
<p>
<span class="green">1.00<br> (1744ns)</span>
</p>
</td>
</tr>
<tr>
<td>
<p>
tgamma
</p>
</td>
<td>
<p>
<span class="red">3.69<br> (354ns)</span>
</p>
</td>
<td>
<p>
<span class="green">1.00<br> (96ns)</span>
</p>
</td>
</tr>
<tr>
<td>
<p>
tgamma (incomplete)
</p>
</td>
<td>
<p>
<span class="red">2.35<br> (744ns)</span>
</p>
</td>
<td>
<p>
<span class="green">1.00<br> (316ns)</span>
</p>
</td>
</tr>
<tr>
<td>
<p>
trigamma
</p>
</td>
<td>
<p>
<span class="blue">1.64<br> (36ns)</span>
</p>
</td>
<td>
<p>
<span class="green">1.00<br> (22ns)</span>
</p>
</td>
</tr>
<tr>
<td>
<p>
zeta
</p>
</td>
<td>
<p>
<span class="red">2.71<br> (509ns)</span>
</p>
</td>
<td>
<p>
<span class="green">1.00<br> (188ns)</span>
</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 &#169; 2006-2010, 2012-2014 Nikhar Agrawal,
Anton Bikineev, Paul A. Bristow, Marco Guazzone, Christopher Kormanyos, Hubert
Holin, Bruno Lalande, John Maddock, Jeremy Murphy, Johan R&#229;de, Gautam Sewani,
Benjamin Sobotta, Thijs van den Berg, Daryle Walker and Xiaogang Zhang<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="comparisons.html"><img src="../../../../../doc/src/images/next.png" alt="Next"></a>
</div>
</body>
</html>