1<html> 2<head> 3<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> 4<title>Trading Accuracy for Performance</title> 5<link rel="stylesheet" href="../math.css" type="text/css"> 6<meta name="generator" content="DocBook XSL Stylesheets V1.79.1"> 7<link rel="home" href="../index.html" title="Math Toolkit 2.12.0"> 8<link rel="up" href="../perf.html" title="Chapter 22. Performance"> 9<link rel="prev" href="getting_best.html" title="Getting the Best Performance from this Library: Compiler and Compiler Options"> 10<link rel="next" href="multiprecision.html" title="Cost of High-Precision Non-built-in Floating-point"> 11</head> 12<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"> 13<table cellpadding="2" width="100%"><tr> 14<td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../boost.png"></td> 15<td align="center"><a href="../../../../../index.html">Home</a></td> 16<td align="center"><a href="../../../../../libs/libraries.htm">Libraries</a></td> 17<td align="center"><a href="http://www.boost.org/users/people.html">People</a></td> 18<td align="center"><a href="http://www.boost.org/users/faq.html">FAQ</a></td> 19<td align="center"><a href="../../../../../more/index.htm">More</a></td> 20</tr></table> 21<hr> 22<div class="spirit-nav"> 23<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="multiprecision.html"><img src="../../../../../doc/src/images/next.png" alt="Next"></a> 24</div> 25<div class="section"> 26<div class="titlepage"><div><div><h2 class="title" style="clear: both"> 27<a name="math_toolkit.tradoffs"></a><a class="link" href="tradoffs.html" title="Trading Accuracy for Performance">Trading Accuracy for Performance</a> 28</h2></div></div></div> 29<p> 30 There are a number of <a class="link" href="../policy.html" title="Chapter 21. Policies: Controlling Precision, Error Handling etc">Policies</a> that can be used 31 to trade accuracy for performance: 32 </p> 33<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "> 34<li class="listitem"> 35 Internal promotion: by default functions with <code class="computeroutput"><span class="keyword">float</span></code> 36 arguments are evaluated at <code class="computeroutput"><span class="keyword">double</span></code> 37 precision internally to ensure full precision in the result. Similarly 38 <code class="computeroutput"><span class="keyword">double</span></code> precision functions 39 are evaluated at <code class="computeroutput"><span class="keyword">long</span> <span class="keyword">double</span></code> 40 precision internally by default. Changing these defaults can have a significant 41 speed advantage at the expense of accuracy, note also that evaluating using 42 <code class="computeroutput"><span class="keyword">float</span></code> internally may result 43 in numerical instability for some of the more complex algorithms, we suggest 44 you use this option with care. 45 </li> 46<li class="listitem"> 47 Target accuracy: just because you choose to evaluate at <code class="computeroutput"><span class="keyword">double</span></code> 48 precision doesn't mean you necessarily want to target full 16-digit accuracy, 49 if you wish you can change the default (full machine precision) to whatever 50 is "good enough" for your particular use case. 51 </li> 52</ul></div> 53<p> 54 For example, suppose you want to evaluate <code class="computeroutput"><span class="keyword">double</span></code> 55 precision functions at <code class="computeroutput"><span class="keyword">double</span></code> 56 precision internally, you can change the global default by passing <code class="computeroutput"><span class="special">-</span><span class="identifier">DBOOST_MATH_PROMOTE_DOUBLE_POLICY</span><span class="special">=</span><span class="keyword">false</span></code> on the 57 command line, or at the point of call via something like this: 58 </p> 59<pre class="programlisting"><span class="keyword">double</span> <span class="identifier">val</span> <span class="special">=</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">math</span><span class="special">::</span><span class="identifier">erf</span><span class="special">(</span><span class="identifier">my_argument</span><span class="special">,</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">math</span><span class="special">::</span><span class="identifier">policies</span><span class="special">::</span><span class="identifier">make_policy</span><span class="special">(</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">math</span><span class="special">::</span><span class="identifier">policies</span><span class="special">::</span><span class="identifier">promote_double</span><span class="special"><</span><span class="keyword">false</span><span class="special">>()));</span> 60</pre> 61<p> 62 However, an easier option might be: 63 </p> 64<pre class="programlisting"><span class="preprocessor">#include</span> <span class="special"><</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">math</span><span class="special">/</span><span class="identifier">special_functions</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span> <span class="comment">// Or any individual special function header</span> 65 66<span class="keyword">namespace</span> <span class="identifier">math</span><span class="special">{</span> 67 68<span class="keyword">namespace</span> <span class="identifier">precise</span><span class="special">{</span> 69<span class="comment">//</span> 70<span class="comment">// Define a Policy for accurate evaluation - this is the same as the default, unless</span> 71<span class="comment">// someone has changed the global defaults.</span> 72<span class="comment">//</span> 73<span class="keyword">typedef</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">math</span><span class="special">::</span><span class="identifier">policies</span><span class="special">::</span><span class="identifier">policy</span><span class="special"><></span> <span class="identifier">accurate_policy</span><span class="special">;</span> 74<span class="comment">//</span> 75<span class="comment">// Invoke BOOST_MATH_DECLARE_SPECIAL_FUNCTIONS to declare</span> 76<span class="comment">// functions that use the above policy. Note no trailing</span> 77<span class="comment">// ";" required on the macro call:</span> 78<span class="comment">//</span> 79<span class="identifier">BOOST_MATH_DECLARE_SPECIAL_FUNCTIONS</span><span class="special">(</span><span class="identifier">accurate_policy</span><span class="special">)</span> 80 81 82<span class="special">}</span> 83 84<span class="keyword">namespace</span> <span class="identifier">fast</span><span class="special">{</span> 85<span class="comment">//</span> 86<span class="comment">// Define a Policy for fast evaluation:</span> 87<span class="comment">//</span> 88<span class="keyword">using</span> <span class="keyword">namespace</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">math</span><span class="special">::</span><span class="identifier">policies</span><span class="special">[</span> 89<span class="keyword">typedef</span> <span class="identifier">policy</span><span class="special"><</span><span class="identifier">promote_double</span><span class="special"><</span><span class="keyword">false</span><span class="special">></span> <span class="special">></span> <span class="identifier">fast_policy</span><span class="special">;</span> 90<span class="comment">//</span> 91<span class="comment">// Invoke BOOST_MATH_DECLARE_SPECIAL_FUNCTIONS:</span> 92<span class="comment">//</span> 93<span class="identifier">BOOST_MATH_DECLARE_SPECIAL_FUNCTIONS</span><span class="special">(</span><span class="identifier">fast_policy</span><span class="special">)</span> 94 95<span class="special">}</span> 96 97<span class="special">}</span> 98</pre> 99<p> 100 And now one can call: 101 </p> 102<pre class="programlisting"><span class="identifier">math</span><span class="special">::</span><span class="identifier">accurate</span><span class="special">::</span><span class="identifier">tgamma</span><span class="special">(</span><span class="identifier">x</span><span class="special">);</span> 103</pre> 104<p> 105 For the "accurate" version of tgamma, and: 106 </p> 107<pre class="programlisting"><span class="identifier">math</span><span class="special">::</span><span class="identifier">fast</span><span class="special">::</span><span class="identifier">tgamma</span><span class="special">(</span><span class="identifier">x</span><span class="special">);</span> 108</pre> 109<p> 110 For the faster version. 111 </p> 112<p> 113 Had we wished to change the target precision (to 9 decimal places) as well 114 as the evaluation type used, we might have done: 115 </p> 116<pre class="programlisting"><span class="keyword">namespace</span> <span class="identifier">math</span><span class="special">{</span> 117<span class="keyword">namespace</span> <span class="identifier">fast</span><span class="special">{</span> 118<span class="comment">//</span> 119<span class="comment">// Define a Policy for fast evaluation:</span> 120<span class="comment">//</span> 121<span class="keyword">using</span> <span class="keyword">namespace</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">math</span><span class="special">::</span><span class="identifier">policies</span><span class="special">;</span> 122<span class="keyword">typedef</span> <span class="identifier">policy</span><span class="special"><</span><span class="identifier">promote_double</span><span class="special"><</span><span class="keyword">false</span><span class="special">>,</span> <span class="identifier">digits10</span><span class="special"><</span><span class="number">9</span><span class="special">></span> <span class="special">></span> <span class="identifier">fast_policy</span><span class="special">;</span> 123<span class="comment">//</span> 124<span class="comment">// Invoke BOOST_MATH_DECLARE_SPECIAL_FUNCTIONS:</span> 125<span class="comment">//</span> 126<span class="identifier">BOOST_MATH_DECLARE_SPECIAL_FUNCTIONS</span><span class="special">(</span><span class="identifier">fast_policy</span><span class="special">)</span> 127 128<span class="special">}</span> 129<span class="special">}</span> 130</pre> 131<p> 132 One can do a similar thing with the distribution classes: 133 </p> 134<pre class="programlisting"><span class="preprocessor">#include</span> <span class="special"><</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">math</span><span class="special">/</span><span class="identifier">distributions</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span> <span class="comment">// or any individual distribution header</span> 135 136<span class="keyword">namespace</span> <span class="identifier">math</span><span class="special">{</span> <span class="keyword">namespace</span> <span class="identifier">fast</span><span class="special">{</span> 137<span class="comment">//</span> 138<span class="comment">// Define a policy for fastest possible evaluation:</span> 139<span class="comment">//</span> 140<span class="keyword">using</span> <span class="keyword">namespace</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">math</span><span class="special">::</span><span class="identifier">policies</span><span class="special">;</span> 141<span class="keyword">typedef</span> <span class="identifier">policy</span><span class="special"><</span><span class="identifier">promote_float</span><span class="special"><</span><span class="keyword">false</span><span class="special">></span> <span class="special">></span> <span class="identifier">fast_float_policy</span><span class="special">;</span> 142<span class="comment">//</span> 143<span class="comment">// Invoke BOOST_MATH_DECLARE_DISTRIBUTIONS</span> 144<span class="comment">//</span> 145<span class="identifier">BOOST_MATH_DECLARE_DISTRIBUTIONS</span><span class="special">(</span><span class="keyword">float</span><span class="special">,</span> <span class="identifier">fast_float_policy</span><span class="special">)</span> 146 147<span class="special">}}</span> <span class="comment">// namespaces</span> 148 149<span class="comment">//</span> 150<span class="comment">// And use:</span> 151<span class="comment">//</span> 152<span class="keyword">float</span> <span class="identifier">p_val</span> <span class="special">=</span> <span class="identifier">cdf</span><span class="special">(</span><span class="identifier">math</span><span class="special">::</span><span class="identifier">fast</span><span class="special">::</span><span class="identifier">normal</span><span class="special">(</span><span class="number">1.0f</span><span class="special">,</span> <span class="number">3.0f</span><span class="special">),</span> <span class="number">0.25f</span><span class="special">);</span> 153</pre> 154<p> 155 Here's how these options change the relative performance of the distributions 156 on Linux: 157 </p> 158<div class="table"> 159<a name="math_toolkit.tradoffs.table_Distribution_performance_comparison_for_different_performance_options_with_GNU_C_version_9_2_1_20191008_on_linux"></a><p class="title"><b>Table 22.2. Distribution performance comparison for different performance options 160 with GNU C++ version 9.2.1 20191008 on linux</b></p> 161<div class="table-contents"><table class="table" summary="Distribution performance comparison for different performance options 162 with GNU C++ version 9.2.1 20191008 on linux"> 163<colgroup> 164<col> 165<col> 166<col> 167<col> 168<col> 169</colgroup> 170<thead><tr> 171<th> 172 <p> 173 Function 174 </p> 175 </th> 176<th> 177 <p> 178 boost 1.73 179 </p> 180 </th> 181<th> 182 <p> 183 Boost<br> promote_double<false> 184 </p> 185 </th> 186<th> 187 <p> 188 Boost<br> promote_double<false><br> digits10<10> 189 </p> 190 </th> 191<th> 192 <p> 193 Boost<br> float<br> promote_float<false> 194 </p> 195 </th> 196</tr></thead> 197<tbody> 198<tr> 199<td> 200 <p> 201 ArcSine (CDF) 202 </p> 203 </td> 204<td> 205 <p> 206 <span class="blue">1.75<br> (35ns)</span> 207 </p> 208 </td> 209<td> 210 <p> 211 <span class="blue">1.65<br> (33ns)</span> 212 </p> 213 </td> 214<td> 215 <p> 216 <span class="blue">1.65<br> (33ns)</span> 217 </p> 218 </td> 219<td> 220 <p> 221 <span class="green">1.00<br> (20ns)</span> 222 </p> 223 </td> 224</tr> 225<tr> 226<td> 227 <p> 228 ArcSine (PDF) 229 </p> 230 </td> 231<td> 232 <p> 233 <span class="green">1.00<br> (5ns)</span> 234 </p> 235 </td> 236<td> 237 <p> 238 <span class="green">1.00<br> (5ns)</span> 239 </p> 240 </td> 241<td> 242 <p> 243 <span class="green">1.00<br> (5ns)</span> 244 </p> 245 </td> 246<td> 247 <p> 248 <span class="green">1.20<br> (6ns)</span> 249 </p> 250 </td> 251</tr> 252<tr> 253<td> 254 <p> 255 ArcSine (quantile) 256 </p> 257 </td> 258<td> 259 <p> 260 <span class="green">1.04<br> (24ns)</span> 261 </p> 262 </td> 263<td> 264 <p> 265 <span class="green">1.00<br> (23ns)</span> 266 </p> 267 </td> 268<td> 269 <p> 270 <span class="green">1.04<br> (24ns)</span> 271 </p> 272 </td> 273<td> 274 <p> 275 <span class="green">1.00<br> (23ns)</span> 276 </p> 277 </td> 278</tr> 279<tr> 280<td> 281 <p> 282 Beta (CDF) 283 </p> 284 </td> 285<td> 286 <p> 287 <span class="red">4.41<br> (437ns)</span> 288 </p> 289 </td> 290<td> 291 <p> 292 <span class="blue">1.40<br> (139ns)</span> 293 </p> 294 </td> 295<td> 296 <p> 297 <span class="blue">1.38<br> (137ns)</span> 298 </p> 299 </td> 300<td> 301 <p> 302 <span class="green">1.00<br> (99ns)</span> 303 </p> 304 </td> 305</tr> 306<tr> 307<td> 308 <p> 309 Beta (PDF) 310 </p> 311 </td> 312<td> 313 <p> 314 <span class="red">4.29<br> (360ns)</span> 315 </p> 316 </td> 317<td> 318 <p> 319 <span class="blue">1.23<br> (103ns)</span> 320 </p> 321 </td> 322<td> 323 <p> 324 <span class="blue">1.24<br> (104ns)</span> 325 </p> 326 </td> 327<td> 328 <p> 329 <span class="green">1.00<br> (84ns)</span> 330 </p> 331 </td> 332</tr> 333<tr> 334<td> 335 <p> 336 Beta (quantile) 337 </p> 338 </td> 339<td> 340 <p> 341 <span class="red">4.17<br> (2587ns)</span> 342 </p> 343 </td> 344<td> 345 <p> 346 <span class="blue">1.60<br> (991ns)</span> 347 </p> 348 </td> 349<td> 350 <p> 351 <span class="blue">1.44<br> (893ns)</span> 352 </p> 353 </td> 354<td> 355 <p> 356 <span class="green">1.00<br> (620ns)</span> 357 </p> 358 </td> 359</tr> 360<tr> 361<td> 362 <p> 363 Binomial (CDF) 364 </p> 365 </td> 366<td> 367 <p> 368 <span class="red">3.97<br> (837ns)</span> 369 </p> 370 </td> 371<td> 372 <p> 373 <span class="blue">1.54<br> (324ns)</span> 374 </p> 375 </td> 376<td> 377 <p> 378 <span class="blue">1.26<br> (265ns)</span> 379 </p> 380 </td> 381<td> 382 <p> 383 <span class="green">1.00<br> (211ns)</span> 384 </p> 385 </td> 386</tr> 387<tr> 388<td> 389 <p> 390 Binomial (PDF) 391 </p> 392 </td> 393<td> 394 <p> 395 <span class="red">2.90<br> (322ns)</span> 396 </p> 397 </td> 398<td> 399 <p> 400 <span class="green">1.09<br> (121ns)</span> 401 </p> 402 </td> 403<td> 404 <p> 405 <span class="green">1.09<br> (121ns)</span> 406 </p> 407 </td> 408<td> 409 <p> 410 <span class="green">1.00<br> (111ns)</span> 411 </p> 412 </td> 413</tr> 414<tr> 415<td> 416 <p> 417 Binomial (quantile) 418 </p> 419 </td> 420<td> 421 <p> 422 <span class="red">3.88<br> (3917ns)</span> 423 </p> 424 </td> 425<td> 426 <p> 427 <span class="blue">1.53<br> (1548ns)</span> 428 </p> 429 </td> 430<td> 431 <p> 432 <span class="blue">1.26<br> (1273ns)</span> 433 </p> 434 </td> 435<td> 436 <p> 437 <span class="green">1.00<br> (1009ns)</span> 438 </p> 439 </td> 440</tr> 441<tr> 442<td> 443 <p> 444 Cauchy (CDF) 445 </p> 446 </td> 447<td> 448 <p> 449 <span class="green">1.15<br> (23ns)</span> 450 </p> 451 </td> 452<td> 453 <p> 454 <span class="green">1.15<br> (23ns)</span> 455 </p> 456 </td> 457<td> 458 <p> 459 <span class="green">1.00<br> (20ns)</span> 460 </p> 461 </td> 462<td> 463 <p> 464 <span class="green">1.00<br> (20ns)</span> 465 </p> 466 </td> 467</tr> 468<tr> 469<td> 470 <p> 471 Cauchy (PDF) 472 </p> 473 </td> 474<td> 475 <p> 476 <span class="green">1.00<br> (3ns)</span> 477 </p> 478 </td> 479<td> 480 <p> 481 <span class="green">1.00<br> (3ns)</span> 482 </p> 483 </td> 484<td> 485 <p> 486 <span class="green">1.00<br> (3ns)</span> 487 </p> 488 </td> 489<td> 490 <p> 491 <span class="blue">1.33<br> (4ns)</span> 492 </p> 493 </td> 494</tr> 495<tr> 496<td> 497 <p> 498 Cauchy (quantile) 499 </p> 500 </td> 501<td> 502 <p> 503 <span class="blue">1.88<br> (45ns)</span> 504 </p> 505 </td> 506<td> 507 <p> 508 <span class="blue">2.00<br> (48ns)</span> 509 </p> 510 </td> 511<td> 512 <p> 513 <span class="blue">1.79<br> (43ns)</span> 514 </p> 515 </td> 516<td> 517 <p> 518 <span class="green">1.00<br> (24ns)</span> 519 </p> 520 </td> 521</tr> 522<tr> 523<td> 524 <p> 525 ChiSquared (CDF) 526 </p> 527 </td> 528<td> 529 <p> 530 <span class="red">3.54<br> (1002ns)</span> 531 </p> 532 </td> 533<td> 534 <p> 535 <span class="blue">1.79<br> (506ns)</span> 536 </p> 537 </td> 538<td> 539 <p> 540 <span class="blue">1.40<br> (397ns)</span> 541 </p> 542 </td> 543<td> 544 <p> 545 <span class="green">1.00<br> (283ns)</span> 546 </p> 547 </td> 548</tr> 549<tr> 550<td> 551 <p> 552 ChiSquared (PDF) 553 </p> 554 </td> 555<td> 556 <p> 557 <span class="red">4.84<br> (295ns)</span> 558 </p> 559 </td> 560<td> 561 <p> 562 <span class="blue">1.41<br> (86ns)</span> 563 </p> 564 </td> 565<td> 566 <p> 567 <span class="blue">1.38<br> (84ns)</span> 568 </p> 569 </td> 570<td> 571 <p> 572 <span class="green">1.00<br> (61ns)</span> 573 </p> 574 </td> 575</tr> 576<tr> 577<td> 578 <p> 579 ChiSquared (quantile) 580 </p> 581 </td> 582<td> 583 <p> 584 <span class="red">3.76<br> (1664ns)</span> 585 </p> 586 </td> 587<td> 588 <p> 589 <span class="blue">1.84<br> (815ns)</span> 590 </p> 591 </td> 592<td> 593 <p> 594 <span class="blue">1.37<br> (609ns)</span> 595 </p> 596 </td> 597<td> 598 <p> 599 <span class="green">1.00<br> (443ns)</span> 600 </p> 601 </td> 602</tr> 603<tr> 604<td> 605 <p> 606 Exponential (CDF) 607 </p> 608 </td> 609<td> 610 <p> 611 <span class="blue">1.27<br> (19ns)</span> 612 </p> 613 </td> 614<td> 615 <p> 616 <span class="blue">1.87<br> (28ns)</span> 617 </p> 618 </td> 619<td> 620 <p> 621 <span class="blue">1.60<br> (24ns)</span> 622 </p> 623 </td> 624<td> 625 <p> 626 <span class="green">1.00<br> (15ns)</span> 627 </p> 628 </td> 629</tr> 630<tr> 631<td> 632 <p> 633 Exponential (PDF) 634 </p> 635 </td> 636<td> 637 <p> 638 <span class="blue">1.58<br> (30ns)</span> 639 </p> 640 </td> 641<td> 642 <p> 643 <span class="blue">1.84<br> (35ns)</span> 644 </p> 645 </td> 646<td> 647 <p> 648 <span class="blue">2.00<br> (38ns)</span> 649 </p> 650 </td> 651<td> 652 <p> 653 <span class="green">1.00<br> (19ns)</span> 654 </p> 655 </td> 656</tr> 657<tr> 658<td> 659 <p> 660 Exponential (quantile) 661 </p> 662 </td> 663<td> 664 <p> 665 <span class="green">1.00<br> (23ns)</span> 666 </p> 667 </td> 668<td> 669 <p> 670 <span class="green">1.13<br> (26ns)</span> 671 </p> 672 </td> 673<td> 674 <p> 675 <span class="green">1.17<br> (27ns)</span> 676 </p> 677 </td> 678<td> 679 <p> 680 <span class="green">1.04<br> (24ns)</span> 681 </p> 682 </td> 683</tr> 684<tr> 685<td> 686 <p> 687 ExtremeValue (CDF) 688 </p> 689 </td> 690<td> 691 <p> 692 <span class="blue">1.78<br> (57ns)</span> 693 </p> 694 </td> 695<td> 696 <p> 697 <span class="blue">1.81<br> (58ns)</span> 698 </p> 699 </td> 700<td> 701 <p> 702 <span class="blue">1.81<br> (58ns)</span> 703 </p> 704 </td> 705<td> 706 <p> 707 <span class="green">1.00<br> (32ns)</span> 708 </p> 709 </td> 710</tr> 711<tr> 712<td> 713 <p> 714 ExtremeValue (PDF) 715 </p> 716 </td> 717<td> 718 <p> 719 <span class="blue">1.96<br> (90ns)</span> 720 </p> 721 </td> 722<td> 723 <p> 724 <span class="blue">1.85<br> (85ns)</span> 725 </p> 726 </td> 727<td> 728 <p> 729 <span class="blue">1.83<br> (84ns)</span> 730 </p> 731 </td> 732<td> 733 <p> 734 <span class="green">1.00<br> (46ns)</span> 735 </p> 736 </td> 737</tr> 738<tr> 739<td> 740 <p> 741 ExtremeValue (quantile) 742 </p> 743 </td> 744<td> 745 <p> 746 <span class="blue">1.43<br> (53ns)</span> 747 </p> 748 </td> 749<td> 750 <p> 751 <span class="blue">1.38<br> (51ns)</span> 752 </p> 753 </td> 754<td> 755 <p> 756 <span class="blue">1.43<br> (53ns)</span> 757 </p> 758 </td> 759<td> 760 <p> 761 <span class="green">1.00<br> (37ns)</span> 762 </p> 763 </td> 764</tr> 765<tr> 766<td> 767 <p> 768 F (CDF) 769 </p> 770 </td> 771<td> 772 <p> 773 <span class="red">4.46<br> (817ns)</span> 774 </p> 775 </td> 776<td> 777 <p> 778 <span class="blue">1.58<br> (289ns)</span> 779 </p> 780 </td> 781<td> 782 <p> 783 <span class="blue">1.24<br> (227ns)</span> 784 </p> 785 </td> 786<td> 787 <p> 788 <span class="green">1.00<br> (183ns)</span> 789 </p> 790 </td> 791</tr> 792<tr> 793<td> 794 <p> 795 F (PDF) 796 </p> 797 </td> 798<td> 799 <p> 800 <span class="red">3.37<br> (361ns)</span> 801 </p> 802 </td> 803<td> 804 <p> 805 <span class="green">1.18<br> (126ns)</span> 806 </p> 807 </td> 808<td> 809 <p> 810 <span class="green">1.12<br> (120ns)</span> 811 </p> 812 </td> 813<td> 814 <p> 815 <span class="green">1.00<br> (107ns)</span> 816 </p> 817 </td> 818</tr> 819<tr> 820<td> 821 <p> 822 F (quantile) 823 </p> 824 </td> 825<td> 826 <p> 827 <span class="red">2.70<br> (2615ns)</span> 828 </p> 829 </td> 830<td> 831 <p> 832 <span class="blue">1.28<br> (1241ns)</span> 833 </p> 834 </td> 835<td> 836 <p> 837 <span class="green">1.03<br> (995ns)</span> 838 </p> 839 </td> 840<td> 841 <p> 842 <span class="green">1.00<br> (969ns)</span> 843 </p> 844 </td> 845</tr> 846<tr> 847<td> 848 <p> 849 Gamma (CDF) 850 </p> 851 </td> 852<td> 853 <p> 854 <span class="red">3.90<br> (714ns)</span> 855 </p> 856 </td> 857<td> 858 <p> 859 <span class="blue">1.46<br> (267ns)</span> 860 </p> 861 </td> 862<td> 863 <p> 864 <span class="blue">1.47<br> (269ns)</span> 865 </p> 866 </td> 867<td> 868 <p> 869 <span class="green">1.00<br> (183ns)</span> 870 </p> 871 </td> 872</tr> 873<tr> 874<td> 875 <p> 876 Gamma (PDF) 877 </p> 878 </td> 879<td> 880 <p> 881 <span class="red">5.75<br> (437ns)</span> 882 </p> 883 </td> 884<td> 885 <p> 886 <span class="blue">1.49<br> (113ns)</span> 887 </p> 888 </td> 889<td> 890 <p> 891 <span class="blue">1.51<br> (115ns)</span> 892 </p> 893 </td> 894<td> 895 <p> 896 <span class="green">1.00<br> (76ns)</span> 897 </p> 898 </td> 899</tr> 900<tr> 901<td> 902 <p> 903 Gamma (quantile) 904 </p> 905 </td> 906<td> 907 <p> 908 <span class="red">4.35<br> (1827ns)</span> 909 </p> 910 </td> 911<td> 912 <p> 913 <span class="blue">1.80<br> (755ns)</span> 914 </p> 915 </td> 916<td> 917 <p> 918 <span class="blue">1.22<br> (511ns)</span> 919 </p> 920 </td> 921<td> 922 <p> 923 <span class="green">1.00<br> (420ns)</span> 924 </p> 925 </td> 926</tr> 927<tr> 928<td> 929 <p> 930 Geometric (CDF) 931 </p> 932 </td> 933<td> 934 <p> 935 <span class="green">1.00<br> (25ns)</span> 936 </p> 937 </td> 938<td> 939 <p> 940 <span class="green">1.08<br> (27ns)</span> 941 </p> 942 </td> 943<td> 944 <p> 945 <span class="green">1.08<br> (27ns)</span> 946 </p> 947 </td> 948<td> 949 <p> 950 <span class="green">1.16<br> (29ns)</span> 951 </p> 952 </td> 953</tr> 954<tr> 955<td> 956 <p> 957 Geometric (PDF) 958 </p> 959 </td> 960<td> 961 <p> 962 <span class="blue">1.44<br> (23ns)</span> 963 </p> 964 </td> 965<td> 966 <p> 967 <span class="blue">1.44<br> (23ns)</span> 968 </p> 969 </td> 970<td> 971 <p> 972 <span class="blue">1.56<br> (25ns)</span> 973 </p> 974 </td> 975<td> 976 <p> 977 <span class="green">1.00<br> (16ns)</span> 978 </p> 979 </td> 980</tr> 981<tr> 982<td> 983 <p> 984 Geometric (quantile) 985 </p> 986 </td> 987<td> 988 <p> 989 <span class="green">1.00<br> (25ns)</span> 990 </p> 991 </td> 992<td> 993 <p> 994 <span class="green">1.12<br> (28ns)</span> 995 </p> 996 </td> 997<td> 998 <p> 999 <span class="green">1.04<br> (26ns)</span> 1000 </p> 1001 </td> 1002<td> 1003 <p> 1004 <span class="blue">1.24<br> (31ns)</span> 1005 </p> 1006 </td> 1007</tr> 1008<tr> 1009<td> 1010 <p> 1011 Hypergeometric (CDF) 1012 </p> 1013 </td> 1014<td> 1015 <p> 1016 <span class="green">1.08<br> (66745ns)</span> 1017 </p> 1018 </td> 1019<td> 1020 <p> 1021 <span class="green">1.00<br> (61922ns)</span> 1022 </p> 1023 </td> 1024<td> 1025 <p> 1026 <span class="green">1.02<br> (62901ns)</span> 1027 </p> 1028 </td> 1029<td> 1030 <p> 1031 <span class="green">1.07<br> (66289ns)</span> 1032 </p> 1033 </td> 1034</tr> 1035<tr> 1036<td> 1037 <p> 1038 Hypergeometric (PDF) 1039 </p> 1040 </td> 1041<td> 1042 <p> 1043 <span class="green">1.16<br> (73824ns)</span> 1044 </p> 1045 </td> 1046<td> 1047 <p> 1048 <span class="green">1.00<br> (63790ns)</span> 1049 </p> 1050 </td> 1051<td> 1052 <p> 1053 <span class="green">1.02<br> (65130ns)</span> 1054 </p> 1055 </td> 1056<td> 1057 <p> 1058 <span class="green">1.09<br> (69844ns)</span> 1059 </p> 1060 </td> 1061</tr> 1062<tr> 1063<td> 1064 <p> 1065 Hypergeometric (quantile) 1066 </p> 1067 </td> 1068<td> 1069 <p> 1070 <span class="green">1.00<br> (131293ns)</span> 1071 </p> 1072 </td> 1073<td> 1074 <p> 1075 <span class="blue">1.27<br> (166268ns)</span> 1076 </p> 1077 </td> 1078<td> 1079 <p> 1080 <span class="blue">1.24<br> (163105ns)</span> 1081 </p> 1082 </td> 1083<td> 1084 <p> 1085 <span class="green">1.14<br> (149745ns)</span> 1086 </p> 1087 </td> 1088</tr> 1089<tr> 1090<td> 1091 <p> 1092 InverseChiSquared (CDF) 1093 </p> 1094 </td> 1095<td> 1096 <p> 1097 <span class="red">3.06<br> (1538ns)</span> 1098 </p> 1099 </td> 1100<td> 1101 <p> 1102 <span class="blue">1.60<br> (803ns)</span> 1103 </p> 1104 </td> 1105<td> 1106 <p> 1107 <span class="blue">1.31<br> (657ns)</span> 1108 </p> 1109 </td> 1110<td> 1111 <p> 1112 <span class="green">1.00<br> (502ns)</span> 1113 </p> 1114 </td> 1115</tr> 1116<tr> 1117<td> 1118 <p> 1119 InverseChiSquared (PDF) 1120 </p> 1121 </td> 1122<td> 1123 <p> 1124 <span class="red">4.42<br> (367ns)</span> 1125 </p> 1126 </td> 1127<td> 1128 <p> 1129 <span class="blue">1.63<br> (135ns)</span> 1130 </p> 1131 </td> 1132<td> 1133 <p> 1134 <span class="blue">1.52<br> (126ns)</span> 1135 </p> 1136 </td> 1137<td> 1138 <p> 1139 <span class="green">1.00<br> (83ns)</span> 1140 </p> 1141 </td> 1142</tr> 1143<tr> 1144<td> 1145 <p> 1146 InverseChiSquared (quantile) 1147 </p> 1148 </td> 1149<td> 1150 <p> 1151 <span class="red">2.92<br> (2328ns)</span> 1152 </p> 1153 </td> 1154<td> 1155 <p> 1156 <span class="blue">1.66<br> (1322ns)</span> 1157 </p> 1158 </td> 1159<td> 1160 <p> 1161 <span class="blue">1.21<br> (963ns)</span> 1162 </p> 1163 </td> 1164<td> 1165 <p> 1166 <span class="green">1.00<br> (797ns)</span> 1167 </p> 1168 </td> 1169</tr> 1170<tr> 1171<td> 1172 <p> 1173 InverseGamma (CDF) 1174 </p> 1175 </td> 1176<td> 1177 <p> 1178 <span class="red">3.17<br> (806ns)</span> 1179 </p> 1180 </td> 1181<td> 1182 <p> 1183 <span class="blue">1.41<br> (359ns)</span> 1184 </p> 1185 </td> 1186<td> 1187 <p> 1188 <span class="green">1.18<br> (299ns)</span> 1189 </p> 1190 </td> 1191<td> 1192 <p> 1193 <span class="green">1.00<br> (254ns)</span> 1194 </p> 1195 </td> 1196</tr> 1197<tr> 1198<td> 1199 <p> 1200 InverseGamma (PDF) 1201 </p> 1202 </td> 1203<td> 1204 <p> 1205 <span class="red">5.26<br> (515ns)</span> 1206 </p> 1207 </td> 1208<td> 1209 <p> 1210 <span class="blue">1.54<br> (151ns)</span> 1211 </p> 1212 </td> 1213<td> 1214 <p> 1215 <span class="blue">1.49<br> (146ns)</span> 1216 </p> 1217 </td> 1218<td> 1219 <p> 1220 <span class="green">1.00<br> (98ns)</span> 1221 </p> 1222 </td> 1223</tr> 1224<tr> 1225<td> 1226 <p> 1227 InverseGamma (quantile) 1228 </p> 1229 </td> 1230<td> 1231 <p> 1232 <span class="red">4.02<br> (2187ns)</span> 1233 </p> 1234 </td> 1235<td> 1236 <p> 1237 <span class="blue">1.69<br> (921ns)</span> 1238 </p> 1239 </td> 1240<td> 1241 <p> 1242 <span class="green">1.19<br> (645ns)</span> 1243 </p> 1244 </td> 1245<td> 1246 <p> 1247 <span class="green">1.00<br> (544ns)</span> 1248 </p> 1249 </td> 1250</tr> 1251<tr> 1252<td> 1253 <p> 1254 InverseGaussian (CDF) 1255 </p> 1256 </td> 1257<td> 1258 <p> 1259 <span class="blue">1.89<br> (236ns)</span> 1260 </p> 1261 </td> 1262<td> 1263 <p> 1264 <span class="blue">1.94<br> (242ns)</span> 1265 </p> 1266 </td> 1267<td> 1268 <p> 1269 <span class="blue">1.99<br> (249ns)</span> 1270 </p> 1271 </td> 1272<td> 1273 <p> 1274 <span class="green">1.00<br> (125ns)</span> 1275 </p> 1276 </td> 1277</tr> 1278<tr> 1279<td> 1280 <p> 1281 InverseGaussian (PDF) 1282 </p> 1283 </td> 1284<td> 1285 <p> 1286 <span class="blue">1.53<br> (23ns)</span> 1287 </p> 1288 </td> 1289<td> 1290 <p> 1291 <span class="blue">1.53<br> (23ns)</span> 1292 </p> 1293 </td> 1294<td> 1295 <p> 1296 <span class="blue">1.53<br> (23ns)</span> 1297 </p> 1298 </td> 1299<td> 1300 <p> 1301 <span class="green">1.00<br> (15ns)</span> 1302 </p> 1303 </td> 1304</tr> 1305<tr> 1306<td> 1307 <p> 1308 InverseGaussian (quantile) 1309 </p> 1310 </td> 1311<td> 1312 <p> 1313 <span class="red">2.09<br> (3530ns)</span> 1314 </p> 1315 </td> 1316<td> 1317 <p> 1318 <span class="red">2.26<br> (3823ns)</span> 1319 </p> 1320 </td> 1321<td> 1322 <p> 1323 <span class="red">2.14<br> (3611ns)</span> 1324 </p> 1325 </td> 1326<td> 1327 <p> 1328 <span class="green">1.00<br> (1688ns)</span> 1329 </p> 1330 </td> 1331</tr> 1332<tr> 1333<td> 1334 <p> 1335 Laplace (CDF) 1336 </p> 1337 </td> 1338<td> 1339 <p> 1340 <span class="blue">1.58<br> (41ns)</span> 1341 </p> 1342 </td> 1343<td> 1344 <p> 1345 <span class="blue">1.62<br> (42ns)</span> 1346 </p> 1347 </td> 1348<td> 1349 <p> 1350 <span class="blue">1.62<br> (42ns)</span> 1351 </p> 1352 </td> 1353<td> 1354 <p> 1355 <span class="green">1.00<br> (26ns)</span> 1356 </p> 1357 </td> 1358</tr> 1359<tr> 1360<td> 1361 <p> 1362 Laplace (PDF) 1363 </p> 1364 </td> 1365<td> 1366 <p> 1367 <span class="blue">1.56<br> (42ns)</span> 1368 </p> 1369 </td> 1370<td> 1371 <p> 1372 <span class="blue">1.59<br> (43ns)</span> 1373 </p> 1374 </td> 1375<td> 1376 <p> 1377 <span class="blue">1.59<br> (43ns)</span> 1378 </p> 1379 </td> 1380<td> 1381 <p> 1382 <span class="green">1.00<br> (27ns)</span> 1383 </p> 1384 </td> 1385</tr> 1386<tr> 1387<td> 1388 <p> 1389 Laplace (quantile) 1390 </p> 1391 </td> 1392<td> 1393 <p> 1394 <span class="blue">1.39<br> (39ns)</span> 1395 </p> 1396 </td> 1397<td> 1398 <p> 1399 <span class="blue">1.43<br> (40ns)</span> 1400 </p> 1401 </td> 1402<td> 1403 <p> 1404 <span class="blue">1.36<br> (38ns)</span> 1405 </p> 1406 </td> 1407<td> 1408 <p> 1409 <span class="green">1.00<br> (28ns)</span> 1410 </p> 1411 </td> 1412</tr> 1413<tr> 1414<td> 1415 <p> 1416 LogNormal (CDF) 1417 </p> 1418 </td> 1419<td> 1420 <p> 1421 <span class="red">2.12<br> (225ns)</span> 1422 </p> 1423 </td> 1424<td> 1425 <p> 1426 <span class="blue">1.33<br> (141ns)</span> 1427 </p> 1428 </td> 1429<td> 1430 <p> 1431 <span class="blue">1.36<br> (144ns)</span> 1432 </p> 1433 </td> 1434<td> 1435 <p> 1436 <span class="green">1.00<br> (106ns)</span> 1437 </p> 1438 </td> 1439</tr> 1440<tr> 1441<td> 1442 <p> 1443 LogNormal (PDF) 1444 </p> 1445 </td> 1446<td> 1447 <p> 1448 <span class="blue">1.68<br> (74ns)</span> 1449 </p> 1450 </td> 1451<td> 1452 <p> 1453 <span class="blue">1.73<br> (76ns)</span> 1454 </p> 1455 </td> 1456<td> 1457 <p> 1458 <span class="blue">1.70<br> (75ns)</span> 1459 </p> 1460 </td> 1461<td> 1462 <p> 1463 <span class="green">1.00<br> (44ns)</span> 1464 </p> 1465 </td> 1466</tr> 1467<tr> 1468<td> 1469 <p> 1470 LogNormal (quantile) 1471 </p> 1472 </td> 1473<td> 1474 <p> 1475 <span class="blue">1.75<br> (105ns)</span> 1476 </p> 1477 </td> 1478<td> 1479 <p> 1480 <span class="blue">1.68<br> (101ns)</span> 1481 </p> 1482 </td> 1483<td> 1484 <p> 1485 <span class="blue">1.40<br> (84ns)</span> 1486 </p> 1487 </td> 1488<td> 1489 <p> 1490 <span class="green">1.00<br> (60ns)</span> 1491 </p> 1492 </td> 1493</tr> 1494<tr> 1495<td> 1496 <p> 1497 Logistic (CDF) 1498 </p> 1499 </td> 1500<td> 1501 <p> 1502 <span class="blue">1.52<br> (41ns)</span> 1503 </p> 1504 </td> 1505<td> 1506 <p> 1507 <span class="blue">1.52<br> (41ns)</span> 1508 </p> 1509 </td> 1510<td> 1511 <p> 1512 <span class="blue">1.74<br> (47ns)</span> 1513 </p> 1514 </td> 1515<td> 1516 <p> 1517 <span class="green">1.00<br> (27ns)</span> 1518 </p> 1519 </td> 1520</tr> 1521<tr> 1522<td> 1523 <p> 1524 Logistic (PDF) 1525 </p> 1526 </td> 1527<td> 1528 <p> 1529 <span class="blue">1.59<br> (43ns)</span> 1530 </p> 1531 </td> 1532<td> 1533 <p> 1534 <span class="blue">1.59<br> (43ns)</span> 1535 </p> 1536 </td> 1537<td> 1538 <p> 1539 <span class="blue">1.59<br> (43ns)</span> 1540 </p> 1541 </td> 1542<td> 1543 <p> 1544 <span class="green">1.00<br> (27ns)</span> 1545 </p> 1546 </td> 1547</tr> 1548<tr> 1549<td> 1550 <p> 1551 Logistic (quantile) 1552 </p> 1553 </td> 1554<td> 1555 <p> 1556 <span class="blue">1.23<br> (37ns)</span> 1557 </p> 1558 </td> 1559<td> 1560 <p> 1561 <span class="blue">1.23<br> (37ns)</span> 1562 </p> 1563 </td> 1564<td> 1565 <p> 1566 <span class="blue">1.27<br> (38ns)</span> 1567 </p> 1568 </td> 1569<td> 1570 <p> 1571 <span class="green">1.00<br> (30ns)</span> 1572 </p> 1573 </td> 1574</tr> 1575<tr> 1576<td> 1577 <p> 1578 NegativeBinomial (CDF) 1579 </p> 1580 </td> 1581<td> 1582 <p> 1583 <span class="red">4.51<br> (1354ns)</span> 1584 </p> 1585 </td> 1586<td> 1587 <p> 1588 <span class="blue">1.80<br> (540ns)</span> 1589 </p> 1590 </td> 1591<td> 1592 <p> 1593 <span class="blue">1.37<br> (410ns)</span> 1594 </p> 1595 </td> 1596<td> 1597 <p> 1598 <span class="green">1.00<br> (300ns)</span> 1599 </p> 1600 </td> 1601</tr> 1602<tr> 1603<td> 1604 <p> 1605 NegativeBinomial (PDF) 1606 </p> 1607 </td> 1608<td> 1609 <p> 1610 <span class="red">3.62<br> (445ns)</span> 1611 </p> 1612 </td> 1613<td> 1614 <p> 1615 <span class="green">1.07<br> (131ns)</span> 1616 </p> 1617 </td> 1618<td> 1619 <p> 1620 <span class="green">1.07<br> (132ns)</span> 1621 </p> 1622 </td> 1623<td> 1624 <p> 1625 <span class="green">1.00<br> (123ns)</span> 1626 </p> 1627 </td> 1628</tr> 1629<tr> 1630<td> 1631 <p> 1632 NegativeBinomial (quantile) 1633 </p> 1634 </td> 1635<td> 1636 <p> 1637 <span class="red">3.26<br> (7468ns)</span> 1638 </p> 1639 </td> 1640<td> 1641 <p> 1642 <span class="blue">1.27<br> (2918ns)</span> 1643 </p> 1644 </td> 1645<td> 1646 <p> 1647 <span class="green">1.00<br> (2294ns)</span> 1648 </p> 1649 </td> 1650<td> 1651 <p> 1652 <span class="green">1.15<br> (2649ns)</span> 1653 </p> 1654 </td> 1655</tr> 1656<tr> 1657<td> 1658 <p> 1659 NonCentralBeta (CDF) 1660 </p> 1661 </td> 1662<td> 1663 <p> 1664 <span class="red">4.88<br> (2083ns)</span> 1665 </p> 1666 </td> 1667<td> 1668 <p> 1669 <span class="blue">1.80<br> (769ns)</span> 1670 </p> 1671 </td> 1672<td> 1673 <p> 1674 <span class="blue">1.61<br> (689ns)</span> 1675 </p> 1676 </td> 1677<td> 1678 <p> 1679 <span class="green">1.00<br> (427ns)</span> 1680 </p> 1681 </td> 1682</tr> 1683<tr> 1684<td> 1685 <p> 1686 NonCentralBeta (PDF) 1687 </p> 1688 </td> 1689<td> 1690 <p> 1691 <span class="red">3.83<br> (1265ns)</span> 1692 </p> 1693 </td> 1694<td> 1695 <p> 1696 <span class="blue">1.55<br> (511ns)</span> 1697 </p> 1698 </td> 1699<td> 1700 <p> 1701 <span class="blue">1.42<br> (468ns)</span> 1702 </p> 1703 </td> 1704<td> 1705 <p> 1706 <span class="green">1.00<br> (330ns)</span> 1707 </p> 1708 </td> 1709</tr> 1710<tr> 1711<td> 1712 <p> 1713 NonCentralBeta (quantile) 1714 </p> 1715 </td> 1716<td> 1717 <p> 1718 <span class="red">7.51<br> (55809ns)</span> 1719 </p> 1720 </td> 1721<td> 1722 <p> 1723 <span class="red">2.59<br> (19273ns)</span> 1724 </p> 1725 </td> 1726<td> 1727 <p> 1728 <span class="red">2.26<br> (16812ns)</span> 1729 </p> 1730 </td> 1731<td> 1732 <p> 1733 <span class="green">1.00<br> (7433ns)</span> 1734 </p> 1735 </td> 1736</tr> 1737<tr> 1738<td> 1739 <p> 1740 NonCentralChiSquared (CDF) 1741 </p> 1742 </td> 1743<td> 1744 <p> 1745 <span class="red">2.90<br> (4498ns)</span> 1746 </p> 1747 </td> 1748<td> 1749 <p> 1750 <span class="blue">1.82<br> (2821ns)</span> 1751 </p> 1752 </td> 1753<td> 1754 <p> 1755 <span class="blue">1.43<br> (2220ns)</span> 1756 </p> 1757 </td> 1758<td> 1759 <p> 1760 <span class="green">1.00<br> (1552ns)</span> 1761 </p> 1762 </td> 1763</tr> 1764<tr> 1765<td> 1766 <p> 1767 NonCentralChiSquared (PDF) 1768 </p> 1769 </td> 1770<td> 1771 <p> 1772 <span class="red">3.52<br> (953ns)</span> 1773 </p> 1774 </td> 1775<td> 1776 <p> 1777 <span class="blue">1.61<br> (436ns)</span> 1778 </p> 1779 </td> 1780<td> 1781 <p> 1782 <span class="blue">1.54<br> (416ns)</span> 1783 </p> 1784 </td> 1785<td> 1786 <p> 1787 <span class="green">1.00<br> (271ns)</span> 1788 </p> 1789 </td> 1790</tr> 1791<tr> 1792<td> 1793 <p> 1794 NonCentralChiSquared (quantile) 1795 </p> 1796 </td> 1797<td> 1798 <p> 1799 <span class="red">4.15<br> (31465ns)</span> 1800 </p> 1801 </td> 1802<td> 1803 <p> 1804 <span class="red">2.33<br> (17712ns)</span> 1805 </p> 1806 </td> 1807<td> 1808 <p> 1809 <span class="blue">1.56<br> (11870ns)</span> 1810 </p> 1811 </td> 1812<td> 1813 <p> 1814 <span class="green">1.00<br> (7586ns)</span> 1815 </p> 1816 </td> 1817</tr> 1818<tr> 1819<td> 1820 <p> 1821 NonCentralF (CDF) 1822 </p> 1823 </td> 1824<td> 1825 <p> 1826 <span class="red">4.26<br> (1828ns)</span> 1827 </p> 1828 </td> 1829<td> 1830 <p> 1831 <span class="blue">1.55<br> (667ns)</span> 1832 </p> 1833 </td> 1834<td> 1835 <p> 1836 <span class="blue">1.36<br> (584ns)</span> 1837 </p> 1838 </td> 1839<td> 1840 <p> 1841 <span class="green">1.00<br> (429ns)</span> 1842 </p> 1843 </td> 1844</tr> 1845<tr> 1846<td> 1847 <p> 1848 NonCentralF (PDF) 1849 </p> 1850 </td> 1851<td> 1852 <p> 1853 <span class="red">3.98<br> (1506ns)</span> 1854 </p> 1855 </td> 1856<td> 1857 <p> 1858 <span class="blue">1.49<br> (564ns)</span> 1859 </p> 1860 </td> 1861<td> 1862 <p> 1863 <span class="blue">1.29<br> (488ns)</span> 1864 </p> 1865 </td> 1866<td> 1867 <p> 1868 <span class="green">1.00<br> (378ns)</span> 1869 </p> 1870 </td> 1871</tr> 1872<tr> 1873<td> 1874 <p> 1875 NonCentralF (quantile) 1876 </p> 1877 </td> 1878<td> 1879 <p> 1880 <span class="red">4.52<br> (29414ns)</span> 1881 </p> 1882 </td> 1883<td> 1884 <p> 1885 <span class="blue">1.57<br> (10228ns)</span> 1886 </p> 1887 </td> 1888<td> 1889 <p> 1890 <span class="blue">1.31<br> (8543ns)</span> 1891 </p> 1892 </td> 1893<td> 1894 <p> 1895 <span class="green">1.00<br> (6504ns)</span> 1896 </p> 1897 </td> 1898</tr> 1899<tr> 1900<td> 1901 <p> 1902 NonCentralT (CDF) 1903 </p> 1904 </td> 1905<td> 1906 <p> 1907 <span class="red">3.79<br> (6416ns)</span> 1908 </p> 1909 </td> 1910<td> 1911 <p> 1912 <span class="blue">1.72<br> (2907ns)</span> 1913 </p> 1914 </td> 1915<td> 1916 <p> 1917 <span class="blue">1.52<br> (2572ns)</span> 1918 </p> 1919 </td> 1920<td> 1921 <p> 1922 <span class="green">1.00<br> (1691ns)</span> 1923 </p> 1924 </td> 1925</tr> 1926<tr> 1927<td> 1928 <p> 1929 NonCentralT (PDF) 1930 </p> 1931 </td> 1932<td> 1933 <p> 1934 <span class="red">3.41<br> (4034ns)</span> 1935 </p> 1936 </td> 1937<td> 1938 <p> 1939 <span class="blue">1.93<br> (2284ns)</span> 1940 </p> 1941 </td> 1942<td> 1943 <p> 1944 <span class="blue">1.75<br> (2065ns)</span> 1945 </p> 1946 </td> 1947<td> 1948 <p> 1949 <span class="green">1.00<br> (1182ns)</span> 1950 </p> 1951 </td> 1952</tr> 1953<tr> 1954<td> 1955 <p> 1956 NonCentralT (quantile) 1957 </p> 1958 </td> 1959<td> 1960 <p> 1961 <span class="red">5.06<br> (68590ns)</span> 1962 </p> 1963 </td> 1964<td> 1965 <p> 1966 <span class="red">2.17<br> (29386ns)</span> 1967 </p> 1968 </td> 1969<td> 1970 <p> 1971 <span class="blue">1.65<br> (22334ns)</span> 1972 </p> 1973 </td> 1974<td> 1975 <p> 1976 <span class="green">1.00<br> (13546ns)</span> 1977 </p> 1978 </td> 1979</tr> 1980<tr> 1981<td> 1982 <p> 1983 Normal (CDF) 1984 </p> 1985 </td> 1986<td> 1987 <p> 1988 <span class="red">2.24<br> (150ns)</span> 1989 </p> 1990 </td> 1991<td> 1992 <p> 1993 <span class="blue">1.34<br> (90ns)</span> 1994 </p> 1995 </td> 1996<td> 1997 <p> 1998 <span class="blue">1.28<br> (86ns)</span> 1999 </p> 2000 </td> 2001<td> 2002 <p> 2003 <span class="green">1.00<br> (67ns)</span> 2004 </p> 2005 </td> 2006</tr> 2007<tr> 2008<td> 2009 <p> 2010 Normal (PDF) 2011 </p> 2012 </td> 2013<td> 2014 <p> 2015 <span class="blue">1.55<br> (34ns)</span> 2016 </p> 2017 </td> 2018<td> 2019 <p> 2020 <span class="blue">1.50<br> (33ns)</span> 2021 </p> 2022 </td> 2023<td> 2024 <p> 2025 <span class="blue">1.59<br> (35ns)</span> 2026 </p> 2027 </td> 2028<td> 2029 <p> 2030 <span class="green">1.00<br> (22ns)</span> 2031 </p> 2032 </td> 2033</tr> 2034<tr> 2035<td> 2036 <p> 2037 Normal (quantile) 2038 </p> 2039 </td> 2040<td> 2041 <p> 2042 <span class="blue">1.68<br> (57ns)</span> 2043 </p> 2044 </td> 2045<td> 2046 <p> 2047 <span class="green">1.18<br> (40ns)</span> 2048 </p> 2049 </td> 2050<td> 2051 <p> 2052 <span class="blue">1.24<br> (42ns)</span> 2053 </p> 2054 </td> 2055<td> 2056 <p> 2057 <span class="green">1.00<br> (34ns)</span> 2058 </p> 2059 </td> 2060</tr> 2061<tr> 2062<td> 2063 <p> 2064 Pareto (CDF) 2065 </p> 2066 </td> 2067<td> 2068 <p> 2069 <span class="blue">1.40<br> (49ns)</span> 2070 </p> 2071 </td> 2072<td> 2073 <p> 2074 <span class="blue">1.46<br> (51ns)</span> 2075 </p> 2076 </td> 2077<td> 2078 <p> 2079 <span class="blue">1.40<br> (49ns)</span> 2080 </p> 2081 </td> 2082<td> 2083 <p> 2084 <span class="green">1.00<br> (35ns)</span> 2085 </p> 2086 </td> 2087</tr> 2088<tr> 2089<td> 2090 <p> 2091 Pareto (PDF) 2092 </p> 2093 </td> 2094<td> 2095 <p> 2096 <span class="blue">1.95<br> (86ns)</span> 2097 </p> 2098 </td> 2099<td> 2100 <p> 2101 <span class="blue">1.95<br> (86ns)</span> 2102 </p> 2103 </td> 2104<td> 2105 <p> 2106 <span class="red">2.09<br> (92ns)</span> 2107 </p> 2108 </td> 2109<td> 2110 <p> 2111 <span class="green">1.00<br> (44ns)</span> 2112 </p> 2113 </td> 2114</tr> 2115<tr> 2116<td> 2117 <p> 2118 Pareto (quantile) 2119 </p> 2120 </td> 2121<td> 2122 <p> 2123 <span class="blue">1.76<br> (51ns)</span> 2124 </p> 2125 </td> 2126<td> 2127 <p> 2128 <span class="blue">1.79<br> (52ns)</span> 2129 </p> 2130 </td> 2131<td> 2132 <p> 2133 <span class="blue">1.72<br> (50ns)</span> 2134 </p> 2135 </td> 2136<td> 2137 <p> 2138 <span class="green">1.00<br> (29ns)</span> 2139 </p> 2140 </td> 2141</tr> 2142<tr> 2143<td> 2144 <p> 2145 Poisson (CDF) 2146 </p> 2147 </td> 2148<td> 2149 <p> 2150 <span class="red">3.38<br> (264ns)</span> 2151 </p> 2152 </td> 2153<td> 2154 <p> 2155 <span class="blue">1.56<br> (122ns)</span> 2156 </p> 2157 </td> 2158<td> 2159 <p> 2160 <span class="blue">1.45<br> (113ns)</span> 2161 </p> 2162 </td> 2163<td> 2164 <p> 2165 <span class="green">1.00<br> (78ns)</span> 2166 </p> 2167 </td> 2168</tr> 2169<tr> 2170<td> 2171 <p> 2172 Poisson (PDF) 2173 </p> 2174 </td> 2175<td> 2176 <p> 2177 <span class="red">4.19<br> (218ns)</span> 2178 </p> 2179 </td> 2180<td> 2181 <p> 2182 <span class="blue">1.54<br> (80ns)</span> 2183 </p> 2184 </td> 2185<td> 2186 <p> 2187 <span class="blue">1.52<br> (79ns)</span> 2188 </p> 2189 </td> 2190<td> 2191 <p> 2192 <span class="green">1.00<br> (52ns)</span> 2193 </p> 2194 </td> 2195</tr> 2196<tr> 2197<td> 2198 <p> 2199 Poisson (quantile) 2200 </p> 2201 </td> 2202<td> 2203 <p> 2204 <span class="red">3.04<br> (1193ns)</span> 2205 </p> 2206 </td> 2207<td> 2208 <p> 2209 <span class="blue">1.38<br> (540ns)</span> 2210 </p> 2211 </td> 2212<td> 2213 <p> 2214 <span class="blue">1.35<br> (528ns)</span> 2215 </p> 2216 </td> 2217<td> 2218 <p> 2219 <span class="green">1.00<br> (392ns)</span> 2220 </p> 2221 </td> 2222</tr> 2223<tr> 2224<td> 2225 <p> 2226 Rayleigh (CDF) 2227 </p> 2228 </td> 2229<td> 2230 <p> 2231 <span class="blue">1.35<br> (23ns)</span> 2232 </p> 2233 </td> 2234<td> 2235 <p> 2236 <span class="blue">1.41<br> (24ns)</span> 2237 </p> 2238 </td> 2239<td> 2240 <p> 2241 <span class="blue">1.41<br> (24ns)</span> 2242 </p> 2243 </td> 2244<td> 2245 <p> 2246 <span class="green">1.00<br> (17ns)</span> 2247 </p> 2248 </td> 2249</tr> 2250<tr> 2251<td> 2252 <p> 2253 Rayleigh (PDF) 2254 </p> 2255 </td> 2256<td> 2257 <p> 2258 <span class="blue">1.68<br> (37ns)</span> 2259 </p> 2260 </td> 2261<td> 2262 <p> 2263 <span class="blue">1.64<br> (36ns)</span> 2264 </p> 2265 </td> 2266<td> 2267 <p> 2268 <span class="blue">1.64<br> (36ns)</span> 2269 </p> 2270 </td> 2271<td> 2272 <p> 2273 <span class="green">1.00<br> (22ns)</span> 2274 </p> 2275 </td> 2276</tr> 2277<tr> 2278<td> 2279 <p> 2280 Rayleigh (quantile) 2281 </p> 2282 </td> 2283<td> 2284 <p> 2285 <span class="green">1.04<br> (27ns)</span> 2286 </p> 2287 </td> 2288<td> 2289 <p> 2290 <span class="green">1.04<br> (27ns)</span> 2291 </p> 2292 </td> 2293<td> 2294 <p> 2295 <span class="green">1.00<br> (26ns)</span> 2296 </p> 2297 </td> 2298<td> 2299 <p> 2300 <span class="green">1.08<br> (28ns)</span> 2301 </p> 2302 </td> 2303</tr> 2304<tr> 2305<td> 2306 <p> 2307 SkewNormal (CDF) 2308 </p> 2309 </td> 2310<td> 2311 <p> 2312 <span class="blue">1.43<br> (691ns)</span> 2313 </p> 2314 </td> 2315<td> 2316 <p> 2317 <span class="blue">1.31<br> (633ns)</span> 2318 </p> 2319 </td> 2320<td> 2321 <p> 2322 <span class="blue">1.31<br> (635ns)</span> 2323 </p> 2324 </td> 2325<td> 2326 <p> 2327 <span class="green">1.00<br> (483ns)</span> 2328 </p> 2329 </td> 2330</tr> 2331<tr> 2332<td> 2333 <p> 2334 SkewNormal (PDF) 2335 </p> 2336 </td> 2337<td> 2338 <p> 2339 <span class="red">2.07<br> (174ns)</span> 2340 </p> 2341 </td> 2342<td> 2343 <p> 2344 <span class="blue">1.31<br> (110ns)</span> 2345 </p> 2346 </td> 2347<td> 2348 <p> 2349 <span class="blue">1.29<br> (108ns)</span> 2350 </p> 2351 </td> 2352<td> 2353 <p> 2354 <span class="green">1.00<br> (84ns)</span> 2355 </p> 2356 </td> 2357</tr> 2358<tr> 2359<td> 2360 <p> 2361 SkewNormal (quantile) 2362 </p> 2363 </td> 2364<td> 2365 <p> 2366 <span class="red">2.16<br> (6788ns)</span> 2367 </p> 2368 </td> 2369<td> 2370 <p> 2371 <span class="blue">1.85<br> (5813ns)</span> 2372 </p> 2373 </td> 2374<td> 2375 <p> 2376 <span class="blue">1.31<br> (4118ns)</span> 2377 </p> 2378 </td> 2379<td> 2380 <p> 2381 <span class="green">1.00<br> (3143ns)</span> 2382 </p> 2383 </td> 2384</tr> 2385<tr> 2386<td> 2387 <p> 2388 StudentsT (CDF) 2389 </p> 2390 </td> 2391<td> 2392 <p> 2393 <span class="red">6.44<br> (1893ns)</span> 2394 </p> 2395 </td> 2396<td> 2397 <p> 2398 <span class="red">2.23<br> (656ns)</span> 2399 </p> 2400 </td> 2401<td> 2402 <p> 2403 <span class="red">2.21<br> (650ns)</span> 2404 </p> 2405 </td> 2406<td> 2407 <p> 2408 <span class="green">1.00<br> (294ns)</span> 2409 </p> 2410 </td> 2411</tr> 2412<tr> 2413<td> 2414 <p> 2415 StudentsT (PDF) 2416 </p> 2417 </td> 2418<td> 2419 <p> 2420 <span class="red">6.58<br> (724ns)</span> 2421 </p> 2422 </td> 2423<td> 2424 <p> 2425 <span class="blue">1.60<br> (176ns)</span> 2426 </p> 2427 </td> 2428<td> 2429 <p> 2430 <span class="blue">1.52<br> (167ns)</span> 2431 </p> 2432 </td> 2433<td> 2434 <p> 2435 <span class="green">1.00<br> (110ns)</span> 2436 </p> 2437 </td> 2438</tr> 2439<tr> 2440<td> 2441 <p> 2442 StudentsT (quantile) 2443 </p> 2444 </td> 2445<td> 2446 <p> 2447 <span class="red">5.79<br> (2959ns)</span> 2448 </p> 2449 </td> 2450<td> 2451 <p> 2452 <span class="blue">1.87<br> (954ns)</span> 2453 </p> 2454 </td> 2455<td> 2456 <p> 2457 <span class="blue">1.86<br> (951ns)</span> 2458 </p> 2459 </td> 2460<td> 2461 <p> 2462 <span class="green">1.00<br> (511ns)</span> 2463 </p> 2464 </td> 2465</tr> 2466<tr> 2467<td> 2468 <p> 2469 Weibull (CDF) 2470 </p> 2471 </td> 2472<td> 2473 <p> 2474 <span class="blue">1.73<br> (69ns)</span> 2475 </p> 2476 </td> 2477<td> 2478 <p> 2479 <span class="blue">1.73<br> (69ns)</span> 2480 </p> 2481 </td> 2482<td> 2483 <p> 2484 <span class="blue">1.75<br> (70ns)</span> 2485 </p> 2486 </td> 2487<td> 2488 <p> 2489 <span class="green">1.00<br> (40ns)</span> 2490 </p> 2491 </td> 2492</tr> 2493<tr> 2494<td> 2495 <p> 2496 Weibull (PDF) 2497 </p> 2498 </td> 2499<td> 2500 <p> 2501 <span class="blue">1.98<br> (117ns)</span> 2502 </p> 2503 </td> 2504<td> 2505 <p> 2506 <span class="blue">1.98<br> (117ns)</span> 2507 </p> 2508 </td> 2509<td> 2510 <p> 2511 <span class="blue">1.98<br> (117ns)</span> 2512 </p> 2513 </td> 2514<td> 2515 <p> 2516 <span class="green">1.00<br> (59ns)</span> 2517 </p> 2518 </td> 2519</tr> 2520<tr> 2521<td> 2522 <p> 2523 Weibull (quantile) 2524 </p> 2525 </td> 2526<td> 2527 <p> 2528 <span class="blue">1.21<br> (69ns)</span> 2529 </p> 2530 </td> 2531<td> 2532 <p> 2533 <span class="blue">1.21<br> (69ns)</span> 2534 </p> 2535 </td> 2536<td> 2537 <p> 2538 <span class="green">1.19<br> (68ns)</span> 2539 </p> 2540 </td> 2541<td> 2542 <p> 2543 <span class="green">1.00<br> (57ns)</span> 2544 </p> 2545 </td> 2546</tr> 2547</tbody> 2548</table></div> 2549</div> 2550<br class="table-break"> 2551</div> 2552<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr> 2553<td align="left"></td> 2554<td align="right"><div class="copyright-footer">Copyright © 2006-2019 Nikhar 2555 Agrawal, Anton Bikineev, Paul A. Bristow, Marco Guazzone, Christopher Kormanyos, 2556 Hubert Holin, Bruno Lalande, John Maddock, Jeremy Murphy, Matthew Pulver, Johan 2557 Råde, Gautam Sewani, Benjamin Sobotta, Nicholas Thompson, Thijs van den Berg, 2558 Daryle Walker and Xiaogang Zhang<p> 2559 Distributed under the Boost Software License, Version 1.0. (See accompanying 2560 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>) 2561 </p> 2562</div></td> 2563</tr></table> 2564<hr> 2565<div class="spirit-nav"> 2566<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="multiprecision.html"><img src="../../../../../doc/src/images/next.png" alt="Next"></a> 2567</div> 2568</body> 2569</html> 2570