diff --git a/doc/performance/performance.qbk b/doc/performance/performance.qbk index 3fb3f2203..5e0b135ab 100644 --- a/doc/performance/performance.qbk +++ b/doc/performance/performance.qbk @@ -237,29 +237,18 @@ may be set are as follows: than or equal to `BOOST_MATH_MAX_POLY_ORDER`.]] ] -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. +The performance test suite generates a report for your particular compiler showing which method is likely to work best, +the following tables show the results for MSVC-14.0 and GCC-5.1.0 (Linux). There's not much to choose between +the various methods, but generally loop-unrolled methods perform better. Interestingly, ordering the code +to try and "second guess" possible optimizations seems not to be such a good idea (method 3 below). -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. +[table_Polynomial_Method_Comparison_on_Win32] -[table A Comparison of Polynomial Evaluation Methods -[[Compiler/platform][Method 0][Method 1][Method 2][Method 3]] -[[Microsoft C++ 9.0, Polynomial evaluation] [[perf msvc-Polynomial-method-0..[para 1.26][para (7.421e-008s)]]][[perf msvc-Polynomial-method-1..[para 1.22][para (7.226e-008s)]]][[perf msvc-Polynomial-method-2..[para *1.00*][para (5.901e-008s)]]][[perf msvc-Polynomial-method-3..[para 1.04][para (6.115e-008s)]]]] -[[Microsoft C++ 9.0, Rational evaluation] [[perf msvc-Rational-method-0..[para *1.00*][para (1.008e-007s)]]][[perf msvc-Rational-method-1..[para *1.00*][para (1.008e-007s)]]][[perf msvc-Rational-method-2..[para 1.43][para (1.445e-007s)]]][[perf msvc-Rational-method-3..[para 1.40][para (1.409e-007s)]]]] -[[Intel C++ 11.1 (Windows), Polynomial evaluation] [[perf intel-Polynomial-method-0..[para 1.18][para (6.517e-008s)]]][[perf intel-Polynomial-method-1..[para 1.18][para (6.505e-008s)]]][[perf intel-Polynomial-method-2..[para *1.00*][para (5.516e-008s)]]][[perf intel-Polynomial-method-3..[para *1.00*][para (5.516e-008s)]]]] -[[Intel C++ 11.1 (Windows), Rational evaluation] [[perf intel-Rational-method-0..[para *1.00*][para (8.947e-008s)]]][[perf intel-Rational-method-1..[para 1.02][para (9.130e-008s)]]][[perf intel-Rational-method-2..[para 1.49][para (1.333e-007s)]]][[perf intel-Rational-method-3..[para 1.04][para (9.325e-008s)]]]] -[[GNU G++ 4.2 (Linux), Polynomial evaluation] [[perf gcc-4_2-ld-Polynomial-method-0..[para 1.61][para (1.220e-007s)]]][[perf gcc-4_2-ld-Polynomial-method-1..[para 1.68][para (1.269e-007s)]]][[perf gcc-4_2-ld-Polynomial-method-2..[para 1.23][para (9.275e-008s)]]][[perf gcc-4_2-ld-Polynomial-method-3..[para *1.00*][para (7.566e-008s)]]]] -[[GNU G++ 4.2 (Linux), Rational evaluation] [[perf gcc-4_2-ld-Rational-method-0..[para 1.26][para (1.660e-007s)]]][[perf gcc-4_2-ld-Rational-method-1..[para 1.33][para (1.758e-007s)]]][[perf gcc-4_2-ld-Rational-method-2..[para *1.00*][para (1.318e-007s)]]][[perf gcc-4_2-ld-Rational-method-3..[para 1.15][para (1.513e-007s)]]]] -[[Intel C++ 10.0 (Linux), Polynomial evaluation] [[perf intel-linux-Polynomial-method-0..[para 1.15][para (9.154e-008s)]]][[perf intel-linux-Polynomial-method-1..[para 1.15][para (9.154e-008s)]]][[perf intel-linux-Polynomial-method-2..[para *1.00*][para (7.934e-008s)]]][[perf intel-linux-Polynomial-method-3..[para *1.00*][para (7.934e-008s)]]]] -[[Intel C++ 10.0 (Linux), Rational evaluation] [[perf intel-linux-Rational-method-0..[para *1.00*][para (1.245e-007s)]]][[perf intel-linux-Rational-method-1..[para *1.00*][para (1.245e-007s)]]][[perf intel-linux-Rational-method-2..[para 1.35][para (1.684e-007s)]]][[perf intel-linux-Rational-method-3..[para 1.04][para (1.294e-007s)]]]] -] +[table_Rational_Method_Comparison_on_Win32] +[table_Polynomial_Method_Comparison_on_linux] + +[table_Rational_Method_Comparison_on_linux] [endsect] diff --git a/include/boost/math/distributions/inverse_gaussian.hpp b/include/boost/math/distributions/inverse_gaussian.hpp index eeca12ad4..e3aa4e065 100644 --- a/include/boost/math/distributions/inverse_gaussian.hpp +++ b/include/boost/math/distributions/inverse_gaussian.hpp @@ -82,6 +82,7 @@ public: RealType result; detail::check_scale(function, l_scale, &result, Policy()); detail::check_location(function, l_mean, &result, Policy()); + detail::check_x_gt0(function, l_mean, &result, Policy()); } RealType mean()const @@ -146,6 +147,10 @@ inline RealType pdf(const inverse_gaussian_distribution& dist, { return result; } + if(false == detail::check_x_gt0(function, mean, &result, Policy())) + { + return result; + } if(false == detail::check_positive_x(function, x, &result, Policy())) { return result; @@ -179,6 +184,10 @@ inline RealType cdf(const inverse_gaussian_distribution& dist, { return result; } + if (false == detail::check_x_gt0(function, mean, &result, Policy())) + { + return result; + } if(false == detail::check_positive_x(function, x, &result, Policy())) { return result; @@ -322,6 +331,8 @@ inline RealType quantile(const inverse_gaussian_distribution& return result; if(false == detail::check_location(function, mean, &result, Policy())) return result; + if (false == detail::check_x_gt0(function, mean, &result, Policy())) + return result; if(false == detail::check_probability(function, p, &result, Policy())) return result; if (p == 0) @@ -380,6 +391,8 @@ inline RealType cdf(const complemented2_typeTEST_LIBSTDCXX ] [ check-target-builds ../accuracy//has_gsl : TEST_GSL gsl gslcblas ] [ check-target-builds ../accuracy//has_rmath : TEST_RMATH Rmath ] - [ check-target-builds is_intel_win : no : ] + # [ check-target-builds is_intel_win : no : ] [ check-target-builds $(here)/third_party/dcdflib/dcdflib.c : TEST_DCDFLIB dcdflib : no ] linux:-lpthread linux:-lrt #msvc:64 diff --git a/reporting/performance/doc/performance_tables.qbk b/reporting/performance/doc/performance_tables.qbk index 47f072609..1127f20b7 100644 --- a/reporting/performance/doc/performance_tables.qbk +++ b/reporting/performance/doc/performance_tables.qbk @@ -1,657 +1,1097 @@ [/tables:] -[template table_Rational_Method_Comparison_on_linux[] -[table:table_Rational_Method_Comparison_on_linux Rational Method Comparison on linux +[template table_Rational_Method_Comparison_with_GNU_C_version_4_9_2_on_Windows_x64[] +[table:table_Rational_Method_Comparison_with_GNU_C_version_4_9_2_on_Windows_x64 Rational Method Comparison with GNU C++ version 4.9.2 on Windows x64 [[Function][Method 0[br](Double Coefficients)][Method 0[br](Integer Coefficients)][Method 1[br](Double Coefficients)][Method 1[br](Integer Coefficients)][Method 2[br](Double Coefficients)][Method 2[br](Integer Coefficients)][Method 3[br](Double Coefficients)][Method 3[br](Integer Coefficients)]] -[[Order 2][[role grey -]][[role grey -]][[role red 2.02[br](85ns)]][[role blue 2.00[br](84ns)]][[role green 1.02[br](43ns)]][[role green 1.02[br](43ns)]][[role green 1.00[br](42ns)]][[role green 1.05[br](44ns)]]] -[[Order 3][[role blue 1.93[br](83ns)]][[role blue 1.93[br](83ns)]][[role blue 1.95[br](84ns)]][[role blue 1.93[br](83ns)]][[role green 1.00[br](43ns)]][[role green 1.00[br](43ns)]][[role green 1.02[br](44ns)]][[role green 1.05[br](45ns)]]] -[[Order 4][[role blue 1.91[br](84ns)]][[role blue 1.93[br](85ns)]][[role blue 1.91[br](84ns)]][[role blue 1.89[br](83ns)]][[role green 1.00[br](44ns)]][[role green 1.00[br](44ns)]][[role green 1.02[br](45ns)]][[role green 1.00[br](44ns)]]] -[[Order 5][[role green 1.01[br](85ns)]][[role green 1.06[br](89ns)]][[role green 1.00[br](84ns)]][[role green 1.07[br](90ns)]][[role blue 1.52[br](128ns)]][[role blue 1.48[br](124ns)]][[role blue 1.50[br](126ns)]][[role blue 1.49[br](125ns)]]] -[[Order 6][[role green 1.08[br](93ns)]][[role green 1.17[br](101ns)]][[role green 1.01[br](87ns)]][[role green 1.00[br](86ns)]][[role blue 1.45[br](125ns)]][[role blue 1.49[br](128ns)]][[role blue 1.77[br](152ns)]][[role blue 1.55[br](133ns)]]] -[[Order 7][[role green 1.09[br](102ns)]][[role blue 1.31[br](123ns)]][[role green 1.00[br](94ns)]][[role green 1.02[br](96ns)]][[role blue 1.43[br](134ns)]][[role blue 1.40[br](132ns)]][[role blue 1.46[br](137ns)]][[role blue 1.53[br](144ns)]]] -[[Order 8][[role green 1.09[br](120ns)]][[role blue 1.29[br](142ns)]][[role green 1.00[br](110ns)]][[role green 1.00[br](110ns)]][[role blue 1.24[br](136ns)]][[role blue 1.23[br](135ns)]][[role blue 1.40[br](154ns)]][[role blue 1.36[br](150ns)]]] -[[Order 9][[role green 1.17[br](145ns)]][[role blue 1.35[br](167ns)]][[role green 1.00[br](124ns)]][[role green 1.04[br](129ns)]][[role green 1.13[br](140ns)]][[role green 1.12[br](139ns)]][[role green 1.16[br](144ns)]][[role blue 1.23[br](152ns)]]] -[[Order 10][[role blue 1.26[br](171ns)]][[role blue 1.35[br](183ns)]][[role green 1.01[br](138ns)]][[role green 1.00[br](136ns)]][[role green 1.11[br](151ns)]][[role green 1.12[br](152ns)]][[role blue 1.26[br](172ns)]][[role green 1.18[br](160ns)]]] -[[Order 11][[role blue 1.21[br](182ns)]][[role blue 1.21[br](182ns)]][[role green 1.01[br](153ns)]][[role green 1.05[br](158ns)]][[role green 1.01[br](153ns)]][[role green 1.00[br](151ns)]][[role green 1.02[br](154ns)]][[role green 1.01[br](153ns)]]] -[[Order 12][[role blue 1.23[br](192ns)]][[role blue 1.25[br](195ns)]][[role green 1.04[br](163ns)]][[role green 1.01[br](158ns)]][[role green 1.07[br](167ns)]][[role green 1.06[br](166ns)]][[role green 1.00[br](156ns)]][[role green 1.01[br](157ns)]]] -[[Order 13][[role green 1.19[br](204ns)]][[role blue 1.27[br](217ns)]][[role green 1.13[br](193ns)]][[role green 1.09[br](186ns)]][[role green 1.01[br](173ns)]][[role green 1.01[br](173ns)]][[role green 1.01[br](172ns)]][[role green 1.00[br](171ns)]]] -[[Order 14][[role blue 1.24[br](225ns)]][[role blue 1.37[br](249ns)]][[role green 1.14[br](207ns)]][[role blue 1.21[br](221ns)]][[role green 1.03[br](187ns)]][[role green 1.11[br](202ns)]][[role green 1.00[br](182ns)]][[role green 1.01[br](183ns)]]] -[[Order 15][[role blue 1.20[br](231ns)]][[role blue 1.42[br](273ns)]][[role green 1.17[br](224ns)]][[role green 1.15[br](221ns)]][[role green 1.01[br](193ns)]][[role green 1.01[br](193ns)]][[role green 1.00[br](192ns)]][[role green 1.01[br](193ns)]]] -[[Order 16][[role blue 1.23[br](251ns)]][[role blue 1.44[br](293ns)]][[role blue 1.22[br](249ns)]][[role blue 1.44[br](294ns)]][[role green 1.03[br](211ns)]][[role green 1.13[br](230ns)]][[role green 1.02[br](209ns)]][[role green 1.00[br](204ns)]]] -[[Order 17][[role blue 1.27[br](272ns)]][[role blue 1.47[br](314ns)]][[role blue 1.28[br](274ns)]][[role blue 1.33[br](284ns)]][[role green 1.01[br](217ns)]][[role green 1.04[br](222ns)]][[role green 1.01[br](216ns)]][[role green 1.00[br](214ns)]]] -[[Order 18][[role blue 1.25[br](284ns)]][[role blue 1.44[br](329ns)]][[role blue 1.30[br](296ns)]][[role blue 1.30[br](296ns)]][[role green 1.08[br](246ns)]][[role green 1.13[br](258ns)]][[role green 1.00[br](228ns)]][[role green 1.02[br](233ns)]]] -[[Order 19][[role blue 1.26[br](302ns)]][[role blue 1.45[br](347ns)]][[role blue 1.25[br](299ns)]][[role blue 1.21[br](289ns)]][[role green 1.04[br](248ns)]][[role green 1.10[br](263ns)]][[role green 1.00[br](239ns)]][[role blue 1.28[br](306ns)]]] -[[Order 20][[role blue 1.23[br](326ns)]][[role blue 1.42[br](379ns)]][[role green 1.18[br](313ns)]][[role blue 1.35[br](358ns)]][[role green 1.08[br](288ns)]][[role green 1.18[br](314ns)]][[role green 1.00[br](266ns)]][[role green 1.18[br](313ns)]]] +[[Order 2][[role grey -]][[role grey -]][[role blue 1.88[br](79ns)]][[role blue 1.95[br](82ns)]][[role green 1.00[br](42ns)]][[role green 1.02[br](43ns)]][[role green 1.00[br](42ns)]][[role green 1.00[br](42ns)]]] +[[Order 3][[role blue 1.93[br](81ns)]][[role blue 1.93[br](81ns)]][[role blue 1.93[br](81ns)]][[role blue 1.93[br](81ns)]][[role green 1.00[br](42ns)]][[role green 1.00[br](42ns)]][[role green 1.00[br](42ns)]][[role green 1.00[br](42ns)]]] +[[Order 4][[role blue 1.95[br](82ns)]][[role blue 1.95[br](82ns)]][[role blue 1.95[br](82ns)]][[role blue 1.98[br](83ns)]][[role green 1.00[br](42ns)]][[role green 1.02[br](43ns)]][[role green 1.00[br](42ns)]][[role green 1.00[br](42ns)]]] +[[Order 5][[role green 1.02[br](85ns)]][[role green 1.10[br](91ns)]][[role green 1.00[br](83ns)]][[role green 1.00[br](83ns)]][[role blue 1.46[br](121ns)]][[role blue 1.47[br](122ns)]][[role blue 1.45[br](120ns)]][[role blue 1.46[br](121ns)]]] +[[Order 6][[role green 1.06[br](92ns)]][[role green 1.11[br](97ns)]][[role green 1.00[br](87ns)]][[role green 1.00[br](87ns)]][[role blue 1.39[br](121ns)]][[role blue 1.39[br](121ns)]][[role blue 1.40[br](122ns)]][[role blue 1.39[br](121ns)]]] +[[Order 7][[role green 1.10[br](100ns)]][[role blue 1.29[br](117ns)]][[role green 1.00[br](91ns)]][[role green 1.02[br](93ns)]][[role blue 1.43[br](130ns)]][[role blue 1.42[br](129ns)]][[role blue 1.40[br](127ns)]][[role blue 1.44[br](131ns)]]] +[[Order 8][[role blue 1.23[br](118ns)]][[role blue 1.44[br](138ns)]][[role green 1.00[br](96ns)]][[role green 1.01[br](97ns)]][[role blue 1.33[br](128ns)]][[role blue 1.34[br](129ns)]][[role blue 1.40[br](134ns)]][[role blue 1.39[br](133ns)]]] +[[Order 9][[role green 1.19[br](131ns)]][[role blue 1.41[br](155ns)]][[role green 1.02[br](112ns)]][[role green 1.00[br](110ns)]][[role blue 1.24[br](136ns)]][[role blue 1.24[br](136ns)]][[role blue 1.21[br](133ns)]][[role blue 1.24[br](136ns)]]] +[[Order 10][[role green 1.18[br](154ns)]][[role blue 1.27[br](165ns)]][[role green 1.00[br](130ns)]][[role green 1.02[br](132ns)]][[role green 1.15[br](149ns)]][[role green 1.11[br](144ns)]][[role green 1.12[br](145ns)]][[role green 1.11[br](144ns)]]] +[[Order 11][[role green 1.18[br](166ns)]][[role blue 1.27[br](179ns)]][[role green 1.03[br](145ns)]][[role green 1.00[br](141ns)]][[role green 1.04[br](147ns)]][[role green 1.06[br](149ns)]][[role green 1.06[br](149ns)]][[role green 1.04[br](147ns)]]] +[[Order 12][[role blue 1.22[br](185ns)]][[role blue 1.27[br](193ns)]][[role green 1.03[br](157ns)]][[role green 1.02[br](155ns)]][[role green 1.03[br](157ns)]][[role green 1.03[br](156ns)]][[role green 1.00[br](152ns)]][[role green 1.00[br](152ns)]]] +[[Order 13][[role blue 1.26[br](203ns)]][[role blue 1.36[br](219ns)]][[role green 1.08[br](174ns)]][[role green 1.09[br](176ns)]][[role green 1.01[br](162ns)]][[role green 1.01[br](162ns)]][[role green 1.02[br](164ns)]][[role green 1.00[br](161ns)]]] +[[Order 14][[role blue 1.28[br](221ns)]][[role blue 1.39[br](241ns)]][[role green 1.18[br](204ns)]][[role green 1.15[br](199ns)]][[role green 1.02[br](176ns)]][[role green 1.00[br](173ns)]][[role green 1.02[br](176ns)]][[role green 1.01[br](174ns)]]] +[[Order 15][[role blue 1.26[br](230ns)]][[role blue 1.45[br](266ns)]][[role green 1.20[br](219ns)]][[role blue 1.21[br](222ns)]][[role green 1.01[br](185ns)]][[role green 1.00[br](183ns)]][[role green 1.02[br](186ns)]][[role green 1.01[br](184ns)]]] +[[Order 16][[role blue 1.24[br](245ns)]][[role blue 1.45[br](286ns)]][[role blue 1.21[br](239ns)]][[role blue 1.23[br](242ns)]][[role green 1.03[br](203ns)]][[role green 1.01[br](199ns)]][[role green 1.00[br](197ns)]][[role green 1.00[br](197ns)]]] +[[Order 17][[role blue 1.30[br](264ns)]][[role blue 1.53[br](310ns)]][[role blue 1.28[br](260ns)]][[role blue 1.29[br](262ns)]][[role green 1.00[br](204ns)]][[role green 1.00[br](203ns)]][[role green 1.03[br](209ns)]][[role green 1.00[br](204ns)]]] +[[Order 18][[role blue 1.29[br](277ns)]][[role blue 1.50[br](322ns)]][[role blue 1.34[br](289ns)]][[role blue 1.34[br](289ns)]][[role green 1.07[br](229ns)]][[role green 1.06[br](227ns)]][[role green 1.01[br](217ns)]][[role green 1.00[br](215ns)]]] +[[Order 19][[role blue 1.34[br](300ns)]][[role blue 1.56[br](349ns)]][[role blue 1.37[br](306ns)]][[role blue 1.38[br](309ns)]][[role green 1.00[br](225ns)]][[role green 1.00[br](225ns)]][[role green 1.00[br](224ns)]][[role green 1.01[br](226ns)]]] +[[Order 20][[role blue 1.35[br](321ns)]][[role blue 1.54[br](365ns)]][[role blue 1.40[br](332ns)]][[role blue 1.36[br](323ns)]][[role green 1.05[br](250ns)]][[role green 1.08[br](255ns)]][[role green 1.00[br](237ns)]][[role green 1.01[br](240ns)]]] ] ] -[template table_Polynomial_Method_Comparison_on_linux[] -[table:table_Polynomial_Method_Comparison_on_linux Polynomial Method Comparison on linux +[template table_Polynomial_Method_Comparison_with_GNU_C_version_4_9_2_on_Windows_x64[] +[table:table_Polynomial_Method_Comparison_with_GNU_C_version_4_9_2_on_Windows_x64 Polynomial Method Comparison with GNU C++ version 4.9.2 on Windows x64 [[Function][Method 0[br](Double Coefficients)][Method 0[br](Integer Coefficients)][Method 1[br](Double Coefficients)][Method 1[br](Integer Coefficients)][Method 2[br](Double Coefficients)][Method 2[br](Integer Coefficients)][Method 3[br](Double Coefficients)][Method 3[br](Integer Coefficients)]] -[[Order 2][[role grey -]][[role grey -]][[role green 1.00[br](9ns)]][[role green 1.00[br](9ns)]][[role green 1.00[br](9ns)]][[role green 1.00[br](9ns)]][[role green 1.00[br](9ns)]][[role green 1.11[br](10ns)]]] -[[Order 3][[role blue 1.75[br](21ns)]][[role red 2.50[br](30ns)]][[role green 1.08[br](13ns)]][[role blue 1.25[br](15ns)]][[role green 1.00[br](12ns)]][[role green 1.08[br](13ns)]][[role green 1.08[br](13ns)]][[role green 1.08[br](13ns)]]] -[[Order 4][[role blue 1.94[br](31ns)]][[role red 2.25[br](36ns)]][[role green 1.00[br](16ns)]][[role green 1.00[br](16ns)]][[role green 1.00[br](16ns)]][[role green 1.00[br](16ns)]][[role green 1.00[br](16ns)]][[role green 1.00[br](16ns)]]] -[[Order 5][[role blue 1.74[br](33ns)]][[role red 2.53[br](48ns)]][[role green 1.00[br](19ns)]][[role green 1.00[br](19ns)]][[role green 1.05[br](20ns)]][[role green 1.05[br](20ns)]][[role green 1.05[br](20ns)]][[role green 1.11[br](21ns)]]] -[[Order 6][[role blue 1.96[br](47ns)]][[role red 2.33[br](56ns)]][[role green 1.00[br](24ns)]][[role green 1.04[br](25ns)]][[role green 1.04[br](25ns)]][[role green 1.00[br](24ns)]][[role green 1.00[br](24ns)]][[role green 1.00[br](24ns)]]] -[[Order 7][[role blue 1.86[br](52ns)]][[role red 2.29[br](64ns)]][[role green 1.04[br](29ns)]][[role green 1.04[br](29ns)]][[role green 1.00[br](28ns)]][[role green 1.00[br](28ns)]][[role green 1.04[br](29ns)]][[role green 1.04[br](29ns)]]] -[[Order 8][[role blue 1.69[br](54ns)]][[role red 2.34[br](75ns)]][[role green 1.12[br](36ns)]][[role green 1.12[br](36ns)]][[role green 1.06[br](34ns)]][[role green 1.06[br](34ns)]][[role green 1.03[br](33ns)]][[role green 1.00[br](32ns)]]] -[[Order 9][[role blue 1.79[br](68ns)]][[role red 2.47[br](94ns)]][[role green 1.13[br](43ns)]][[role green 1.13[br](43ns)]][[role green 1.03[br](39ns)]][[role green 1.00[br](38ns)]][[role green 1.00[br](38ns)]][[role green 1.00[br](38ns)]]] -[[Order 10][[role blue 1.67[br](72ns)]][[role red 2.60[br](112ns)]][[role blue 1.21[br](52ns)]][[role blue 1.21[br](52ns)]][[role green 1.05[br](45ns)]][[role green 1.09[br](47ns)]][[role green 1.02[br](44ns)]][[role green 1.00[br](43ns)]]] -[[Order 11][[role blue 1.79[br](84ns)]][[role red 2.60[br](122ns)]][[role blue 1.30[br](61ns)]][[role blue 1.28[br](60ns)]][[role green 1.02[br](48ns)]][[role green 1.02[br](48ns)]][[role green 1.00[br](47ns)]][[role green 1.00[br](47ns)]]] -[[Order 12][[role red 2.40[br](125ns)]][[role red 2.62[br](136ns)]][[role blue 1.37[br](71ns)]][[role blue 1.38[br](72ns)]][[role green 1.12[br](58ns)]][[role green 1.04[br](54ns)]][[role green 1.00[br](52ns)]][[role green 1.02[br](53ns)]]] -[[Order 13][[role red 2.06[br](107ns)]][[role red 3.81[br](198ns)]][[role blue 1.38[br](72ns)]][[role blue 1.40[br](73ns)]][[role green 1.04[br](54ns)]][[role green 1.02[br](53ns)]][[role green 1.00[br](52ns)]][[role green 1.00[br](52ns)]]] -[[Order 14][[role red 2.07[br](122ns)]][[role red 3.03[br](179ns)]][[role blue 1.51[br](89ns)]][[role blue 1.49[br](88ns)]][[role green 1.07[br](63ns)]][[role green 1.05[br](62ns)]][[role green 1.00[br](59ns)]][[role green 1.02[br](60ns)]]] -[[Order 15][[role blue 1.87[br](142ns)]][[role red 2.75[br](209ns)]][[role blue 1.39[br](106ns)]][[role blue 1.33[br](101ns)]][[role green 1.00[br](76ns)]][[role green 1.00[br](76ns)]][[role green 1.04[br](79ns)]][[role green 1.00[br](76ns)]]] -[[Order 16][[role blue 1.90[br](156ns)]][[role red 2.55[br](209ns)]][[role blue 1.39[br](114ns)]][[role blue 1.43[br](117ns)]][[role green 1.04[br](85ns)]][[role green 1.02[br](84ns)]][[role green 1.04[br](85ns)]][[role green 1.00[br](82ns)]]] -[[Order 17][[role blue 2.00[br](174ns)]][[role red 2.60[br](226ns)]][[role blue 1.47[br](128ns)]][[role blue 1.56[br](136ns)]][[role green 1.01[br](88ns)]][[role green 1.00[br](87ns)]][[role green 1.01[br](88ns)]][[role green 1.00[br](87ns)]]] -[[Order 18][[role blue 1.88[br](175ns)]][[role red 2.77[br](258ns)]][[role blue 1.47[br](137ns)]][[role blue 1.47[br](137ns)]][[role green 1.00[br](93ns)]][[role green 1.00[br](93ns)]][[role green 1.00[br](93ns)]][[role green 1.00[br](93ns)]]] -[[Order 19][[role red 2.02[br](192ns)]][[role red 2.82[br](268ns)]][[role blue 1.57[br](149ns)]][[role blue 1.58[br](150ns)]][[role green 1.00[br](95ns)]][[role green 1.00[br](95ns)]][[role green 1.03[br](98ns)]][[role green 1.00[br](95ns)]]] -[[Order 20][[role blue 1.94[br](200ns)]][[role red 2.85[br](294ns)]][[role blue 1.57[br](162ns)]][[role blue 1.58[br](163ns)]][[role green 1.00[br](103ns)]][[role green 1.02[br](105ns)]][[role green 1.01[br](104ns)]][[role green 1.01[br](104ns)]]] +[[Order 2][[role grey -]][[role grey -]][[role green 1.00[br](9ns)]][[role green 1.00[br](9ns)]][[role green 1.00[br](9ns)]][[role green 1.11[br](10ns)]][[role green 1.00[br](9ns)]][[role green 1.11[br](10ns)]]] +[[Order 3][[role blue 1.92[br](23ns)]][[role red 2.42[br](29ns)]][[role green 1.08[br](13ns)]][[role green 1.00[br](12ns)]][[role green 1.08[br](13ns)]][[role green 1.08[br](13ns)]][[role green 1.08[br](13ns)]][[role green 1.08[br](13ns)]]] +[[Order 4][[role blue 1.69[br](27ns)]][[role red 2.75[br](44ns)]][[role green 1.00[br](16ns)]][[role green 1.00[br](16ns)]][[role green 1.00[br](16ns)]][[role green 1.00[br](16ns)]][[role green 1.00[br](16ns)]][[role green 1.06[br](17ns)]]] +[[Order 5][[role blue 1.74[br](33ns)]][[role red 2.79[br](53ns)]][[role green 1.05[br](20ns)]][[role green 1.00[br](19ns)]][[role green 1.05[br](20ns)]][[role green 1.11[br](21ns)]][[role green 1.05[br](20ns)]][[role green 1.11[br](21ns)]]] +[[Order 6][[role blue 1.58[br](38ns)]][[role red 2.50[br](60ns)]][[role green 1.00[br](24ns)]][[role green 1.00[br](24ns)]][[role green 1.04[br](25ns)]][[role green 1.00[br](24ns)]][[role green 1.04[br](25ns)]][[role green 1.04[br](25ns)]]] +[[Order 7][[role blue 1.69[br](49ns)]][[role red 2.38[br](69ns)]][[role green 1.00[br](29ns)]][[role green 1.00[br](29ns)]][[role green 1.14[br](33ns)]][[role green 1.14[br](33ns)]][[role green 1.03[br](30ns)]][[role green 1.03[br](30ns)]]] +[[Order 8][[role blue 1.54[br](54ns)]][[role red 2.23[br](78ns)]][[role green 1.14[br](40ns)]][[role green 1.11[br](39ns)]][[role green 1.09[br](38ns)]][[role green 1.03[br](36ns)]][[role green 1.00[br](35ns)]][[role green 1.00[br](35ns)]]] +[[Order 9][[role blue 1.82[br](71ns)]][[role red 2.49[br](97ns)]][[role blue 1.26[br](49ns)]][[role blue 1.21[br](47ns)]][[role green 1.05[br](41ns)]][[role green 1.05[br](41ns)]][[role green 1.03[br](40ns)]][[role green 1.00[br](39ns)]]] +[[Order 10][[role blue 1.53[br](69ns)]][[role red 2.38[br](107ns)]][[role blue 1.22[br](55ns)]][[role green 1.20[br](54ns)]][[role green 1.04[br](47ns)]][[role green 1.02[br](46ns)]][[role green 1.02[br](46ns)]][[role green 1.00[br](45ns)]]] +[[Order 11][[role blue 1.80[br](88ns)]][[role red 2.43[br](119ns)]][[role blue 1.29[br](63ns)]][[role blue 1.22[br](60ns)]][[role green 1.08[br](53ns)]][[role green 1.06[br](52ns)]][[role green 1.00[br](49ns)]][[role green 1.00[br](49ns)]]] +[[Order 12][[role blue 1.85[br](102ns)]][[role red 2.51[br](138ns)]][[role blue 1.35[br](74ns)]][[role blue 1.31[br](72ns)]][[role green 1.02[br](56ns)]][[role green 1.05[br](58ns)]][[role green 1.02[br](56ns)]][[role green 1.00[br](55ns)]]] +[[Order 13][[role red 2.07[br](114ns)]][[role red 2.80[br](154ns)]][[role blue 1.45[br](80ns)]][[role blue 1.38[br](76ns)]][[role green 1.02[br](56ns)]][[role green 1.05[br](58ns)]][[role green 1.00[br](55ns)]][[role green 1.07[br](59ns)]]] +[[Order 14][[role red 2.07[br](124ns)]][[role red 2.72[br](163ns)]][[role blue 1.53[br](92ns)]][[role blue 1.52[br](91ns)]][[role green 1.10[br](66ns)]][[role green 1.05[br](63ns)]][[role green 1.00[br](60ns)]][[role green 1.02[br](61ns)]]] +[[Order 15][[role blue 1.90[br](137ns)]][[role red 2.49[br](179ns)]][[role blue 1.46[br](105ns)]][[role blue 1.40[br](101ns)]][[role green 1.08[br](78ns)]][[role green 1.04[br](75ns)]][[role green 1.01[br](73ns)]][[role green 1.00[br](72ns)]]] +[[Order 16][[role blue 1.97[br](156ns)]][[role red 2.62[br](207ns)]][[role blue 1.49[br](118ns)]][[role blue 1.43[br](113ns)]][[role green 1.08[br](85ns)]][[role green 1.04[br](82ns)]][[role green 1.00[br](79ns)]][[role green 1.00[br](79ns)]]] +[[Order 17][[role red 2.08[br](173ns)]][[role red 2.83[br](235ns)]][[role blue 1.55[br](129ns)]][[role blue 1.57[br](130ns)]][[role green 1.05[br](87ns)]][[role green 1.06[br](88ns)]][[role green 1.00[br](83ns)]][[role green 1.00[br](83ns)]]] +[[Order 18][[role red 2.10[br](187ns)]][[role red 2.89[br](257ns)]][[role blue 1.55[br](138ns)]][[role blue 1.58[br](141ns)]][[role green 1.08[br](96ns)]][[role green 1.11[br](99ns)]][[role green 1.02[br](91ns)]][[role green 1.00[br](89ns)]]] +[[Order 19][[role red 2.15[br](200ns)]][[role red 2.98[br](277ns)]][[role blue 1.62[br](151ns)]][[role blue 1.68[br](156ns)]][[role green 1.06[br](99ns)]][[role green 1.05[br](98ns)]][[role green 1.00[br](93ns)]][[role green 1.01[br](94ns)]]] +[[Order 20][[role red 2.12[br](210ns)]][[role red 2.92[br](289ns)]][[role blue 1.65[br](163ns)]][[role blue 1.71[br](169ns)]][[role green 1.09[br](108ns)]][[role green 1.10[br](109ns)]][[role green 1.00[br](99ns)]][[role green 1.00[br](99ns)]]] ] ] -[template table_Rational_Method_Comparison_on_Win32[] -[table:table_Rational_Method_Comparison_on_Win32 Rational Method Comparison on Win32 -[[Function][Method 0[br](Double Coefficients)][Method 0[br](Integer Coefficients)][Method 1[br](Double Coefficients)][Method 1[br](Integer Coefficients)][Method 2[br](Double Coefficients)][Method 2[br](Integer Coefficients)][Method 3[br](Double Coefficients)][Method 3[br](Integer Coefficients)]] -[[Order 2][[role grey -]][[role grey -]][[role blue 1.93[br](79ns)]][[role blue 1.93[br](79ns)]][[role green 1.00[br](41ns)]][[role green 1.02[br](42ns)]][[role green 1.00[br](41ns)]][[role green 1.00[br](41ns)]]] -[[Order 3][[role blue 1.95[br](80ns)]][[role blue 1.95[br](80ns)]][[role blue 1.93[br](79ns)]][[role blue 1.95[br](80ns)]][[role green 1.02[br](42ns)]][[role green 1.00[br](41ns)]][[role green 1.00[br](41ns)]][[role green 1.00[br](41ns)]]] -[[Order 4][[role blue 2.00[br](82ns)]][[role red 2.12[br](87ns)]][[role blue 1.95[br](80ns)]][[role blue 1.98[br](81ns)]][[role green 1.02[br](42ns)]][[role green 1.00[br](41ns)]][[role green 1.00[br](41ns)]][[role green 1.02[br](42ns)]]] -[[Order 5][[role green 1.05[br](85ns)]][[role blue 1.21[br](98ns)]][[role green 1.00[br](81ns)]][[role green 1.00[br](81ns)]][[role blue 1.48[br](120ns)]][[role blue 1.47[br](119ns)]][[role blue 1.44[br](117ns)]][[role blue 1.46[br](118ns)]]] -[[Order 6][[role green 1.08[br](90ns)]][[role blue 1.40[br](116ns)]][[role green 1.00[br](83ns)]][[role green 1.01[br](84ns)]][[role blue 1.43[br](119ns)]][[role blue 1.48[br](123ns)]][[role blue 1.39[br](115ns)]][[role blue 1.43[br](119ns)]]] -[[Order 7][[role green 1.17[br](101ns)]][[role blue 1.52[br](131ns)]][[role green 1.00[br](86ns)]][[role green 1.01[br](87ns)]][[role blue 1.48[br](127ns)]][[role blue 1.51[br](130ns)]][[role blue 1.48[br](127ns)]][[role blue 1.49[br](128ns)]]] -[[Order 8][[role blue 1.27[br](121ns)]][[role blue 1.55[br](147ns)]][[role green 1.00[br](95ns)]][[role green 1.00[br](95ns)]][[role blue 1.32[br](125ns)]][[role blue 1.35[br](128ns)]][[role blue 1.41[br](134ns)]][[role blue 1.42[br](135ns)]]] -[[Order 9][[role blue 1.28[br](140ns)]][[role blue 1.45[br](158ns)]][[role green 1.02[br](111ns)]][[role green 1.00[br](109ns)]][[role blue 1.20[br](131ns)]][[role blue 1.20[br](131ns)]][[role blue 1.24[br](135ns)]][[role blue 1.24[br](135ns)]]] -[[Order 10][[role blue 1.26[br](159ns)]][[role blue 1.38[br](174ns)]][[role green 1.00[br](126ns)]][[role blue 1.21[br](153ns)]][[role green 1.16[br](146ns)]][[role green 1.18[br](149ns)]][[role green 1.13[br](143ns)]][[role green 1.13[br](143ns)]]] -[[Order 11][[role blue 1.24[br](174ns)]][[role blue 1.38[br](193ns)]][[role green 1.00[br](140ns)]][[role green 1.19[br](167ns)]][[role green 1.11[br](155ns)]][[role green 1.09[br](152ns)]][[role green 1.09[br](153ns)]][[role green 1.10[br](154ns)]]] -[[Order 12][[role green 1.09[br](185ns)]][[role blue 1.25[br](213ns)]][[role green 1.09[br](185ns)]][[role green 1.08[br](184ns)]][[role green 1.04[br](176ns)]][[role green 1.00[br](170ns)]][[role green 1.08[br](184ns)]][[role green 1.08[br](183ns)]]] -[[Order 13][[role green 1.11[br](199ns)]][[role blue 1.28[br](230ns)]][[role green 1.09[br](197ns)]][[role green 1.09[br](196ns)]][[role green 1.01[br](182ns)]][[role green 1.00[br](180ns)]][[role green 1.09[br](196ns)]][[role green 1.09[br](196ns)]]] -[[Order 14][[role green 1.08[br](212ns)]][[role blue 1.35[br](266ns)]][[role green 1.07[br](210ns)]][[role green 1.07[br](210ns)]][[role green 1.00[br](197ns)]][[role green 1.00[br](197ns)]][[role green 1.05[br](207ns)]][[role green 1.06[br](208ns)]]] -[[Order 15][[role green 1.08[br](221ns)]][[role blue 1.39[br](285ns)]][[role green 1.11[br](228ns)]][[role green 1.11[br](228ns)]][[role green 1.01[br](207ns)]][[role green 1.00[br](205ns)]][[role green 1.07[br](220ns)]][[role green 1.07[br](219ns)]]] -[[Order 16][[role green 1.08[br](240ns)]][[role blue 1.36[br](304ns)]][[role green 1.11[br](247ns)]][[role green 1.06[br](237ns)]][[role green 1.00[br](223ns)]][[role green 1.04[br](232ns)]][[role green 1.02[br](228ns)]][[role green 1.02[br](228ns)]]] -[[Order 17][[role green 1.10[br](258ns)]][[role blue 1.36[br](320ns)]][[role green 1.15[br](270ns)]][[role green 1.08[br](254ns)]][[role green 1.00[br](235ns)]][[role green 1.03[br](243ns)]][[role green 1.04[br](244ns)]][[role blue 1.52[br](357ns)]]] -[[Order 18][[role green 1.10[br](277ns)]][[role blue 1.34[br](338ns)]][[role green 1.17[br](295ns)]][[role green 1.09[br](275ns)]][[role green 1.04[br](261ns)]][[role green 1.03[br](259ns)]][[role green 1.00[br](252ns)]][[role blue 1.46[br](367ns)]]] -[[Order 19][[role green 1.15[br](299ns)]][[role blue 1.38[br](360ns)]][[role blue 1.22[br](318ns)]][[role green 1.15[br](299ns)]][[role green 1.00[br](261ns)]][[role green 1.05[br](273ns)]][[role green 1.01[br](264ns)]][[role blue 1.46[br](380ns)]]] -[[Order 20][[role green 1.18[br](319ns)]][[role blue 1.39[br](376ns)]][[role blue 1.30[br](353ns)]][[role green 1.17[br](316ns)]][[role green 1.00[br](271ns)]][[role green 1.09[br](296ns)]][[role green 1.03[br](279ns)]][[role blue 1.49[br](403ns)]]] +[template table_Distribution_performance_comparison_with_for_different_performance_options_with_GNU_C_version_4_9_2_on_Windows_x64[] +[table:table_Distribution_performance_comparison_with_for_different_performance_options_with_GNU_C_version_4_9_2_on_Windows_x64 Distribution performance comparison with for different performance options with GNU C++ version 4.9.2 on Windows x64 +[[Function][boost 1.59][Boost[br]promote_double][Boost[br]promote_double[br]digits10<10>][Boost[br]float[br]promote_float]] +[[ArcSine (CDF)][[role green 1.00[br](34ns)]][[role green 1.03[br](35ns)]][[role green 1.03[br](35ns)]][[role blue 1.85[br](63ns)]]] +[[ArcSine (PDF)][[role green 1.12[br](9ns)]][[role green 1.12[br](9ns)]][[role green 1.12[br](9ns)]][[role green 1.00[br](8ns)]]] +[[ArcSine (quantile)][[role green 1.07[br](49ns)]][[role green 1.00[br](46ns)]][[role green 1.00[br](46ns)]][[role green 1.11[br](51ns)]]] +[[Beta (CDF)][[role red 2.36[br](361ns)]][[role blue 1.31[br](200ns)]][[role blue 1.22[br](186ns)]][[role green 1.00[br](153ns)]]] +[[Beta (PDF)][[role red 2.14[br](312ns)]][[role green 1.02[br](149ns)]][[role green 1.02[br](149ns)]][[role green 1.00[br](146ns)]]] +[[Beta (quantile)][[role red 2.17[br](2163ns)]][[role blue 1.36[br](1354ns)]][[role green 1.12[br](1115ns)]][[role green 1.00[br](999ns)]]] +[[Binomial (CDF)][[role red 3.95[br](1157ns)]][[role red 2.29[br](671ns)]][[role blue 1.75[br](514ns)]][[role green 1.00[br](293ns)]]] +[[Binomial (PDF)][[role red 2.42[br](353ns)]][[role green 1.10[br](160ns)]][[role green 1.14[br](166ns)]][[role green 1.00[br](146ns)]]] +[[Binomial (quantile)][[role red 3.70[br](5135ns)]][[role red 2.16[br](2996ns)]][[role blue 1.76[br](2445ns)]][[role green 1.00[br](1388ns)]]] +[[Cauchy (CDF)][[role green 1.00[br](26ns)]][[role green 1.00[br](26ns)]][[role green 1.00[br](26ns)]][[role red 2.38[br](62ns)]]] +[[Cauchy (PDF)][[role green 1.14[br](8ns)]][[role green 1.14[br](8ns)]][[role green 1.14[br](8ns)]][[role green 1.00[br](7ns)]]] +[[Cauchy (quantile)][[role green 1.04[br](27ns)]][[role green 1.04[br](27ns)]][[role green 1.00[br](26ns)]][[role green 1.12[br](29ns)]]] +[[ChiSquared (CDF)][[role red 2.70[br](484ns)]][[role blue 1.68[br](300ns)]][[role blue 1.36[br](243ns)]][[role green 1.00[br](179ns)]]] +[[ChiSquared (PDF)][[role red 2.11[br](268ns)]][[role green 1.13[br](143ns)]][[role green 1.12[br](142ns)]][[role green 1.00[br](127ns)]]] +[[ChiSquared (quantile)][[role red 2.53[br](1254ns)]][[role blue 1.64[br](813ns)]][[role blue 1.27[br](629ns)]][[role green 1.00[br](496ns)]]] +[[Exponential (CDF)][[role blue 1.26[br](43ns)]][[role green 1.00[br](34ns)]][[role green 1.00[br](34ns)]][[role green 1.00[br](34ns)]]] +[[Exponential (PDF)][[role green 1.00[br](59ns)]][[role green 1.00[br](59ns)]][[role green 1.00[br](59ns)]][[role green 1.00[br](59ns)]]] +[[Exponential (quantile)][[role blue 1.70[br](46ns)]][[role green 1.00[br](27ns)]][[role green 1.00[br](27ns)]][[role green 1.04[br](28ns)]]] +[[ExtremeValue (CDF)][[role green 1.00[br](111ns)]][[role green 1.02[br](113ns)]][[role green 1.00[br](111ns)]][[role green 1.03[br](114ns)]]] +[[ExtremeValue (PDF)][[role green 1.01[br](155ns)]][[role green 1.05[br](161ns)]][[role green 1.00[br](153ns)]][[role green 1.05[br](161ns)]]] +[[ExtremeValue (quantile)][[role green 1.01[br](72ns)]][[role green 1.03[br](73ns)]][[role green 1.00[br](71ns)]][[role green 1.08[br](77ns)]]] +[[F (CDF)][[role red 3.93[br](986ns)]][[role red 2.31[br](580ns)]][[role blue 1.76[br](443ns)]][[role green 1.00[br](251ns)]]] +[[F (PDF)][[role red 2.33[br](364ns)]][[role green 1.08[br](169ns)]][[role green 1.09[br](170ns)]][[role green 1.00[br](156ns)]]] +[[F (quantile)][[role red 2.12[br](2761ns)]][[role blue 1.24[br](1616ns)]][[role green 1.09[br](1420ns)]][[role green 1.00[br](1302ns)]]] +[[Gamma (CDF)][[role red 2.00[br](479ns)]][[role blue 1.26[br](300ns)]][[role green 1.15[br](274ns)]][[role green 1.00[br](239ns)]]] +[[Gamma (PDF)][[role blue 1.83[br](321ns)]][[role green 1.19[br](208ns)]][[role green 1.15[br](201ns)]][[role green 1.00[br](175ns)]]] +[[Gamma (quantile)][[role red 2.06[br](1423ns)]][[role blue 1.45[br](1003ns)]][[role green 1.02[br](704ns)]][[role green 1.00[br](690ns)]]] +[[Geometric (CDF)][[role blue 1.40[br](49ns)]][[role green 1.00[br](35ns)]][[role green 1.00[br](35ns)]][[role green 1.03[br](36ns)]]] +[[Geometric (PDF)][[role green 1.04[br](52ns)]][[role green 1.06[br](53ns)]][[role green 1.04[br](52ns)]][[role green 1.00[br](50ns)]]] +[[Geometric (quantile)][[role blue 1.56[br](42ns)]][[role green 1.04[br](28ns)]][[role green 1.00[br](27ns)]][[role green 1.00[br](27ns)]]] +[[Hypergeometric (CDF)][[role blue 1.83[br](11195ns)]][[role green 1.00[br](6135ns)]][[role green 1.00[br](6115ns)]][[role green 1.01[br](6196ns)]]] +[[Hypergeometric (PDF)][[role blue 1.84[br](10847ns)]][[role green 1.00[br](5898ns)]][[role green 1.00[br](5903ns)]][[role green 1.05[br](6193ns)]]] +[[Hypergeometric (quantile)][[role green 1.00[br](56876ns)]][[role blue 1.71[br](97171ns)]][[role blue 1.73[br](98379ns)]][[role red 2.20[br](124979ns)]]] +[[InverseChiSquared (CDF)][[role red 2.79[br](474ns)]][[role blue 1.62[br](275ns)]][[role blue 1.31[br](222ns)]][[role green 1.00[br](170ns)]]] +[[InverseChiSquared (PDF)][[role blue 1.94[br](254ns)]][[role green 1.18[br](154ns)]][[role green 1.11[br](146ns)]][[role green 1.00[br](131ns)]]] +[[InverseChiSquared (quantile)][[role red 2.31[br](1177ns)]][[role blue 1.54[br](784ns)]][[role green 1.20[br](612ns)]][[role green 1.00[br](510ns)]]] +[[InverseGamma (CDF)][[role blue 1.88[br](473ns)]][[role blue 1.21[br](303ns)]][[role green 1.07[br](269ns)]][[role green 1.00[br](251ns)]]] +[[InverseGamma (PDF)][[role blue 1.89[br](322ns)]][[role blue 1.21[br](206ns)]][[role green 1.16[br](197ns)]][[role green 1.00[br](170ns)]]] +[[InverseGamma (quantile)][[role red 2.02[br](1408ns)]][[role blue 1.43[br](998ns)]][[role green 1.01[br](704ns)]][[role green 1.00[br](696ns)]]] +[[InverseGaussian (CDF)][[role blue 1.27[br](107ns)]][[role blue 1.29[br](108ns)]][[role blue 1.26[br](106ns)]][[role green 1.00[br](84ns)]]] +[[InverseGaussian (PDF)][[role green 1.03[br](33ns)]][[role green 1.03[br](33ns)]][[role green 1.00[br](32ns)]][[role green 1.03[br](33ns)]]] +[[InverseGaussian (quantile)][[role blue 1.49[br](2001ns)]][[role blue 1.51[br](2023ns)]][[role blue 1.36[br](1821ns)]][[role green 1.00[br](1341ns)]]] +[[Laplace (CDF)][[role green 1.00[br](53ns)]][[role green 1.00[br](53ns)]][[role green 1.00[br](53ns)]][[role green 1.02[br](54ns)]]] +[[Laplace (PDF)][[role green 1.00[br](53ns)]][[role green 1.00[br](53ns)]][[role green 1.00[br](53ns)]][[role green 1.06[br](56ns)]]] +[[Laplace (quantile)][[role green 1.00[br](36ns)]][[role green 1.00[br](36ns)]][[role green 1.00[br](36ns)]][[role green 1.08[br](39ns)]]] +[[LogNormal (CDF)][[role blue 1.24[br](110ns)]][[role green 1.00[br](89ns)]][[role green 1.01[br](90ns)]][[role green 1.01[br](90ns)]]] +[[LogNormal (PDF)][[role green 1.00[br](93ns)]][[role green 1.00[br](93ns)]][[role green 1.01[br](94ns)]][[role green 1.06[br](99ns)]]] +[[LogNormal (quantile)][[role green 1.19[br](130ns)]][[role green 1.00[br](109ns)]][[role green 1.01[br](110ns)]][[role green 1.04[br](113ns)]]] +[[Logistic (CDF)][[role green 1.02[br](49ns)]][[role green 1.02[br](49ns)]][[role green 1.00[br](48ns)]][[role green 1.06[br](51ns)]]] +[[Logistic (PDF)][[role green 1.00[br](51ns)]][[role green 1.00[br](51ns)]][[role green 1.00[br](51ns)]][[role green 1.04[br](53ns)]]] +[[Logistic (quantile)][[role green 1.03[br](39ns)]][[role green 1.00[br](38ns)]][[role green 1.03[br](39ns)]][[role green 1.08[br](41ns)]]] +[[NegativeBinomial (CDF)][[role red 4.45[br](1637ns)]][[role red 2.70[br](995ns)]][[role red 2.04[br](750ns)]][[role green 1.00[br](368ns)]]] +[[NegativeBinomial (PDF)][[role red 2.36[br](371ns)]][[role green 1.09[br](171ns)]][[role green 1.09[br](171ns)]][[role green 1.00[br](157ns)]]] +[[NegativeBinomial (quantile)][[role red 2.51[br](8502ns)]][[role blue 1.48[br](5008ns)]][[role green 1.15[br](3915ns)]][[role green 1.00[br](3391ns)]]] +[[NonCentralBeta (CDF)][[role red 3.15[br](2253ns)]][[role blue 1.99[br](1424ns)]][[role blue 1.68[br](1200ns)]][[role green 1.00[br](715ns)]]] +[[NonCentralBeta (PDF)][[role red 3.33[br](1783ns)]][[role red 2.14[br](1149ns)]][[role blue 1.82[br](978ns)]][[role green 1.00[br](536ns)]]] +[[NonCentralBeta (quantile)][[role red 3.87[br](49487ns)]][[role red 2.41[br](30811ns)]][[role red 2.03[br](25972ns)]][[role green 1.00[br](12782ns)]]] +[[NonCentralChiSquared (CDF)][[role red 3.87[br](6742ns)]][[role red 2.50[br](4356ns)]][[role blue 1.99[br](3465ns)]][[role green 1.00[br](1741ns)]]] +[[NonCentralChiSquared (PDF)][[role red 2.41[br](1037ns)]][[role blue 1.59[br](687ns)]][[role blue 1.46[br](631ns)]][[role green 1.00[br](431ns)]]] +[[NonCentralChiSquared (quantile)][[role red 6.11[br](47527ns)]][[role red 3.33[br](25921ns)]][[role red 2.27[br](17618ns)]][[role green 1.00[br](7778ns)]]] +[[NonCentralF (CDF)][[role red 3.22[br](2049ns)]][[role red 2.02[br](1287ns)]][[role blue 1.65[br](1053ns)]][[role green 1.00[br](637ns)]]] +[[NonCentralF (PDF)][[role red 3.05[br](1698ns)]][[role blue 1.88[br](1046ns)]][[role blue 1.62[br](901ns)]][[role green 1.00[br](557ns)]]] +[[NonCentralF (quantile)][[role red 3.78[br](31917ns)]][[role red 2.20[br](18593ns)]][[role blue 1.76[br](14843ns)]][[role green 1.00[br](8452ns)]]] +[[NonCentralT (CDF)][[role red 3.74[br](8710ns)]][[role red 2.47[br](5740ns)]][[role red 2.04[br](4738ns)]][[role green 1.00[br](2326ns)]]] +[[NonCentralT (PDF)][[role red 3.67[br](6704ns)]][[role red 2.48[br](4534ns)]][[role red 2.07[br](3772ns)]][[role green 1.00[br](1825ns)]]] +[[NonCentralT (quantile)][[role red 4.74[br](91220ns)]][[role red 2.89[br](55546ns)]][[role red 2.03[br](39113ns)]][[role green 1.00[br](19239ns)]]] +[[Normal (CDF)][[role blue 1.36[br](75ns)]][[role green 1.02[br](56ns)]][[role green 1.00[br](55ns)]][[role green 1.02[br](56ns)]]] +[[Normal (PDF)][[role green 1.02[br](60ns)]][[role green 1.00[br](59ns)]][[role green 1.02[br](60ns)]][[role green 1.02[br](60ns)]]] +[[Normal (quantile)][[role blue 1.58[br](84ns)]][[role green 1.00[br](53ns)]][[role green 1.00[br](53ns)]][[role green 1.04[br](55ns)]]] +[[Pareto (CDF)][[role green 1.12[br](81ns)]][[role green 1.00[br](72ns)]][[role green 1.03[br](74ns)]][[role green 1.04[br](75ns)]]] +[[Pareto (PDF)][[role green 1.00[br](86ns)]][[role green 1.01[br](87ns)]][[role green 1.01[br](87ns)]][[role green 1.06[br](91ns)]]] +[[Pareto (quantile)][[role green 1.00[br](74ns)]][[role green 1.03[br](76ns)]][[role green 1.00[br](74ns)]][[role green 1.05[br](78ns)]]] +[[Poisson (CDF)][[role red 2.05[br](242ns)]][[role blue 1.27[br](150ns)]][[role green 1.14[br](135ns)]][[role green 1.00[br](118ns)]]] +[[Poisson (PDF)][[role blue 1.73[br](168ns)]][[role green 1.07[br](104ns)]][[role green 1.05[br](102ns)]][[role green 1.00[br](97ns)]]] +[[Poisson (quantile)][[role blue 1.98[br](1055ns)]][[role green 1.19[br](634ns)]][[role green 1.11[br](589ns)]][[role green 1.00[br](533ns)]]] +[[Rayleigh (CDF)][[role blue 1.32[br](49ns)]][[role green 1.03[br](38ns)]][[role green 1.03[br](38ns)]][[role green 1.00[br](37ns)]]] +[[Rayleigh (PDF)][[role green 1.02[br](62ns)]][[role green 1.00[br](61ns)]][[role green 1.02[br](62ns)]][[role green 1.00[br](61ns)]]] +[[Rayleigh (quantile)][[role blue 1.75[br](49ns)]][[role green 1.04[br](29ns)]][[role green 1.04[br](29ns)]][[role green 1.00[br](28ns)]]] +[[SkewNormal (CDF)][[role blue 1.30[br](411ns)]][[role blue 1.29[br](408ns)]][[role blue 1.25[br](397ns)]][[role green 1.00[br](317ns)]]] +[[SkewNormal (PDF)][[role green 1.19[br](117ns)]][[role green 1.02[br](100ns)]][[role green 1.04[br](102ns)]][[role green 1.00[br](98ns)]]] +[[SkewNormal (quantile)][[role blue 1.86[br](3638ns)]][[role blue 1.71[br](3353ns)]][[role blue 1.21[br](2373ns)]][[role green 1.00[br](1959ns)]]] +[[StudentsT (CDF)][[role red 2.49[br](827ns)]][[role blue 1.29[br](428ns)]][[role blue 1.20[br](400ns)]][[role green 1.00[br](332ns)]]] +[[StudentsT (PDF)][[role red 2.12[br](363ns)]][[role green 1.09[br](186ns)]][[role green 1.08[br](185ns)]][[role green 1.00[br](171ns)]]] +[[StudentsT (quantile)][[role red 2.03[br](1482ns)]][[role green 1.16[br](851ns)]][[role green 1.13[br](829ns)]][[role green 1.00[br](731ns)]]] +[[Weibull (CDF)][[role green 1.16[br](92ns)]][[role green 1.00[br](79ns)]][[role green 1.01[br](80ns)]][[role green 1.04[br](82ns)]]] +[[Weibull (PDF)][[role green 1.00[br](142ns)]][[role green 1.02[br](145ns)]][[role green 1.02[br](145ns)]][[role green 1.02[br](145ns)]]] +[[Weibull (quantile)][[role green 1.12[br](127ns)]][[role green 1.01[br](114ns)]][[role green 1.00[br](113ns)]][[role green 1.04[br](117ns)]]] ] ] -[template table_Polynomial_Method_Comparison_on_Win32[] -[table:table_Polynomial_Method_Comparison_on_Win32 Polynomial Method Comparison on Win32 +[template table_Distribution_performance_comparison_with_GNU_C_version_4_9_2_on_Windows_x64[] +[table:table_Distribution_performance_comparison_with_GNU_C_version_4_9_2_on_Windows_x64 Distribution performance comparison with GNU C++ version 4.9.2 on Windows x64 +[[Function][boost 1.59][Boost[br]promote_double][DCDFLIB]] +[[ArcSine (CDF)][[role green 1.00[br](34ns)]][[role green 1.03[br](35ns)]][]] +[[ArcSine (PDF)][[role green 1.00[br](9ns)]][[role green 1.00[br](9ns)]][]] +[[ArcSine (quantile)][[role green 1.07[br](49ns)]][[role green 1.00[br](46ns)]][]] +[[Beta (CDF)][[role blue 1.80[br](361ns)]][[role green 1.00[br](200ns)]][[role red 2.19[br](439ns)]]] +[[Beta (PDF)][[role red 2.09[br](312ns)]][[role green 1.00[br](149ns)]][]] +[[Beta (quantile)][[role blue 1.60[br](2163ns)]][[role green 1.00[br](1354ns)]][[role red 7.22[br](9779ns)]]] +[[Binomial (CDF)][[role blue 1.72[br](1157ns)]][[role green 1.00[br](671ns)]][[role green 1.19[br](799ns)]]] +[[Binomial (PDF)][[role red 2.21[br](353ns)]][[role green 1.00[br](160ns)]][]] +[[Binomial (quantile)][[role blue 1.71[br](5135ns)]][[role green 1.00[br](2996ns)]][[role red 4.33[br](12969ns)]]] +[[Cauchy (CDF)][[role green 1.00[br](26ns)]][[role green 1.00[br](26ns)]][]] +[[Cauchy (PDF)][[role green 1.00[br](8ns)]][[role green 1.00[br](8ns)]][]] +[[Cauchy (quantile)][[role green 1.00[br](27ns)]][[role green 1.00[br](27ns)]][]] +[[ChiSquared (CDF)][[role red 2.15[br](484ns)]][[role blue 1.33[br](300ns)]][[role green 1.00[br](225ns)]]] +[[ChiSquared (PDF)][[role blue 1.87[br](268ns)]][[role green 1.00[br](143ns)]][]] +[[ChiSquared (quantile)][[role blue 1.54[br](1254ns)]][[role green 1.00[br](813ns)]][[role red 6.16[br](5007ns)]]] +[[Exponential (CDF)][[role blue 1.26[br](43ns)]][[role green 1.00[br](34ns)]][]] +[[Exponential (PDF)][[role green 1.00[br](59ns)]][[role green 1.00[br](59ns)]][]] +[[Exponential (quantile)][[role blue 1.70[br](46ns)]][[role green 1.00[br](27ns)]][]] +[[ExtremeValue (CDF)][[role green 1.00[br](111ns)]][[role green 1.02[br](113ns)]][]] +[[ExtremeValue (PDF)][[role green 1.00[br](155ns)]][[role green 1.04[br](161ns)]][]] +[[ExtremeValue (quantile)][[role green 1.00[br](72ns)]][[role green 1.01[br](73ns)]][]] +[[F (CDF)][[role blue 1.70[br](986ns)]][[role green 1.00[br](580ns)]][[role green 1.14[br](664ns)]]] +[[F (PDF)][[role red 2.15[br](364ns)]][[role green 1.00[br](169ns)]][]] +[[F (quantile)][[role blue 1.71[br](2761ns)]][[role green 1.00[br](1616ns)]][[role red 5.93[br](9588ns)]]] +[[Gamma (CDF)][[role blue 1.94[br](479ns)]][[role blue 1.21[br](300ns)]][[role green 1.00[br](247ns)]]] +[[Gamma (PDF)][[role blue 1.54[br](321ns)]][[role green 1.00[br](208ns)]][]] +[[Gamma (quantile)][[role blue 1.91[br](1423ns)]][[role blue 1.35[br](1003ns)]][[role green 1.00[br](744ns)]]] +[[Geometric (CDF)][[role blue 1.40[br](49ns)]][[role green 1.00[br](35ns)]][]] +[[Geometric (PDF)][[role green 1.00[br](52ns)]][[role green 1.02[br](53ns)]][]] +[[Geometric (quantile)][[role blue 1.50[br](42ns)]][[role green 1.00[br](28ns)]][]] +[[Hypergeometric (CDF)][[role blue 1.82[br](11195ns)]][[role green 1.00[br](6135ns)]][]] +[[Hypergeometric (PDF)][[role blue 1.84[br](10847ns)]][[role green 1.00[br](5898ns)]][]] +[[Hypergeometric (quantile)][[role green 1.00[br](56876ns)]][[role blue 1.71[br](97171ns)]][]] +[[InverseChiSquared (CDF)][[role blue 1.72[br](474ns)]][[role green 1.00[br](275ns)]][]] +[[InverseChiSquared (PDF)][[role blue 1.65[br](254ns)]][[role green 1.00[br](154ns)]][]] +[[InverseChiSquared (quantile)][[role blue 1.50[br](1177ns)]][[role green 1.00[br](784ns)]][]] +[[InverseGamma (CDF)][[role blue 1.56[br](473ns)]][[role green 1.00[br](303ns)]][]] +[[InverseGamma (PDF)][[role blue 1.56[br](322ns)]][[role green 1.00[br](206ns)]][]] +[[InverseGamma (quantile)][[role blue 1.41[br](1408ns)]][[role green 1.00[br](998ns)]][]] +[[InverseGaussian (CDF)][[role green 1.00[br](107ns)]][[role green 1.01[br](108ns)]][]] +[[InverseGaussian (PDF)][[role green 1.00[br](33ns)]][[role green 1.00[br](33ns)]][]] +[[InverseGaussian (quantile)][[role green 1.00[br](2001ns)]][[role green 1.01[br](2023ns)]][]] +[[Laplace (CDF)][[role green 1.00[br](53ns)]][[role green 1.00[br](53ns)]][]] +[[Laplace (PDF)][[role green 1.00[br](53ns)]][[role green 1.00[br](53ns)]][]] +[[Laplace (quantile)][[role green 1.00[br](36ns)]][[role green 1.00[br](36ns)]][]] +[[LogNormal (CDF)][[role blue 1.24[br](110ns)]][[role green 1.00[br](89ns)]][]] +[[LogNormal (PDF)][[role green 1.00[br](93ns)]][[role green 1.00[br](93ns)]][]] +[[LogNormal (quantile)][[role green 1.19[br](130ns)]][[role green 1.00[br](109ns)]][]] +[[Logistic (CDF)][[role green 1.00[br](49ns)]][[role green 1.00[br](49ns)]][]] +[[Logistic (PDF)][[role green 1.00[br](51ns)]][[role green 1.00[br](51ns)]][]] +[[Logistic (quantile)][[role green 1.03[br](39ns)]][[role green 1.00[br](38ns)]][]] +[[NegativeBinomial (CDF)][[role blue 1.91[br](1637ns)]][[role green 1.16[br](995ns)]][[role green 1.00[br](857ns)]]] +[[NegativeBinomial (PDF)][[role red 2.17[br](371ns)]][[role green 1.00[br](171ns)]][]] +[[NegativeBinomial (quantile)][[role blue 1.70[br](8502ns)]][[role green 1.00[br](5008ns)]][[role red 3.25[br](16272ns)]]] +[[NonCentralBeta (CDF)][[role blue 1.58[br](2253ns)]][[role green 1.00[br](1424ns)]][]] +[[NonCentralBeta (PDF)][[role blue 1.55[br](1783ns)]][[role green 1.00[br](1149ns)]][]] +[[NonCentralBeta (quantile)][[role blue 1.61[br](49487ns)]][[role green 1.00[br](30811ns)]][]] +[[NonCentralChiSquared (CDF)][[role red 9.90[br](6742ns)]][[role red 6.40[br](4356ns)]][[role green 1.00[br](681ns)]]] +[[NonCentralChiSquared (PDF)][[role blue 1.51[br](1037ns)]][[role green 1.00[br](687ns)]][]] +[[NonCentralChiSquared (quantile)][[role red 3.24[br](47527ns)]][[role blue 1.76[br](25921ns)]][[role green 1.00[br](14691ns)]]] +[[NonCentralF (CDF)][[role blue 1.59[br](2049ns)]][[role green 1.00[br](1287ns)]][[role blue 1.25[br](1609ns)]]] +[[NonCentralF (PDF)][[role blue 1.62[br](1698ns)]][[role green 1.00[br](1046ns)]][]] +[[NonCentralF (quantile)][[role blue 1.72[br](31917ns)]][[role green 1.00[br](18593ns)]][[role green 1.00[br](18612ns)]]] +[[NonCentralT (CDF)][[role red 2.31[br](8710ns)]][[role blue 1.52[br](5740ns)]][[role green 1.00[br](3766ns)]]] +[[NonCentralT (PDF)][[role blue 1.48[br](6704ns)]][[role green 1.00[br](4534ns)]][]] +[[NonCentralT (quantile)][[role blue 1.64[br](91220ns)]][[role green 1.00[br](55546ns)]][[role green 1.00[br](55518ns)]]] +[[Normal (CDF)][[role blue 1.34[br](75ns)]][[role green 1.00[br](56ns)]][[role red 3.11[br](174ns)]]] +[[Normal (PDF)][[role green 1.02[br](60ns)]][[role green 1.00[br](59ns)]][]] +[[Normal (quantile)][[role blue 1.58[br](84ns)]][[role green 1.00[br](53ns)]][[role red 10.49[br](556ns)]]] +[[Pareto (CDF)][[role green 1.12[br](81ns)]][[role green 1.00[br](72ns)]][]] +[[Pareto (PDF)][[role green 1.00[br](86ns)]][[role green 1.01[br](87ns)]][]] +[[Pareto (quantile)][[role green 1.00[br](74ns)]][[role green 1.03[br](76ns)]][]] +[[Poisson (CDF)][[role blue 1.61[br](242ns)]][[role green 1.00[br](150ns)]][[role blue 1.35[br](202ns)]]] +[[Poisson (PDF)][[role blue 1.62[br](168ns)]][[role green 1.00[br](104ns)]][]] +[[Poisson (quantile)][[role blue 1.66[br](1055ns)]][[role green 1.00[br](634ns)]][[role red 4.43[br](2810ns)]]] +[[Rayleigh (CDF)][[role blue 1.29[br](49ns)]][[role green 1.00[br](38ns)]][]] +[[Rayleigh (PDF)][[role green 1.02[br](62ns)]][[role green 1.00[br](61ns)]][]] +[[Rayleigh (quantile)][[role blue 1.69[br](49ns)]][[role green 1.00[br](29ns)]][]] +[[SkewNormal (CDF)][[role green 1.01[br](411ns)]][[role green 1.00[br](408ns)]][]] +[[SkewNormal (PDF)][[role green 1.17[br](117ns)]][[role green 1.00[br](100ns)]][]] +[[SkewNormal (quantile)][[role green 1.08[br](3638ns)]][[role green 1.00[br](3353ns)]][]] +[[StudentsT (CDF)][[role blue 1.93[br](827ns)]][[role green 1.00[br](428ns)]][[role green 1.12[br](480ns)]]] +[[StudentsT (PDF)][[role blue 1.95[br](363ns)]][[role green 1.00[br](186ns)]][]] +[[StudentsT (quantile)][[role blue 1.74[br](1482ns)]][[role green 1.00[br](851ns)]][[role red 4.49[br](3818ns)]]] +[[Weibull (CDF)][[role green 1.16[br](92ns)]][[role green 1.00[br](79ns)]][]] +[[Weibull (PDF)][[role green 1.00[br](142ns)]][[role green 1.02[br](145ns)]][]] +[[Weibull (quantile)][[role green 1.11[br](127ns)]][[role green 1.00[br](114ns)]][]] +] +] + +[template table_Library_Comparison_with_GNU_C_version_4_9_2_on_Windows_x64[] +[table:table_Library_Comparison_with_GNU_C_version_4_9_2_on_Windows_x64 Library Comparison with GNU C++ version 4.9.2 on Windows x64 +[[Function][boost 1.59][boost 1.59[br]promote_double][tr1/cmath][math.h]] +[[assoc_laguerre[br](2240/2240 tests selected)][[role green 1.14[br](230ns)]][[role green 1.00[br](202ns)]][[role green 1.18[br](238ns)]][]] +[[assoc_legendre[br](205/400 tests selected)][[role red 3.76[br](184ns)]][[role red 2.39[br](117ns)]][[role green 1.00[br](49ns)]][]] +[[beta (incomplete)[br](3210/3210 tests selected)][[role blue 1.76[br](1152ns)]][[role green 1.00[br](656ns)]][[role grey -]][[role grey -]]] +[[beta[br](2202/2202 tests selected)][[role red 2.18[br](414ns)]][[role blue 1.22[br](232ns)]][[role green 1.00[br](190ns)]][]] +[[cbrt[br](85/85 tests selected)][[role green 1.11[br](50ns)]][[role green 1.00[br](45ns)]][[role blue 1.36[br](61ns)]][[role blue 1.31[br](59ns)]]] +[[cyl_bessel_i (integer order)[br](515/526 tests selected)][[role red 2.87[br](685ns)]][[role green 1.03[br](246ns)]][[role green 1.00[br](239ns)]][[role grey -]]] +[[cyl_bessel_i[br](215/240 tests selected)][[role red 4.95[br](1098ns)]][[role red 2.02[br](448ns)]][[role green 1.00[br](222ns)]][[role grey -]]] +[[cyl_bessel_j (integer order)[br](252/268 tests selected)][[role blue 1.84[br](173ns)]][[role green 1.00[br](94ns)]][[role red 3.28[br](308ns)]][[role red 2.14[br](201ns)]]] +[[cyl_bessel_j[br](431/451 tests selected)][[role blue 1.96[br](836ns)]][[role green 1.20[br](510ns)]][[role green 1.00[br](426ns)]][[role grey -]]] +[[cyl_bessel_k (integer order)[br](505/508 tests selected)][[role red 10.10[br](3758ns)]][[role green 1.00[br](372ns)]][[role red 7.83[br](2913ns)]][[role grey -]]] +[[cyl_bessel_k[br](187/279 tests selected)][[role red 8.81[br](6705ns)]][[role green 1.00[br](761ns)]][[role red 4.14[br](3154ns)]][[role grey -]]] +[[cyl_neumann (integer order)[br](423/428 tests selected)][[role red 3.35[br](522ns)]][[role red 2.24[br](349ns)]][[role red 4.58[br](715ns)]][[role green 1.00[br](156ns)]]] +[[cyl_neumann[br](400/450 tests selected)][[role red 2.11[br](1443ns)]][[role green 1.00[br](685ns)]][[role green 1.11[br](758ns)]][[role grey -]]] +[[digamma[br](1019/1019 tests selected)][[role blue 1.78[br](82ns)]][[role green 1.00[br](46ns)]][[role grey -]][[role grey -]]] +[[ellint_1 (complete)[br](109/109 tests selected)][[role blue 1.56[br](75ns)]][[role green 1.00[br](48ns)]][[role red 4.83[br](232ns)]][[role grey -]]] +[[ellint_1[br](627/629 tests selected)][[role blue 1.49[br](382ns)]][[role green 1.00[br](256ns)]][[role blue 1.83[br](469ns)]][[role grey -]]] +[[ellint_2 (complete)[br](110/110 tests selected)][[role blue 2.00[br](66ns)]][[role green 1.00[br](33ns)]][[role red 16.45[br](543ns)]][[role grey -]]] +[[ellint_2[br](527/530 tests selected)][[role blue 1.44[br](675ns)]][[role green 1.00[br](469ns)]][[role blue 1.50[br](703ns)]][[role grey -]]] +[[ellint_3 (complete)[br](500/500 tests selected)][[role blue 1.99[br](1075ns)]][[role green 1.00[br](539ns)]][[role blue 1.63[br](876ns)]][[role grey -]]] +[[ellint_3[br](831/845 tests selected)][[role blue 1.87[br](1878ns)]][[role green 1.00[br](1006ns)]][[role blue 1.33[br](1333ns)]][[role grey -]]] +[[ellint_rc[br](201/201 tests selected)][[role blue 1.68[br](84ns)]][[role green 1.00[br](50ns)]][[role grey -]][[role grey -]]] +[[ellint_rd[br](7588/7588 tests selected)][[role blue 1.38[br](371ns)]][[role green 1.00[br](268ns)]][[role grey -]][[role grey -]]] +[[ellint_rf[br](7788/7788 tests selected)][[role blue 1.77[br](106ns)]][[role green 1.00[br](60ns)]][[role grey -]][[role grey -]]] +[[ellint_rj[br](8032/8032 tests selected)][[role blue 1.82[br](473ns)]][[role green 1.00[br](260ns)]][[role grey -]][[role grey -]]] +[[erf[br](950/950 tests selected)][[role green 1.00[br](25ns)]][[role grey -]][[role blue 1.72[br](43ns)]][[role blue 1.76[br](44ns)]]] +[[erfc[br](950/950 tests selected)][[role blue 1.51[br](56ns)]][[role green 1.00[br](37ns)]][[role blue 1.76[br](65ns)]][[role blue 1.76[br](65ns)]]] +[[expint (En)[br](1059/1059 tests selected)][[role blue 1.43[br](224ns)]][[role green 1.00[br](157ns)]][[role grey -]][[role grey -]]] +[[expint[br](436/436 tests selected)][[role blue 1.53[br](90ns)]][[role green 1.00[br](59ns)]][[role red 4.02[br](237ns)]][[role grey -]]] +[[expm1[br](80/80 tests selected)][[role blue 1.35[br](31ns)]][[role green 1.09[br](25ns)]][[role green 1.00[br](23ns)]][[role green 1.00[br](23ns)]]] +[[gamma_p[br](1379/1379 tests selected)][[role blue 1.63[br](411ns)]][[role green 1.00[br](252ns)]][[role grey -]][[role grey -]]] +[[gamma_p_inv[br](559/559 tests selected)][[role blue 1.44[br](1345ns)]][[role green 1.00[br](936ns)]][[role grey -]][[role grey -]]] +[[gamma_q[br](1379/1379 tests selected)][[role blue 1.66[br](406ns)]][[role green 1.00[br](245ns)]][[role grey -]][[role grey -]]] +[[gamma_q_inv[br](559/559 tests selected)][[role blue 1.31[br](1323ns)]][[role green 1.00[br](1013ns)]][[role grey -]][[role grey -]]] +[[ibeta[br](3210/3210 tests selected)][[role blue 1.66[br](1246ns)]][[role green 1.00[br](751ns)]][[role grey -]][[role grey -]]] +[[ibeta_inv[br](1210/1210 tests selected)][[role blue 1.64[br](4130ns)]][[role green 1.00[br](2513ns)]][[role grey -]][[role grey -]]] +[[ibetac[br](3210/3210 tests selected)][[role blue 1.64[br](1199ns)]][[role green 1.00[br](732ns)]][[role grey -]][[role grey -]]] +[[ibetac_inv[br](1210/1210 tests selected)][[role blue 1.61[br](4159ns)]][[role green 1.00[br](2584ns)]][[role grey -]][[role grey -]]] +[[jacobi_cn[br](2757/2757 tests selected)][[role blue 1.77[br](564ns)]][[role green 1.00[br](319ns)]][[role grey -]][[role grey -]]] +[[jacobi_dn[br](2757/2757 tests selected)][[role blue 1.72[br](580ns)]][[role green 1.00[br](338ns)]][[role grey -]][[role grey -]]] +[[jacobi_sn[br](2757/2757 tests selected)][[role blue 1.79[br](502ns)]][[role green 1.00[br](281ns)]][[role grey -]][[role grey -]]] +[[laguerre[br](280/280 tests selected)][[role green 1.11[br](151ns)]][[role green 1.00[br](136ns)]][[role blue 1.21[br](165ns)]][[role grey -]]] +[[legendre Q[br](300/300 tests selected)][[role green 1.19[br](543ns)]][[role green 1.00[br](456ns)]][[role grey -]][[role grey -]]] +[[legendre[br](300/300 tests selected)][[role blue 1.23[br](420ns)]][[role green 1.00[br](342ns)]][[role green 1.17[br](399ns)]][[role grey -]]] +[[lgamma[br](400/400 tests selected)][[role red 3.88[br](233ns)]][[role red 2.37[br](142ns)]][[role green 1.03[br](62ns)]][[role green 1.00[br](60ns)]]] +[[log1p[br](80/80 tests selected)][[role blue 1.71[br](29ns)]][[role green 1.00[br](17ns)]][[role blue 1.71[br](29ns)]][[role blue 1.65[br](28ns)]]] +[[polygamma[br](1535/1535 tests selected)][[role green 1.00[br](3493ns)]][[role red 2.28[br](7971ns)]][[role grey -]][[role grey -]]] +[[sph_bessel[br](483/483 tests selected)][[role blue 1.38[br](1360ns)]][[role green 1.00[br](983ns)]][[role blue 1.93[br](1900ns)]][[role grey -]]] +[[sph_neumann[br](284/284 tests selected)][[role red 2.17[br](3903ns)]][[role green 1.00[br](1798ns)]][[role blue 1.58[br](2839ns)]][[role grey -]]] +[[tgamma (incomplete)[br](1288/1379 tests selected)][[role blue 1.47[br](567ns)]][[role green 1.00[br](385ns)]][[role grey -]][[role grey -]]] +[[tgamma[br](400/400 tests selected)][[role red 3.07[br](221ns)]][[role blue 1.89[br](136ns)]][[role green 1.12[br](81ns)]][[role green 1.00[br](72ns)]]] +[[trigamma[br](659/659 tests selected)][[role blue 1.69[br](49ns)]][[role green 1.00[br](29ns)]][[role grey -]][[role grey -]]] +[[zeta[br](448/448 tests selected)][[role blue 1.49[br](351ns)]][[role green 1.00[br](235ns)]][[role red 803.07[br](188721ns)]][[role grey -]]] +] +] + +[template table_Distribution_performance_comparison_with_for_different_performance_options_with_Intel_C_C_0x_mode_version_1500_on_Windows_x64[] +[table:table_Distribution_performance_comparison_with_for_different_performance_options_with_Intel_C_C_0x_mode_version_1500_on_Windows_x64 Distribution performance comparison with for different performance options with Intel C++ C++0x mode version 1500 on Windows x64 +[[Function][boost 1.59][Boost[br]promote_double[br]digits10<10>][Boost[br]float[br]promote_float]] +[[ArcSine (CDF)][[role blue 1.33[br](36ns)]][[role blue 1.37[br](37ns)]][[role green 1.00[br](27ns)]]] +[[ArcSine (PDF)][[role green 1.07[br](15ns)]][[role green 1.14[br](16ns)]][[role green 1.00[br](14ns)]]] +[[ArcSine (quantile)][[role blue 1.30[br](26ns)]][[role blue 1.25[br](25ns)]][[role green 1.00[br](20ns)]]] +[[Beta (CDF)][[role blue 1.97[br](154ns)]][[role blue 1.67[br](130ns)]][[role green 1.00[br](78ns)]]] +[[Beta (PDF)][[role red 2.06[br](142ns)]][[role blue 1.26[br](87ns)]][[role green 1.00[br](69ns)]]] +[[Beta (quantile)][[role red 2.06[br](859ns)]][[role blue 1.48[br](616ns)]][[role green 1.00[br](416ns)]]] +[[Binomial (CDF)][[role red 2.85[br](619ns)]][[role red 2.12[br](459ns)]][[role green 1.00[br](217ns)]]] +[[Binomial (PDF)][[role blue 1.78[br](182ns)]][[role green 1.17[br](119ns)]][[role green 1.00[br](102ns)]]] +[[Binomial (quantile)][[role red 2.54[br](2819ns)]][[role blue 1.91[br](2120ns)]][[role green 1.00[br](1109ns)]]] +[[Cauchy (CDF)][[role blue 1.35[br](23ns)]][[role blue 1.29[br](22ns)]][[role green 1.00[br](17ns)]]] +[[Cauchy (PDF)][[role green 1.00[br](8ns)]][[role green 1.00[br](8ns)]][[role green 1.00[br](8ns)]]] +[[Cauchy (quantile)][[role green 1.00[br](24ns)]][[role green 1.04[br](25ns)]][[role green 1.08[br](26ns)]]] +[[ChiSquared (CDF)][[role red 2.07[br](226ns)]][[role blue 1.68[br](183ns)]][[role green 1.00[br](109ns)]]] +[[ChiSquared (PDF)][[role red 2.02[br](113ns)]][[role blue 1.68[br](94ns)]][[role green 1.00[br](56ns)]]] +[[ChiSquared (quantile)][[role red 2.09[br](581ns)]][[role blue 1.48[br](412ns)]][[role green 1.00[br](278ns)]]] +[[Exponential (CDF)][[role green 1.00[br](13ns)]][[role green 1.00[br](13ns)]][[role green 1.00[br](13ns)]]] +[[Exponential (PDF)][[role green 1.15[br](15ns)]][[role green 1.08[br](14ns)]][[role green 1.00[br](13ns)]]] +[[Exponential (quantile)][[role blue 1.27[br](19ns)]][[role green 1.13[br](17ns)]][[role green 1.00[br](15ns)]]] +[[ExtremeValue (CDF)][[role blue 1.35[br](31ns)]][[role blue 1.35[br](31ns)]][[role green 1.00[br](23ns)]]] +[[ExtremeValue (PDF)][[role blue 1.32[br](33ns)]][[role blue 1.36[br](34ns)]][[role green 1.00[br](25ns)]]] +[[ExtremeValue (quantile)][[role blue 1.48[br](34ns)]][[role blue 1.43[br](33ns)]][[role green 1.00[br](23ns)]]] +[[F (CDF)][[role red 2.87[br](569ns)]][[role red 2.06[br](408ns)]][[role green 1.00[br](198ns)]]] +[[F (PDF)][[role blue 1.93[br](193ns)]][[role green 1.18[br](118ns)]][[role green 1.00[br](100ns)]]] +[[F (quantile)][[role blue 1.47[br](1237ns)]][[role blue 1.22[br](1023ns)]][[role green 1.00[br](839ns)]]] +[[Gamma (CDF)][[role blue 1.75[br](201ns)]][[role blue 1.43[br](164ns)]][[role green 1.00[br](115ns)]]] +[[Gamma (PDF)][[role blue 1.95[br](121ns)]][[role blue 1.58[br](98ns)]][[role green 1.00[br](62ns)]]] +[[Gamma (quantile)][[role red 2.23[br](657ns)]][[role blue 1.41[br](415ns)]][[role green 1.00[br](294ns)]]] +[[Geometric (CDF)][[role green 1.18[br](20ns)]][[role green 1.12[br](19ns)]][[role green 1.00[br](17ns)]]] +[[Geometric (PDF)][[role green 1.18[br](20ns)]][[role green 1.18[br](20ns)]][[role green 1.00[br](17ns)]]] +[[Geometric (quantile)][[role green 1.18[br](20ns)]][[role green 1.12[br](19ns)]][[role green 1.00[br](17ns)]]] +[[Hypergeometric (CDF)][[role green 1.00[br](6071ns)]][[role green 1.00[br](6097ns)]][[role green 1.02[br](6183ns)]]] +[[Hypergeometric (PDF)][[role green 1.00[br](5923ns)]][[role green 1.00[br](5918ns)]][[role green 1.04[br](6130ns)]]] +[[Hypergeometric (quantile)][[role green 1.00[br](41736ns)]][[role green 1.00[br](41600ns)]][[role blue 1.23[br](51350ns)]]] +[[InverseChiSquared (CDF)][[role red 2.11[br](211ns)]][[role blue 1.56[br](156ns)]][[role green 1.00[br](100ns)]]] +[[InverseChiSquared (PDF)][[role blue 1.78[br](116ns)]][[role blue 1.45[br](94ns)]][[role green 1.00[br](65ns)]]] +[[InverseChiSquared (quantile)][[role red 2.04[br](603ns)]][[role blue 1.49[br](439ns)]][[role green 1.00[br](295ns)]]] +[[InverseGamma (CDF)][[role blue 1.69[br](193ns)]][[role blue 1.38[br](157ns)]][[role green 1.00[br](114ns)]]] +[[InverseGamma (PDF)][[role blue 1.95[br](125ns)]][[role blue 1.59[br](102ns)]][[role green 1.00[br](64ns)]]] +[[InverseGamma (quantile)][[role red 2.26[br](654ns)]][[role blue 1.46[br](422ns)]][[role green 1.00[br](290ns)]]] +[[InverseGaussian (CDF)][[role blue 1.24[br](51ns)]][[role blue 1.27[br](52ns)]][[role green 1.00[br](41ns)]]] +[[InverseGaussian (PDF)][[role green 1.20[br](12ns)]][[role green 1.20[br](12ns)]][[role green 1.00[br](10ns)]]] +[[InverseGaussian (quantile)][[role blue 1.35[br](809ns)]][[role blue 1.23[br](737ns)]][[role green 1.00[br](601ns)]]] +[[Laplace (CDF)][[role green 1.00[br](16ns)]][[role green 1.06[br](17ns)]][[role green 1.00[br](16ns)]]] +[[Laplace (PDF)][[role blue 1.21[br](17ns)]][[role green 1.14[br](16ns)]][[role green 1.00[br](14ns)]]] +[[Laplace (quantile)][[role green 1.20[br](18ns)]][[role green 1.07[br](16ns)]][[role green 1.00[br](15ns)]]] +[[LogNormal (CDF)][[role green 1.16[br](43ns)]][[role green 1.14[br](42ns)]][[role green 1.00[br](37ns)]]] +[[LogNormal (PDF)][[role blue 1.37[br](37ns)]][[role blue 1.37[br](37ns)]][[role green 1.00[br](27ns)]]] +[[LogNormal (quantile)][[role blue 1.28[br](69ns)]][[role green 1.19[br](64ns)]][[role green 1.00[br](54ns)]]] +[[Logistic (CDF)][[role green 1.20[br](18ns)]][[role green 1.20[br](18ns)]][[role green 1.00[br](15ns)]]] +[[Logistic (PDF)][[role blue 1.24[br](21ns)]][[role blue 1.24[br](21ns)]][[role green 1.00[br](17ns)]]] +[[Logistic (quantile)][[role blue 1.47[br](22ns)]][[role blue 1.40[br](21ns)]][[role green 1.00[br](15ns)]]] +[[NegativeBinomial (CDF)][[role red 3.21[br](1008ns)]][[role red 2.26[br](709ns)]][[role green 1.00[br](314ns)]]] +[[NegativeBinomial (PDF)][[role blue 1.80[br](191ns)]][[role green 1.16[br](123ns)]][[role green 1.00[br](106ns)]]] +[[NegativeBinomial (quantile)][[role blue 1.78[br](4938ns)]][[role blue 1.27[br](3517ns)]][[role green 1.00[br](2779ns)]]] +[[NonCentralBeta (CDF)][[role red 2.64[br](1285ns)]][[role red 2.05[br](997ns)]][[role green 1.00[br](486ns)]]] +[[NonCentralBeta (PDF)][[role red 2.73[br](1090ns)]][[role red 2.19[br](874ns)]][[role green 1.00[br](400ns)]]] +[[NonCentralBeta (quantile)][[role red 3.48[br](25087ns)]][[role red 2.67[br](19234ns)]][[role green 1.00[br](7201ns)]]] +[[NonCentralChiSquared (CDF)][[role red 2.88[br](4008ns)]][[role red 2.20[br](3056ns)]][[role green 1.00[br](1390ns)]]] +[[NonCentralChiSquared (PDF)][[role blue 1.84[br](523ns)]][[role blue 1.62[br](461ns)]][[role green 1.00[br](285ns)]]] +[[NonCentralChiSquared (quantile)][[role red 3.98[br](22959ns)]][[role red 2.61[br](15080ns)]][[role green 1.00[br](5769ns)]]] +[[NonCentralF (CDF)][[role red 2.61[br](1251ns)]][[role red 2.04[br](977ns)]][[role green 1.00[br](479ns)]]] +[[NonCentralF (PDF)][[role red 2.49[br](993ns)]][[role blue 1.95[br](779ns)]][[role green 1.00[br](399ns)]]] +[[NonCentralF (quantile)][[role red 2.90[br](18236ns)]][[role red 2.10[br](13178ns)]][[role green 1.00[br](6288ns)]]] +[[NonCentralT (CDF)][[role red 2.79[br](5488ns)]][[role red 2.17[br](4276ns)]][[role green 1.00[br](1968ns)]]] +[[NonCentralT (PDF)][[role red 2.80[br](4250ns)]][[role red 2.20[br](3343ns)]][[role green 1.00[br](1519ns)]]] +[[NonCentralT (quantile)][[role red 3.25[br](51198ns)]][[role red 2.24[br](35235ns)]][[role green 1.00[br](15735ns)]]] +[[Normal (CDF)][[role green 1.00[br](29ns)]][[role green 1.00[br](29ns)]][[role green 1.00[br](29ns)]]] +[[Normal (PDF)][[role blue 1.24[br](21ns)]][[role blue 1.24[br](21ns)]][[role green 1.00[br](17ns)]]] +[[Normal (quantile)][[role blue 1.23[br](43ns)]][[role green 1.17[br](41ns)]][[role green 1.00[br](35ns)]]] +[[Pareto (CDF)][[role blue 1.43[br](43ns)]][[role blue 1.37[br](41ns)]][[role green 1.00[br](30ns)]]] +[[Pareto (PDF)][[role blue 1.35[br](66ns)]][[role blue 1.31[br](64ns)]][[role green 1.00[br](49ns)]]] +[[Pareto (quantile)][[role blue 1.36[br](38ns)]][[role blue 1.25[br](35ns)]][[role green 1.00[br](28ns)]]] +[[Poisson (CDF)][[role blue 1.68[br](101ns)]][[role blue 1.40[br](84ns)]][[role green 1.00[br](60ns)]]] +[[Poisson (PDF)][[role blue 1.72[br](67ns)]][[role blue 1.38[br](54ns)]][[role green 1.00[br](39ns)]]] +[[Poisson (quantile)][[role blue 1.55[br](476ns)]][[role blue 1.30[br](399ns)]][[role green 1.00[br](307ns)]]] +[[Rayleigh (CDF)][[role green 1.13[br](17ns)]][[role green 1.13[br](17ns)]][[role green 1.00[br](15ns)]]] +[[Rayleigh (PDF)][[role blue 1.33[br](20ns)]][[role blue 1.33[br](20ns)]][[role green 1.00[br](15ns)]]] +[[Rayleigh (quantile)][[role blue 1.25[br](20ns)]][[role green 1.13[br](18ns)]][[role green 1.00[br](16ns)]]] +[[SkewNormal (CDF)][[role green 1.00[br](188ns)]][[role green 1.01[br](189ns)]][[role green 1.02[br](191ns)]]] +[[SkewNormal (PDF)][[role green 1.08[br](53ns)]][[role green 1.08[br](53ns)]][[role green 1.00[br](49ns)]]] +[[SkewNormal (quantile)][[role blue 1.43[br](1436ns)]][[role green 1.08[br](1088ns)]][[role green 1.00[br](1007ns)]]] +[[StudentsT (CDF)][[role blue 1.85[br](343ns)]][[role blue 1.73[br](320ns)]][[role green 1.00[br](185ns)]]] +[[StudentsT (PDF)][[role blue 1.61[br](150ns)]][[role blue 1.37[br](127ns)]][[role green 1.00[br](93ns)]]] +[[StudentsT (quantile)][[role blue 1.64[br](641ns)]][[role blue 1.41[br](552ns)]][[role green 1.00[br](391ns)]]] +[[Weibull (CDF)][[role blue 1.36[br](49ns)]][[role blue 1.39[br](50ns)]][[role green 1.00[br](36ns)]]] +[[Weibull (PDF)][[role blue 1.55[br](76ns)]][[role blue 1.57[br](77ns)]][[role green 1.00[br](49ns)]]] +[[Weibull (quantile)][[role blue 1.29[br](49ns)]][[role blue 1.24[br](47ns)]][[role green 1.00[br](38ns)]]] +] +] + +[template table_Distribution_performance_comparison_with_Intel_C_C_0x_mode_version_1500_on_Windows_x64[] +[table:table_Distribution_performance_comparison_with_Intel_C_C_0x_mode_version_1500_on_Windows_x64 Distribution performance comparison with Intel C++ C++0x mode version 1500 on Windows x64 +[[Function][boost 1.59][DCDFLIB]] +[[ArcSine (CDF)][[role green 1.00[br](36ns)]][]] +[[ArcSine (PDF)][[role green 1.00[br](15ns)]][]] +[[ArcSine (quantile)][[role green 1.00[br](26ns)]][]] +[[Beta (CDF)][[role green 1.00[br](154ns)]][[role blue 1.97[br](303ns)]]] +[[Beta (PDF)][[role green 1.00[br](142ns)]][]] +[[Beta (quantile)][[role green 1.00[br](859ns)]][[role red 7.06[br](6065ns)]]] +[[Binomial (CDF)][[role green 1.00[br](619ns)]][[role green 1.06[br](656ns)]]] +[[Binomial (PDF)][[role green 1.00[br](182ns)]][]] +[[Binomial (quantile)][[role green 1.00[br](2819ns)]][[role red 3.59[br](10107ns)]]] +[[Cauchy (CDF)][[role green 1.00[br](23ns)]][]] +[[Cauchy (PDF)][[role green 1.00[br](8ns)]][]] +[[Cauchy (quantile)][[role green 1.00[br](24ns)]][]] +[[ChiSquared (CDF)][[role blue 1.45[br](226ns)]][[role green 1.00[br](156ns)]]] +[[ChiSquared (PDF)][[role green 1.00[br](113ns)]][]] +[[ChiSquared (quantile)][[role green 1.00[br](581ns)]][[role red 6.34[br](3685ns)]]] +[[Exponential (CDF)][[role green 1.00[br](13ns)]][]] +[[Exponential (PDF)][[role green 1.00[br](15ns)]][]] +[[Exponential (quantile)][[role green 1.00[br](19ns)]][]] +[[ExtremeValue (CDF)][[role green 1.00[br](31ns)]][]] +[[ExtremeValue (PDF)][[role green 1.00[br](33ns)]][]] +[[ExtremeValue (quantile)][[role green 1.00[br](34ns)]][]] +[[F (CDF)][[role green 1.06[br](569ns)]][[role green 1.00[br](535ns)]]] +[[F (PDF)][[role green 1.00[br](193ns)]][]] +[[F (quantile)][[role green 1.00[br](1237ns)]][[role red 6.11[br](7560ns)]]] +[[Gamma (CDF)][[role green 1.20[br](201ns)]][[role green 1.00[br](168ns)]]] +[[Gamma (PDF)][[role green 1.00[br](121ns)]][]] +[[Gamma (quantile)][[role blue 1.24[br](657ns)]][[role green 1.00[br](529ns)]]] +[[Geometric (CDF)][[role green 1.00[br](20ns)]][]] +[[Geometric (PDF)][[role green 1.00[br](20ns)]][]] +[[Geometric (quantile)][[role green 1.00[br](20ns)]][]] +[[Hypergeometric (CDF)][[role green 1.00[br](6071ns)]][]] +[[Hypergeometric (PDF)][[role green 1.00[br](5923ns)]][]] +[[Hypergeometric (quantile)][[role green 1.00[br](41736ns)]][]] +[[InverseChiSquared (CDF)][[role green 1.00[br](211ns)]][]] +[[InverseChiSquared (PDF)][[role green 1.00[br](116ns)]][]] +[[InverseChiSquared (quantile)][[role green 1.00[br](603ns)]][]] +[[InverseGamma (CDF)][[role green 1.00[br](193ns)]][]] +[[InverseGamma (PDF)][[role green 1.00[br](125ns)]][]] +[[InverseGamma (quantile)][[role green 1.00[br](654ns)]][]] +[[InverseGaussian (CDF)][[role green 1.00[br](51ns)]][]] +[[InverseGaussian (PDF)][[role green 1.00[br](12ns)]][]] +[[InverseGaussian (quantile)][[role green 1.00[br](809ns)]][]] +[[Laplace (CDF)][[role green 1.00[br](16ns)]][]] +[[Laplace (PDF)][[role green 1.00[br](17ns)]][]] +[[Laplace (quantile)][[role green 1.00[br](18ns)]][]] +[[LogNormal (CDF)][[role green 1.00[br](43ns)]][]] +[[LogNormal (PDF)][[role green 1.00[br](37ns)]][]] +[[LogNormal (quantile)][[role green 1.00[br](69ns)]][]] +[[Logistic (CDF)][[role green 1.00[br](18ns)]][]] +[[Logistic (PDF)][[role green 1.00[br](21ns)]][]] +[[Logistic (quantile)][[role green 1.00[br](22ns)]][]] +[[NegativeBinomial (CDF)][[role blue 1.43[br](1008ns)]][[role green 1.00[br](707ns)]]] +[[NegativeBinomial (PDF)][[role green 1.00[br](191ns)]][]] +[[NegativeBinomial (quantile)][[role green 1.00[br](4938ns)]][[role red 2.66[br](13155ns)]]] +[[NonCentralBeta (CDF)][[role green 1.00[br](1285ns)]][]] +[[NonCentralBeta (PDF)][[role green 1.00[br](1090ns)]][]] +[[NonCentralBeta (quantile)][[role green 1.00[br](25087ns)]][]] +[[NonCentralChiSquared (CDF)][[role red 8.89[br](4008ns)]][[role green 1.00[br](451ns)]]] +[[NonCentralChiSquared (PDF)][[role green 1.00[br](523ns)]][]] +[[NonCentralChiSquared (quantile)][[role red 2.26[br](22959ns)]][[role green 1.00[br](10144ns)]]] +[[NonCentralF (CDF)][[role blue 1.21[br](1251ns)]][[role green 1.00[br](1034ns)]]] +[[NonCentralF (PDF)][[role green 1.00[br](993ns)]][]] +[[NonCentralF (quantile)][[role blue 1.52[br](18236ns)]][[role green 1.00[br](12032ns)]]] +[[NonCentralT (CDF)][[role blue 1.79[br](5488ns)]][[role green 1.00[br](3073ns)]]] +[[NonCentralT (PDF)][[role green 1.00[br](4250ns)]][]] +[[NonCentralT (quantile)][[role green 1.17[br](51198ns)]][[role green 1.00[br](43634ns)]]] +[[Normal (CDF)][[role green 1.00[br](29ns)]][[role red 3.79[br](110ns)]]] +[[Normal (PDF)][[role blue 1.00[br](21ns)]][]] +[[Normal (quantile)][[role green 1.00[br](43ns)]][[role red 7.26[br](312ns)]]] +[[Pareto (CDF)][[role green 1.00[br](43ns)]][]] +[[Pareto (PDF)][[role green 1.00[br](66ns)]][]] +[[Pareto (quantile)][[role green 1.00[br](38ns)]][]] +[[Poisson (CDF)][[role green 1.00[br](101ns)]][[role blue 1.34[br](135ns)]]] +[[Poisson (PDF)][[role green 1.00[br](67ns)]][]] +[[Poisson (quantile)][[role green 1.00[br](476ns)]][[role red 4.40[br](2096ns)]]] +[[Rayleigh (CDF)][[role green 1.00[br](17ns)]][]] +[[Rayleigh (PDF)][[role green 1.00[br](20ns)]][]] +[[Rayleigh (quantile)][[role green 1.00[br](20ns)]][]] +[[SkewNormal (CDF)][[role green 1.00[br](188ns)]][]] +[[SkewNormal (PDF)][[role green 1.00[br](53ns)]][]] +[[SkewNormal (quantile)][[role green 1.00[br](1436ns)]][]] +[[StudentsT (CDF)][[role green 1.19[br](343ns)]][[role green 1.00[br](289ns)]]] +[[StudentsT (PDF)][[role green 1.00[br](150ns)]][]] +[[StudentsT (quantile)][[role green 1.00[br](641ns)]][[role red 3.83[br](2454ns)]]] +[[Weibull (CDF)][[role green 1.00[br](49ns)]][]] +[[Weibull (PDF)][[role green 1.00[br](76ns)]][]] +[[Weibull (quantile)][[role green 1.00[br](49ns)]][]] +] +] + +[template table_Rational_Method_Comparison_with_Intel_C_C_0x_mode_version_1500_on_Windows_x64[] +[table:table_Rational_Method_Comparison_with_Intel_C_C_0x_mode_version_1500_on_Windows_x64 Rational Method Comparison with Intel C++ C++0x mode version 1500 on Windows x64 +[[Function][Method 0[br](Double Coefficients)][Method 0[br](Integer Coefficients)][Method 1[br](Double Coefficients)][Method 1[br](Integer Coefficients)][Method 2[br](Double Coefficients)][Method 2[br](Integer Coefficients)][Method 3[br](Double Coefficients)][Method 3[br](Integer Coefficients)]] +[[Order 2][[role grey -]][[role grey -]][[role blue 1.88[br](81ns)]][[role blue 1.91[br](82ns)]][[role green 1.00[br](43ns)]][[role green 1.00[br](43ns)]][[role green 1.00[br](43ns)]][[role green 1.00[br](43ns)]]] +[[Order 3][[role blue 1.95[br](82ns)]][[role blue 1.98[br](83ns)]][[role blue 1.95[br](82ns)]][[role blue 1.95[br](82ns)]][[role green 1.00[br](42ns)]][[role green 1.07[br](45ns)]][[role green 1.02[br](43ns)]][[role green 1.05[br](44ns)]]] +[[Order 4][[role red 3.95[br](83ns)]][[role red 4.00[br](84ns)]][[role red 4.05[br](85ns)]][[role red 3.90[br](82ns)]][[role green 1.05[br](22ns)]][[role green 1.00[br](21ns)]][[role green 1.00[br](21ns)]][[role green 1.00[br](21ns)]]] +[[Order 5][[role green 1.00[br](83ns)]][[role green 1.07[br](89ns)]][[role green 1.00[br](83ns)]][[role green 1.00[br](83ns)]][[role blue 1.47[br](122ns)]][[role blue 1.48[br](123ns)]][[role blue 1.45[br](120ns)]][[role blue 1.48[br](123ns)]]] +[[Order 6][[role green 1.08[br](92ns)]][[role green 1.18[br](100ns)]][[role green 1.00[br](85ns)]][[role green 1.00[br](85ns)]][[role blue 1.42[br](121ns)]][[role blue 1.44[br](122ns)]][[role blue 1.45[br](123ns)]][[role blue 1.44[br](122ns)]]] +[[Order 7][[role green 1.11[br](99ns)]][[role blue 1.30[br](116ns)]][[role green 1.00[br](89ns)]][[role green 1.01[br](90ns)]][[role blue 1.38[br](123ns)]][[role blue 1.37[br](122ns)]][[role blue 1.40[br](125ns)]][[role blue 1.39[br](124ns)]]] +[[Order 8][[role green 1.17[br](111ns)]][[role blue 1.41[br](134ns)]][[role green 1.00[br](95ns)]][[role green 1.00[br](95ns)]][[role blue 1.37[br](130ns)]][[role blue 1.38[br](131ns)]][[role blue 1.72[br](163ns)]][[role blue 1.78[br](169ns)]]] +[[Order 9][[role blue 1.26[br](131ns)]][[role blue 1.43[br](149ns)]][[role green 1.00[br](104ns)]][[role green 1.00[br](104ns)]][[role blue 1.30[br](135ns)]][[role blue 1.30[br](135ns)]][[role blue 1.64[br](171ns)]][[role blue 1.73[br](180ns)]]] +[[Order 10][[role blue 1.25[br](145ns)]][[role blue 1.44[br](167ns)]][[role green 1.00[br](116ns)]][[role green 1.06[br](123ns)]][[role blue 1.22[br](142ns)]][[role green 1.20[br](139ns)]][[role blue 1.74[br](202ns)]][[role blue 1.80[br](209ns)]]] +[[Order 11][[role blue 1.31[br](171ns)]][[role blue 1.38[br](181ns)]][[role green 1.00[br](131ns)]][[role green 1.01[br](132ns)]][[role green 1.13[br](148ns)]][[role green 1.11[br](146ns)]][[role blue 1.65[br](216ns)]][[role blue 1.71[br](224ns)]]] +[[Order 12][[role blue 1.25[br](183ns)]][[role blue 1.35[br](197ns)]][[role green 1.01[br](148ns)]][[role green 1.00[br](146ns)]][[role green 1.05[br](153ns)]][[role green 1.07[br](156ns)]][[role blue 1.62[br](237ns)]][[role blue 1.61[br](235ns)]]] +[[Order 13][[role blue 1.67[br](200ns)]][[role blue 1.76[br](211ns)]][[role blue 1.34[br](161ns)]][[role blue 1.35[br](162ns)]][[role green 1.00[br](120ns)]][[role green 1.01[br](121ns)]][[role red 2.08[br](250ns)]][[role red 2.13[br](256ns)]]] +[[Order 14][[role blue 1.71[br](215ns)]][[role blue 1.83[br](231ns)]][[role green 1.01[br](127ns)]][[role red 2.64[br](333ns)]][[role green 1.00[br](126ns)]][[role red 2.52[br](317ns)]][[role red 2.27[br](286ns)]][[role red 2.25[br](284ns)]]] +[[Order 15][[role blue 1.78[br](228ns)]][[role blue 1.94[br](248ns)]][[role red 2.70[br](346ns)]][[role red 2.84[br](363ns)]][[role green 1.00[br](128ns)]][[role red 2.58[br](330ns)]][[role red 2.29[br](293ns)]][[role red 2.31[br](296ns)]]] +[[Order 16][[role green 1.00[br](244ns)]][[role green 1.08[br](263ns)]][[role blue 1.46[br](356ns)]][[role blue 1.83[br](447ns)]][[role blue 1.38[br](336ns)]][[role blue 1.47[br](358ns)]][[role blue 1.30[br](316ns)]][[role blue 1.34[br](328ns)]]] +[[Order 17][[role green 1.00[br](256ns)]][[role green 1.13[br](289ns)]][[role blue 1.51[br](386ns)]][[role red 2.11[br](540ns)]][[role blue 1.36[br](349ns)]][[role blue 1.48[br](380ns)]][[role blue 1.31[br](336ns)]][[role blue 1.34[br](343ns)]]] +[[Order 18][[role green 1.00[br](271ns)]][[role green 1.18[br](319ns)]][[role blue 1.56[br](424ns)]][[role red 2.11[br](573ns)]][[role blue 1.38[br](375ns)]][[role blue 1.48[br](401ns)]][[role blue 1.32[br](357ns)]][[role blue 1.37[br](370ns)]]] +[[Order 19][[role green 1.00[br](293ns)]][[role green 1.15[br](337ns)]][[role blue 1.52[br](445ns)]][[role blue 1.97[br](577ns)]][[role blue 1.28[br](375ns)]][[role blue 1.41[br](412ns)]][[role blue 1.30[br](380ns)]][[role blue 1.31[br](383ns)]]] +[[Order 20][[role green 1.00[br](318ns)]][[role green 1.11[br](354ns)]][[role blue 1.48[br](471ns)]][[role blue 1.90[br](604ns)]][[role blue 1.31[br](415ns)]][[role blue 1.38[br](440ns)]][[role blue 1.29[br](411ns)]][[role blue 1.33[br](423ns)]]] +] +] + +[template table_Polynomial_Method_Comparison_with_Intel_C_C_0x_mode_version_1500_on_Windows_x64[] +[table:table_Polynomial_Method_Comparison_with_Intel_C_C_0x_mode_version_1500_on_Windows_x64 Polynomial Method Comparison with Intel C++ C++0x mode version 1500 on Windows x64 +[[Function][Method 0[br](Double Coefficients)][Method 0[br](Integer Coefficients)][Method 1[br](Double Coefficients)][Method 1[br](Integer Coefficients)][Method 2[br](Double Coefficients)][Method 2[br](Integer Coefficients)][Method 3[br](Double Coefficients)][Method 3[br](Integer Coefficients)]] +[[Order 2][[role grey -]][[role grey -]][[role green 1.20[br](6ns)]][[role green 1.00[br](5ns)]][[role green 1.00[br](5ns)]][[role green 1.00[br](5ns)]][[role green 1.20[br](6ns)]][[role green 1.20[br](6ns)]]] +[[Order 3][[role red 3.13[br](25ns)]][[role red 4.00[br](32ns)]][[role green 1.13[br](9ns)]][[role green 1.13[br](9ns)]][[role green 1.13[br](9ns)]][[role green 1.00[br](8ns)]][[role green 1.13[br](9ns)]][[role green 1.13[br](9ns)]]] +[[Order 4][[role red 2.33[br](28ns)]][[role red 3.08[br](37ns)]][[role green 1.00[br](12ns)]][[role green 1.00[br](12ns)]][[role green 1.00[br](12ns)]][[role green 1.00[br](12ns)]][[role green 1.00[br](12ns)]][[role green 1.00[br](12ns)]]] +[[Order 5][[role red 2.33[br](35ns)]][[role red 3.27[br](49ns)]][[role green 1.00[br](15ns)]][[role green 1.00[br](15ns)]][[role green 1.13[br](17ns)]][[role green 1.13[br](17ns)]][[role green 1.13[br](17ns)]][[role green 1.13[br](17ns)]]] +[[Order 6][[role red 2.56[br](41ns)]][[role red 3.50[br](56ns)]][[role green 1.00[br](16ns)]][[role green 1.00[br](16ns)]][[role blue 1.31[br](21ns)]][[role blue 1.38[br](22ns)]][[role blue 1.31[br](21ns)]][[role blue 1.38[br](22ns)]]] +[[Order 7][[role red 2.58[br](49ns)]][[role red 3.89[br](74ns)]][[role green 1.00[br](19ns)]][[role green 1.00[br](19ns)]][[role blue 1.32[br](25ns)]][[role blue 1.32[br](25ns)]][[role blue 1.37[br](26ns)]][[role blue 1.32[br](25ns)]]] +[[Order 8][[role red 2.57[br](59ns)]][[role red 3.43[br](79ns)]][[role green 1.00[br](23ns)]][[role green 1.00[br](23ns)]][[role blue 1.30[br](30ns)]][[role blue 1.30[br](30ns)]][[role blue 1.30[br](30ns)]][[role blue 1.35[br](31ns)]]] +[[Order 9][[role red 2.58[br](67ns)]][[role red 3.81[br](99ns)]][[role green 1.00[br](26ns)]][[role green 1.00[br](26ns)]][[role blue 1.35[br](35ns)]][[role blue 1.27[br](33ns)]][[role blue 1.31[br](34ns)]][[role blue 1.31[br](34ns)]]] +[[Order 10][[role red 2.42[br](80ns)]][[role red 3.33[br](110ns)]][[role green 1.00[br](33ns)]][[role green 1.00[br](33ns)]][[role green 1.18[br](39ns)]][[role blue 1.21[br](40ns)]][[role blue 1.21[br](40ns)]][[role blue 1.21[br](40ns)]]] +[[Order 11][[role red 2.42[br](87ns)]][[role red 3.42[br](123ns)]][[role green 1.00[br](36ns)]][[role green 1.00[br](36ns)]][[role blue 1.25[br](45ns)]][[role blue 1.25[br](45ns)]][[role blue 1.25[br](45ns)]][[role blue 1.25[br](45ns)]]] +[[Order 12][[role red 2.30[br](101ns)]][[role red 3.16[br](139ns)]][[role green 1.00[br](44ns)]][[role green 1.00[br](44ns)]][[role green 1.14[br](50ns)]][[role green 1.11[br](49ns)]][[role green 1.11[br](49ns)]][[role green 1.14[br](50ns)]]] +[[Order 13][[role red 2.61[br](115ns)]][[role red 3.48[br](153ns)]][[role green 1.00[br](44ns)]][[role green 1.02[br](45ns)]][[role green 1.14[br](50ns)]][[role green 1.14[br](50ns)]][[role green 1.16[br](51ns)]][[role green 1.14[br](50ns)]]] +[[Order 14][[role red 3.09[br](136ns)]][[role red 3.77[br](166ns)]][[role green 1.02[br](45ns)]][[role green 1.00[br](44ns)]][[role green 1.14[br](50ns)]][[role green 1.14[br](50ns)]][[role blue 1.20[br](53ns)]][[role green 1.18[br](52ns)]]] +[[Order 15][[role red 3.32[br](146ns)]][[role red 4.23[br](186ns)]][[role green 1.00[br](44ns)]][[role green 1.00[br](44ns)]][[role green 1.11[br](49ns)]][[role green 1.16[br](51ns)]][[role green 1.14[br](50ns)]][[role green 1.14[br](50ns)]]] +[[Order 16][[role red 3.44[br](155ns)]][[role red 4.64[br](209ns)]][[role green 1.00[br](45ns)]][[role green 1.00[br](45ns)]][[role green 1.16[br](52ns)]][[role green 1.18[br](53ns)]][[role green 1.13[br](51ns)]][[role green 1.13[br](51ns)]]] +[[Order 17][[role red 3.98[br](175ns)]][[role red 5.43[br](239ns)]][[role green 1.02[br](45ns)]][[role green 1.00[br](44ns)]][[role green 1.18[br](52ns)]][[role green 1.16[br](51ns)]][[role green 1.11[br](49ns)]][[role green 1.11[br](49ns)]]] +[[Order 18][[role red 4.00[br](188ns)]][[role red 5.38[br](253ns)]][[role green 1.02[br](48ns)]][[role green 1.00[br](47ns)]][[role green 1.11[br](52ns)]][[role green 1.11[br](52ns)]][[role green 1.06[br](50ns)]][[role green 1.06[br](50ns)]]] +[[Order 19][[role red 4.39[br](193ns)]][[role red 6.20[br](273ns)]][[role green 1.00[br](44ns)]][[role green 1.00[br](44ns)]][[role green 1.16[br](51ns)]][[role green 1.18[br](52ns)]][[role green 1.14[br](50ns)]][[role green 1.16[br](51ns)]]] +[[Order 20][[role red 4.75[br](209ns)]][[role red 6.41[br](282ns)]][[role green 1.02[br](45ns)]][[role green 1.00[br](44ns)]][[role green 1.18[br](52ns)]][[role green 1.18[br](52ns)]][[role green 1.14[br](50ns)]][[role green 1.14[br](50ns)]]] +] +] + +[template table_Library_Comparison_with_Intel_C_C_0x_mode_version_1500_on_Windows_x64[] +[table:table_Library_Comparison_with_Intel_C_C_0x_mode_version_1500_on_Windows_x64 Library Comparison with Intel C++ C++0x mode version 1500 on Windows x64 +[[Function][boost 1.59][math.h]] +[[assoc_laguerre[br](2240/2240 tests selected)][[role green 1.00[br](183ns)]][[role grey -]]] +[[assoc_legendre[br](400/400 tests selected)][[role green 1.00[br](96ns)]][[role grey -]]] +[[beta (incomplete)[br](3210/3210 tests selected)][[role green 1.00[br](371ns)]][[role grey -]]] +[[beta[br](2202/2202 tests selected)][[role green 1.00[br](116ns)]][[role grey -]]] +[[cbrt[br](85/85 tests selected)][[role blue 1.67[br](15ns)]][[role green 1.00[br](9ns)]]] +[[cyl_bessel_i (integer order)[br](526/526 tests selected)][[role green 1.00[br](203ns)]][[role grey -]]] +[[cyl_bessel_i[br](240/240 tests selected)][[role green 1.00[br](355ns)]][[role grey -]]] +[[cyl_bessel_j (integer order)[br](268/268 tests selected)][[role green 1.00[br](74ns)]][[role green 1.15[br](85ns)]]] +[[cyl_bessel_j[br](451/451 tests selected)][[role green 1.00[br](414ns)]][[role grey -]]] +[[cyl_bessel_k (integer order)[br](507/508 tests selected)][[role green 1.00[br](346ns)]][[role grey -]]] +[[cyl_bessel_k[br](279/279 tests selected)][[role green 1.00[br](664ns)]][[role grey -]]] +[[cyl_neumann (integer order)[br](428/428 tests selected)][[role blue 1.22[br](262ns)]][[role green 1.00[br](215ns)]]] +[[cyl_neumann[br](450/450 tests selected)][[role green 1.00[br](10382ns)]][[role grey -]]] +[[digamma[br](1019/1019 tests selected)][[role green 1.00[br](21ns)]][[role grey -]]] +[[ellint_1 (complete)[br](109/109 tests selected)][[role green 1.00[br](28ns)]][[role grey -]]] +[[ellint_1[br](629/629 tests selected)][[role green 1.00[br](169ns)]][[role grey -]]] +[[ellint_2 (complete)[br](110/110 tests selected)][[role green 1.00[br](31ns)]][[role grey -]]] +[[ellint_2[br](530/530 tests selected)][[role green 1.00[br](293ns)]][[role grey -]]] +[[ellint_3 (complete)[br](500/500 tests selected)][[role green 1.00[br](352ns)]][[role grey -]]] +[[ellint_3[br](845/845 tests selected)][[role green 1.00[br](598ns)]][[role grey -]]] +[[ellint_rc[br](201/201 tests selected)][[role green 1.00[br](33ns)]][[role grey -]]] +[[ellint_rd[br](7588/7588 tests selected)][[role green 1.00[br](193ns)]][[role grey -]]] +[[ellint_rf[br](7788/7788 tests selected)][[role green 1.00[br](44ns)]][[role grey -]]] +[[ellint_rj[br](8032/8032 tests selected)][[role green 1.00[br](183ns)]][[role grey -]]] +[[erf[br](950/950 tests selected)][[role green 1.00[br](11ns)]][[role red 2.55[br](28ns)]]] +[[erfc[br](950/950 tests selected)][[role green 1.00[br](17ns)]][[role red 6.71[br](114ns)]]] +[[expint (En)[br](1059/1059 tests selected)][[role green 1.00[br](109ns)]][[role grey -]]] +[[expint[br](436/436 tests selected)][[role green 1.00[br](26ns)]][[role grey -]]] +[[expm1[br](80/80 tests selected)][[role green 1.00[br](8ns)]][[role blue 1.25[br](10ns)]]] +[[gamma_p[br](1379/1379 tests selected)][[role green 1.00[br](152ns)]][[role grey -]]] +[[gamma_p_inv[br](559/559 tests selected)][[role green 1.00[br](516ns)]][[role grey -]]] +[[gamma_q[br](1379/1379 tests selected)][[role green 1.00[br](150ns)]][[role grey -]]] +[[gamma_q_inv[br](559/559 tests selected)][[role green 1.00[br](525ns)]][[role grey -]]] +[[ibeta[br](3210/3210 tests selected)][[role green 1.00[br](402ns)]][[role grey -]]] +[[ibeta_inv[br](1210/1210 tests selected)][[role green 1.00[br](1491ns)]][[role grey -]]] +[[ibetac[br](3210/3210 tests selected)][[role green 1.00[br](416ns)]][[role grey -]]] +[[ibetac_inv[br](1210/1210 tests selected)][[role green 1.00[br](1504ns)]][[role grey -]]] +[[jacobi_cn[br](2757/2757 tests selected)][[role green 1.00[br](154ns)]][[role grey -]]] +[[jacobi_dn[br](2757/2757 tests selected)][[role green 1.00[br](160ns)]][[role grey -]]] +[[jacobi_sn[br](2757/2757 tests selected)][[role green 1.00[br](149ns)]][[role grey -]]] +[[laguerre[br](280/280 tests selected)][[role green 1.00[br](119ns)]][[role grey -]]] +[[legendre Q[br](300/300 tests selected)][[role green 1.00[br](461ns)]][[role grey -]]] +[[legendre[br](300/300 tests selected)][[role green 1.00[br](388ns)]][[role grey -]]] +[[lgamma[br](400/400 tests selected)][[role blue 1.37[br](67ns)]][[role green 1.00[br](49ns)]]] +[[log1p[br](80/80 tests selected)][[role green 1.00[br](10ns)]][[role green 1.20[br](12ns)]]] +[[polygamma[br](1535/1535 tests selected)][[role green 1.00[br](3330ns)]][[role grey -]]] +[[sph_bessel[br](483/483 tests selected)][[role green 1.00[br](842ns)]][[role grey -]]] +[[sph_neumann[br](284/284 tests selected)][[role green 1.00[br](1589ns)]][[role grey -]]] +[[tgamma (incomplete)[br](1288/1379 tests selected)][[role green 1.00[br](220ns)]][[role grey -]]] +[[tgamma[br](400/400 tests selected)][[role green 1.00[br](63ns)]][[role green 1.00[br](63ns)]]] +[[trigamma[br](659/659 tests selected)][[role green 1.00[br](16ns)]][[role grey -]]] +[[zeta[br](448/448 tests selected)][[role green 1.00[br](87ns)]][[role grey -]]] +] +] + +[template table_Compiler_Option_Comparison_on_Windows_x64[] +[table:table_Compiler_Option_Comparison_on_Windows_x64 Compiler Option Comparison on Windows x64 +[[Function][cl /Od (x86 build)][cl /arch:sse2 /Ox (x86 build)][cl /Ox (x64 build)][icl /Ox (x64 build)]] +[[boost::math::cbrt][[role red 18.00[br](270ns)]][[role red 4.27[br](64ns)]][[role red 3.07[br](46ns)]][[role green 1.00[br](15ns)]]] +[[boost::math::cyl_bessel_j (integer orders)][[role red 9.58[br](728ns)]][[role blue 1.53[br](116ns)]][[role blue 1.36[br](103ns)]][[role green 1.00[br](76ns)]]] +[[boost::math::ibeta_inv][[role red 4.09[br](6180ns)]][[role blue 1.30[br](1956ns)]][[role blue 1.26[br](1908ns)]][[role green 1.00[br](1510ns)]]] +] +] + +[template table_Rational_Method_Comparison_with_Microsoft_Visual_C_version_14_0_on_Windows_x64[] +[table:table_Rational_Method_Comparison_with_Microsoft_Visual_C_version_14_0_on_Windows_x64 Rational Method Comparison with Microsoft Visual C++ version 14.0 on Windows x64 +[[Function][Method 0[br](Double Coefficients)][Method 0[br](Integer Coefficients)][Method 1[br](Double Coefficients)][Method 1[br](Integer Coefficients)][Method 2[br](Double Coefficients)][Method 2[br](Integer Coefficients)][Method 3[br](Double Coefficients)][Method 3[br](Integer Coefficients)]] +[[Order 2][[role grey -]][[role grey -]][[role blue 1.93[br](81ns)]][[role blue 1.93[br](81ns)]][[role green 1.00[br](42ns)]][[role green 1.00[br](42ns)]][[role green 1.02[br](43ns)]][[role green 1.00[br](42ns)]]] +[[Order 3][[role blue 1.98[br](83ns)]][[role blue 2.00[br](84ns)]][[role blue 2.00[br](84ns)]][[role blue 2.00[br](84ns)]][[role green 1.00[br](42ns)]][[role green 1.00[br](42ns)]][[role green 1.00[br](42ns)]][[role green 1.02[br](43ns)]]] +[[Order 4][[role blue 1.95[br](82ns)]][[role red 2.07[br](87ns)]][[role blue 1.98[br](83ns)]][[role blue 1.95[br](82ns)]][[role green 1.02[br](43ns)]][[role green 1.02[br](43ns)]][[role green 1.00[br](42ns)]][[role green 1.02[br](43ns)]]] +[[Order 5][[role green 1.07[br](89ns)]][[role green 1.07[br](89ns)]][[role green 1.00[br](83ns)]][[role green 1.00[br](83ns)]][[role blue 1.45[br](120ns)]][[role blue 1.47[br](122ns)]][[role blue 1.47[br](122ns)]][[role blue 1.47[br](122ns)]]] +[[Order 6][[role green 1.08[br](92ns)]][[role blue 1.21[br](103ns)]][[role green 1.01[br](86ns)]][[role green 1.00[br](85ns)]][[role blue 1.48[br](126ns)]][[role blue 1.48[br](126ns)]][[role blue 1.46[br](124ns)]][[role blue 1.48[br](126ns)]]] +[[Order 7][[role green 1.06[br](95ns)]][[role blue 1.34[br](121ns)]][[role green 1.00[br](90ns)]][[role green 1.00[br](90ns)]][[role blue 1.41[br](127ns)]][[role blue 1.40[br](126ns)]][[role blue 1.44[br](130ns)]][[role blue 1.41[br](127ns)]]] +[[Order 8][[role green 1.11[br](109ns)]][[role blue 1.44[br](141ns)]][[role green 1.00[br](98ns)]][[role green 1.01[br](99ns)]][[role blue 1.32[br](129ns)]][[role blue 1.32[br](129ns)]][[role blue 1.44[br](141ns)]][[role blue 1.46[br](143ns)]]] +[[Order 9][[role green 1.08[br](126ns)]][[role blue 1.33[br](156ns)]][[role green 1.00[br](117ns)]][[role green 1.02[br](119ns)]][[role green 1.13[br](132ns)]][[role green 1.11[br](130ns)]][[role blue 1.28[br](150ns)]][[role blue 1.30[br](152ns)]]] +[[Order 10][[role green 1.08[br](144ns)]][[role blue 1.26[br](168ns)]][[role green 1.00[br](133ns)]][[role green 1.02[br](135ns)]][[role green 1.09[br](145ns)]][[role green 1.09[br](145ns)]][[role blue 1.24[br](165ns)]][[role blue 1.25[br](166ns)]]] +[[Order 11][[role green 1.12[br](162ns)]][[role blue 1.26[br](183ns)]][[role green 1.07[br](155ns)]][[role green 1.01[br](146ns)]][[role green 1.01[br](147ns)]][[role green 1.00[br](145ns)]][[role blue 1.21[br](175ns)]][[role blue 1.49[br](216ns)]]] +[[Order 12][[role green 1.15[br](182ns)]][[role blue 1.25[br](197ns)]][[role green 1.05[br](166ns)]][[role green 1.04[br](165ns)]][[role green 1.00[br](158ns)]][[role green 1.01[br](159ns)]][[role blue 1.26[br](199ns)]][[role blue 1.53[br](241ns)]]] +[[Order 13][[role blue 1.22[br](208ns)]][[role blue 1.26[br](214ns)]][[role green 1.09[br](185ns)]][[role green 1.08[br](184ns)]][[role green 1.00[br](170ns)]][[role green 1.00[br](170ns)]][[role blue 1.24[br](211ns)]][[role blue 1.56[br](266ns)]]] +[[Order 14][[role blue 1.22[br](221ns)]][[role blue 1.36[br](246ns)]][[role green 1.15[br](209ns)]][[role green 1.16[br](210ns)]][[role green 1.01[br](182ns)]][[role green 1.00[br](181ns)]][[role blue 1.45[br](263ns)]][[role blue 1.59[br](288ns)]]] +[[Order 15][[role green 1.19[br](235ns)]][[role blue 1.39[br](275ns)]][[role green 1.13[br](224ns)]][[role green 1.15[br](228ns)]][[role green 1.00[br](198ns)]][[role green 1.00[br](198ns)]][[role blue 1.42[br](281ns)]][[role blue 1.54[br](304ns)]]] +[[Order 16][[role green 1.16[br](244ns)]][[role blue 1.38[br](289ns)]][[role green 1.13[br](238ns)]][[role green 1.14[br](240ns)]][[role green 1.00[br](210ns)]][[role blue 1.20[br](253ns)]][[role blue 1.45[br](305ns)]][[role blue 1.55[br](326ns)]]] +[[Order 17][[role green 1.19[br](260ns)]][[role blue 1.42[br](311ns)]][[role green 1.15[br](252ns)]][[role blue 1.30[br](285ns)]][[role green 1.00[br](219ns)]][[role blue 1.21[br](265ns)]][[role blue 1.49[br](326ns)]][[role blue 1.54[br](337ns)]]] +[[Order 18][[role green 1.18[br](275ns)]][[role blue 1.42[br](332ns)]][[role green 1.12[br](260ns)]][[role blue 1.33[br](309ns)]][[role green 1.00[br](233ns)]][[role blue 1.24[br](288ns)]][[role blue 1.49[br](347ns)]][[role blue 1.58[br](367ns)]]] +[[Order 19][[role green 1.16[br](293ns)]][[role blue 1.37[br](346ns)]][[role green 1.11[br](279ns)]][[role blue 1.72[br](434ns)]][[role green 1.00[br](252ns)]][[role blue 1.27[br](320ns)]][[role blue 1.49[br](376ns)]][[role blue 1.52[br](382ns)]]] +[[Order 20][[role green 1.17[br](308ns)]][[role blue 1.37[br](361ns)]][[role green 1.13[br](298ns)]][[role blue 1.32[br](347ns)]][[role green 1.00[br](263ns)]][[role blue 1.22[br](321ns)]][[role blue 1.54[br](406ns)]][[role blue 1.56[br](409ns)]]] +] +] + +[template table_Polynomial_Method_Comparison_with_Microsoft_Visual_C_version_14_0_on_Windows_x64[] +[table:table_Polynomial_Method_Comparison_with_Microsoft_Visual_C_version_14_0_on_Windows_x64 Polynomial Method Comparison with Microsoft Visual C++ version 14.0 on Windows x64 [[Function][Method 0[br](Double Coefficients)][Method 0[br](Integer Coefficients)][Method 1[br](Double Coefficients)][Method 1[br](Integer Coefficients)][Method 2[br](Double Coefficients)][Method 2[br](Integer Coefficients)][Method 3[br](Double Coefficients)][Method 3[br](Integer Coefficients)]] [[Order 2][[role grey -]][[role grey -]][[role green 1.00[br](9ns)]][[role green 1.00[br](9ns)]][[role green 1.00[br](9ns)]][[role green 1.00[br](9ns)]][[role green 1.00[br](9ns)]][[role green 1.00[br](9ns)]]] -[[Order 3][[role blue 2.00[br](24ns)]][[role red 3.08[br](37ns)]][[role green 1.00[br](12ns)]][[role green 1.00[br](12ns)]][[role green 1.00[br](12ns)]][[role green 1.00[br](12ns)]][[role green 1.00[br](12ns)]][[role green 1.00[br](12ns)]]] -[[Order 4][[role red 2.20[br](33ns)]][[role red 3.33[br](50ns)]][[role green 1.00[br](15ns)]][[role green 1.00[br](15ns)]][[role green 1.00[br](15ns)]][[role green 1.00[br](15ns)]][[role green 1.00[br](15ns)]][[role green 1.00[br](15ns)]]] -[[Order 5][[role blue 1.74[br](33ns)]][[role red 2.95[br](56ns)]][[role green 1.00[br](19ns)]][[role green 1.00[br](19ns)]][[role green 1.16[br](22ns)]][[role blue 1.21[br](23ns)]][[role green 1.11[br](21ns)]][[role green 1.16[br](22ns)]]] -[[Order 6][[role blue 1.83[br](42ns)]][[role red 2.87[br](66ns)]][[role green 1.00[br](23ns)]][[role green 1.00[br](23ns)]][[role green 1.17[br](27ns)]][[role green 1.17[br](27ns)]][[role blue 1.30[br](30ns)]][[role blue 1.30[br](30ns)]]] -[[Order 7][[role blue 1.67[br](50ns)]][[role red 2.53[br](76ns)]][[role green 1.03[br](31ns)]][[role green 1.03[br](31ns)]][[role green 1.03[br](31ns)]][[role green 1.00[br](30ns)]][[role green 1.17[br](35ns)]][[role green 1.17[br](35ns)]]] -[[Order 8][[role blue 1.57[br](55ns)]][[role red 2.54[br](89ns)]][[role green 1.09[br](38ns)]][[role green 1.09[br](38ns)]][[role green 1.06[br](37ns)]][[role green 1.00[br](35ns)]][[role green 1.17[br](41ns)]][[role green 1.17[br](41ns)]]] -[[Order 9][[role blue 1.49[br](58ns)]][[role red 2.56[br](100ns)]][[role green 1.15[br](45ns)]][[role green 1.15[br](45ns)]][[role green 1.03[br](40ns)]][[role green 1.00[br](39ns)]][[role green 1.18[br](46ns)]][[role green 1.18[br](46ns)]]] -[[Order 10][[role blue 1.50[br](66ns)]][[role red 2.61[br](115ns)]][[role blue 1.20[br](53ns)]][[role blue 1.20[br](53ns)]][[role green 1.02[br](45ns)]][[role green 1.00[br](44ns)]][[role green 1.18[br](52ns)]][[role blue 1.23[br](54ns)]]] -[[Order 11][[role blue 1.55[br](76ns)]][[role red 2.63[br](129ns)]][[role blue 1.27[br](62ns)]][[role blue 1.29[br](63ns)]][[role green 1.00[br](49ns)]][[role green 1.02[br](50ns)]][[role blue 1.20[br](59ns)]][[role blue 1.22[br](60ns)]]] -[[Order 12][[role blue 1.60[br](88ns)]][[role red 2.64[br](145ns)]][[role blue 1.27[br](70ns)]][[role blue 1.27[br](70ns)]][[role green 1.00[br](55ns)]][[role green 1.00[br](55ns)]][[role green 1.16[br](64ns)]][[role green 1.16[br](64ns)]]] -[[Order 13][[role blue 1.74[br](94ns)]][[role red 2.87[br](155ns)]][[role blue 1.39[br](75ns)]][[role blue 1.39[br](75ns)]][[role green 1.02[br](55ns)]][[role green 1.00[br](54ns)]][[role green 1.19[br](64ns)]][[role blue 1.20[br](65ns)]]] -[[Order 14][[role blue 1.68[br](104ns)]][[role red 2.73[br](169ns)]][[role blue 1.48[br](92ns)]][[role blue 1.47[br](91ns)]][[role green 1.00[br](62ns)]][[role green 1.02[br](63ns)]][[role blue 1.24[br](77ns)]][[role blue 1.23[br](76ns)]]] -[[Order 15][[role blue 1.68[br](119ns)]][[role red 2.72[br](193ns)]][[role blue 1.44[br](102ns)]][[role blue 1.41[br](100ns)]][[role green 1.00[br](71ns)]][[role green 1.01[br](72ns)]][[role blue 1.24[br](88ns)]][[role blue 1.25[br](89ns)]]] -[[Order 16][[role blue 1.63[br](130ns)]][[role red 2.76[br](221ns)]][[role blue 1.38[br](110ns)]][[role blue 1.36[br](109ns)]][[role green 1.00[br](80ns)]][[role green 1.02[br](82ns)]][[role green 1.20[br](96ns)]][[role green 1.20[br](96ns)]]] -[[Order 17][[role blue 1.61[br](137ns)]][[role red 2.73[br](232ns)]][[role blue 1.47[br](125ns)]][[role blue 1.47[br](125ns)]][[role green 1.00[br](85ns)]][[role green 1.00[br](85ns)]][[role green 1.20[br](102ns)]][[role blue 1.24[br](105ns)]]] -[[Order 18][[role blue 1.66[br](153ns)]][[role red 2.76[br](254ns)]][[role blue 1.47[br](135ns)]][[role blue 1.48[br](136ns)]][[role green 1.00[br](92ns)]][[role green 1.03[br](95ns)]][[role blue 1.40[br](129ns)]][[role blue 1.22[br](112ns)]]] -[[Order 19][[role blue 1.64[br](161ns)]][[role red 2.72[br](267ns)]][[role blue 1.52[br](149ns)]][[role blue 1.52[br](149ns)]][[role green 1.00[br](98ns)]][[role green 1.02[br](100ns)]][[role green 1.19[br](117ns)]][[role blue 1.22[br](120ns)]]] -[[Order 20][[role blue 1.64[br](177ns)]][[role red 2.61[br](282ns)]][[role blue 1.49[br](161ns)]][[role blue 1.48[br](160ns)]][[role green 1.01[br](109ns)]][[role green 1.00[br](108ns)]][[role green 1.17[br](126ns)]][[role green 1.18[br](127ns)]]] +[[Order 3][[role red 2.25[br](27ns)]][[role red 2.67[br](32ns)]][[role blue 1.25[br](15ns)]][[role green 1.08[br](13ns)]][[role green 1.00[br](12ns)]][[role green 1.00[br](12ns)]][[role green 1.08[br](13ns)]][[role green 1.00[br](12ns)]]] +[[Order 4][[role red 2.19[br](35ns)]][[role red 2.88[br](46ns)]][[role green 1.00[br](16ns)]][[role green 1.00[br](16ns)]][[role green 1.00[br](16ns)]][[role green 1.00[br](16ns)]][[role green 1.00[br](16ns)]][[role green 1.00[br](16ns)]]] +[[Order 5][[role blue 1.40[br](28ns)]][[role red 2.05[br](41ns)]][[role green 1.10[br](22ns)]][[role green 1.00[br](20ns)]][[role green 1.05[br](21ns)]][[role green 1.05[br](21ns)]][[role green 1.05[br](21ns)]][[role green 1.05[br](21ns)]]] +[[Order 6][[role blue 1.36[br](34ns)]][[role blue 2.00[br](50ns)]][[role green 1.04[br](26ns)]][[role green 1.00[br](25ns)]][[role green 1.04[br](26ns)]][[role green 1.04[br](26ns)]][[role blue 1.36[br](34ns)]][[role blue 1.36[br](34ns)]]] +[[Order 7][[role blue 1.38[br](40ns)]][[role red 2.21[br](64ns)]][[role green 1.10[br](32ns)]][[role green 1.07[br](31ns)]][[role green 1.03[br](30ns)]][[role green 1.00[br](29ns)]][[role green 1.10[br](32ns)]][[role green 1.14[br](33ns)]]] +[[Order 8][[role blue 1.37[br](48ns)]][[role red 2.06[br](72ns)]][[role green 1.09[br](38ns)]][[role green 1.09[br](38ns)]][[role green 1.00[br](35ns)]][[role green 1.00[br](35ns)]][[role green 1.09[br](38ns)]][[role green 1.09[br](38ns)]]] +[[Order 9][[role blue 1.42[br](54ns)]][[role red 2.13[br](81ns)]][[role green 1.18[br](45ns)]][[role blue 1.24[br](47ns)]][[role green 1.03[br](39ns)]][[role green 1.00[br](38ns)]][[role green 1.13[br](43ns)]][[role green 1.13[br](43ns)]]] +[[Order 10][[role blue 1.43[br](63ns)]][[role red 2.14[br](94ns)]][[role green 1.18[br](52ns)]][[role blue 1.20[br](53ns)]][[role green 1.00[br](44ns)]][[role green 1.02[br](45ns)]][[role green 1.09[br](48ns)]][[role green 1.11[br](49ns)]]] +[[Order 11][[role blue 1.47[br](72ns)]][[role red 2.27[br](111ns)]][[role blue 1.24[br](61ns)]][[role blue 1.27[br](62ns)]][[role green 1.00[br](49ns)]][[role green 1.00[br](49ns)]][[role green 1.14[br](56ns)]][[role green 1.16[br](57ns)]]] +[[Order 12][[role blue 1.46[br](83ns)]][[role red 2.16[br](123ns)]][[role blue 1.23[br](70ns)]][[role blue 1.32[br](75ns)]][[role green 1.00[br](57ns)]][[role green 1.05[br](60ns)]][[role green 1.12[br](64ns)]][[role green 1.07[br](61ns)]]] +[[Order 13][[role blue 1.64[br](95ns)]][[role red 2.38[br](138ns)]][[role blue 1.29[br](75ns)]][[role blue 1.29[br](75ns)]][[role green 1.07[br](62ns)]][[role green 1.00[br](58ns)]][[role green 1.03[br](60ns)]][[role green 1.05[br](61ns)]]] +[[Order 14][[role blue 1.61[br](100ns)]][[role red 2.35[br](146ns)]][[role blue 1.44[br](89ns)]][[role blue 1.48[br](92ns)]][[role green 1.02[br](63ns)]][[role green 1.00[br](62ns)]][[role green 1.08[br](67ns)]][[role green 1.11[br](69ns)]]] +[[Order 15][[role blue 1.47[br](110ns)]][[role red 2.11[br](158ns)]][[role blue 1.32[br](99ns)]][[role blue 1.33[br](100ns)]][[role green 1.04[br](78ns)]][[role green 1.00[br](75ns)]][[role green 1.09[br](82ns)]][[role green 1.04[br](78ns)]]] +[[Order 16][[role blue 1.44[br](122ns)]][[role red 2.01[br](171ns)]][[role blue 1.38[br](117ns)]][[role blue 1.31[br](111ns)]][[role green 1.04[br](88ns)]][[role green 1.00[br](85ns)]][[role green 1.02[br](87ns)]][[role green 1.02[br](87ns)]]] +[[Order 17][[role blue 1.52[br](135ns)]][[role blue 2.00[br](178ns)]][[role blue 1.46[br](130ns)]][[role blue 1.48[br](132ns)]][[role green 1.00[br](89ns)]][[role green 1.00[br](89ns)]][[role green 1.02[br](91ns)]][[role green 1.04[br](93ns)]]] +[[Order 18][[role blue 1.47[br](148ns)]][[role blue 1.94[br](196ns)]][[role blue 1.46[br](147ns)]][[role blue 1.41[br](142ns)]][[role green 1.03[br](104ns)]][[role green 1.07[br](108ns)]][[role green 1.00[br](101ns)]][[role green 1.01[br](102ns)]]] +[[Order 19][[role blue 1.62[br](172ns)]][[role red 2.22[br](235ns)]][[role blue 1.49[br](158ns)]][[role blue 1.47[br](156ns)]][[role green 1.07[br](113ns)]][[role green 1.00[br](106ns)]][[role green 1.02[br](108ns)]][[role green 1.08[br](115ns)]]] +[[Order 20][[role blue 1.53[br](177ns)]][[role red 2.14[br](248ns)]][[role blue 1.45[br](168ns)]][[role blue 1.44[br](167ns)]][[role green 1.00[br](116ns)]][[role green 1.03[br](120ns)]][[role green 1.04[br](121ns)]][[role green 1.01[br](117ns)]]] ] ] - - -[template table_Distribution_performance_comparison_with_for_different_performance_options_with_GNU_C_version_5_1_0_on_linux[] -[table:table_Distribution_performance_comparison_with_for_different_performance_options_with_GNU_C_version_5_1_0_on_linux Distribution performance comparison with for different performance options with GNU C++ version 5.1.0 on linux -[[Function][boost 1.59][Boost[br]promote_double][Boost[br]promote_double[br]digits10<10>][Boost[br]float[br]promote_float]] -[[ArcSine (CDF)][[role blue 1.94[br](33ns)]][[role blue 1.88[br](32ns)]][[role blue 1.88[br](32ns)]][[role green 1.00[br](17ns)]]] -[[ArcSine (PDF)][[role green 1.14[br](8ns)]][[role green 1.14[br](8ns)]][[role green 1.14[br](8ns)]][[role green 1.00[br](7ns)]]] -[[ArcSine (quantile)][[role blue 1.33[br](20ns)]][[role blue 1.33[br](20ns)]][[role blue 1.40[br](21ns)]][[role green 1.00[br](15ns)]]] -[[Beta (CDF)][[role red 3.39[br](424ns)]][[role blue 1.36[br](170ns)]][[role blue 1.26[br](158ns)]][[role green 1.00[br](125ns)]]] -[[Beta (PDF)][[role red 2.87[br](321ns)]][[role green 1.09[br](122ns)]][[role green 1.11[br](124ns)]][[role green 1.00[br](112ns)]]] -[[Beta (quantile)][[role red 3.70[br](2631ns)]][[role blue 1.54[br](1095ns)]][[role blue 1.23[br](876ns)]][[role green 1.00[br](711ns)]]] -[[Binomial (CDF)][[role red 4.23[br](1050ns)]][[role red 2.43[br](603ns)]][[role red 2.03[br](504ns)]][[role green 1.00[br](248ns)]]] -[[Binomial (PDF)][[role red 2.45[br](346ns)]][[role green 1.09[br](153ns)]][[role green 1.13[br](159ns)]][[role green 1.00[br](141ns)]]] -[[Binomial (quantile)][[role red 3.70[br](4776ns)]][[role red 2.21[br](2850ns)]][[role blue 1.92[br](2480ns)]][[role green 1.00[br](1291ns)]]] -[[Cauchy (CDF)][[role green 1.14[br](25ns)]][[role green 1.18[br](26ns)]][[role green 1.18[br](26ns)]][[role green 1.00[br](22ns)]]] -[[Cauchy (PDF)][[role green 1.00[br](7ns)]][[role green 1.14[br](8ns)]][[role green 1.14[br](8ns)]][[role green 1.00[br](7ns)]]] -[[Cauchy (quantile)][[role blue 1.43[br](43ns)]][[role blue 1.43[br](43ns)]][[role blue 1.43[br](43ns)]][[role green 1.00[br](30ns)]]] -[[ChiSquared (CDF)][[role red 3.91[br](520ns)]][[role blue 1.80[br](240ns)]][[role blue 1.47[br](196ns)]][[role green 1.00[br](133ns)]]] -[[ChiSquared (PDF)][[role red 3.72[br](335ns)]][[role blue 1.40[br](126ns)]][[role blue 1.30[br](117ns)]][[role green 1.00[br](90ns)]]] -[[ChiSquared (quantile)][[role red 3.72[br](1321ns)]][[role blue 1.94[br](690ns)]][[role blue 1.46[br](520ns)]][[role green 1.00[br](355ns)]]] -[[Exponential (CDF)][[role green 1.20[br](18ns)]][[role green 1.20[br](18ns)]][[role blue 1.33[br](20ns)]][[role green 1.00[br](15ns)]]] -[[Exponential (PDF)][[role blue 1.39[br](25ns)]][[role blue 1.33[br](24ns)]][[role blue 1.44[br](26ns)]][[role green 1.00[br](18ns)]]] -[[Exponential (quantile)][[role green 1.04[br](24ns)]][[role green 1.00[br](23ns)]][[role green 1.09[br](25ns)]][[role green 1.04[br](24ns)]]] -[[ExtremeValue (CDF)][[role blue 1.41[br](52ns)]][[role blue 1.38[br](51ns)]][[role blue 1.30[br](48ns)]][[role green 1.00[br](37ns)]]] -[[ExtremeValue (PDF)][[role blue 1.57[br](72ns)]][[role blue 1.54[br](71ns)]][[role blue 1.46[br](67ns)]][[role green 1.00[br](46ns)]]] -[[ExtremeValue (quantile)][[role blue 1.73[br](69ns)]][[role blue 1.57[br](63ns)]][[role blue 1.57[br](63ns)]][[role green 1.00[br](40ns)]]] -[[F (CDF)][[role red 4.36[br](968ns)]][[role red 2.51[br](557ns)]][[role blue 1.95[br](433ns)]][[role green 1.00[br](222ns)]]] -[[F (PDF)][[role red 2.86[br](378ns)]][[role green 1.18[br](156ns)]][[role green 1.17[br](155ns)]][[role green 1.00[br](132ns)]]] -[[F (quantile)][[role red 2.85[br](2777ns)]][[role blue 1.56[br](1518ns)]][[role blue 1.34[br](1310ns)]][[role green 1.00[br](976ns)]]] -[[Gamma (CDF)][[role red 3.70[br](581ns)]][[role blue 1.54[br](242ns)]][[role blue 1.30[br](204ns)]][[role green 1.00[br](157ns)]]] -[[Gamma (PDF)][[role red 4.13[br](463ns)]][[role blue 1.43[br](160ns)]][[role blue 1.32[br](148ns)]][[role green 1.00[br](112ns)]]] -[[Gamma (quantile)][[role red 4.00[br](1822ns)]][[role blue 1.79[br](815ns)]][[role green 1.19[br](540ns)]][[role green 1.00[br](455ns)]]] -[[Geometric (CDF)][[role green 1.05[br](23ns)]][[role green 1.00[br](22ns)]][[role green 1.05[br](23ns)]][[role green 1.00[br](22ns)]]] -[[Geometric (PDF)][[role green 1.03[br](33ns)]][[role green 1.00[br](32ns)]][[role green 1.00[br](32ns)]][[role green 1.19[br](38ns)]]] -[[Geometric (quantile)][[role green 1.00[br](21ns)]][[role green 1.00[br](21ns)]][[role green 1.00[br](21ns)]][[role green 1.05[br](22ns)]]] -[[Hypergeometric (CDF)][[role blue 1.90[br](11280ns)]][[role green 1.00[br](5948ns)]][[role green 1.01[br](6014ns)]][[role green 1.02[br](6063ns)]]] -[[Hypergeometric (PDF)][[role blue 1.92[br](10991ns)]][[role green 1.02[br](5845ns)]][[role green 1.00[br](5732ns)]][[role green 1.07[br](6124ns)]]] -[[Hypergeometric (quantile)][[role green 1.00[br](51466ns)]][[role blue 1.64[br](84257ns)]][[role blue 1.67[br](85870ns)]][[role red 2.05[br](105759ns)]]] -[[InverseChiSquared (CDF)][[role red 4.61[br](530ns)]][[role red 2.01[br](231ns)]][[role blue 1.54[br](177ns)]][[role green 1.00[br](115ns)]]] -[[InverseChiSquared (PDF)][[role red 3.49[br](328ns)]][[role blue 1.45[br](136ns)]][[role blue 1.36[br](128ns)]][[role green 1.00[br](94ns)]]] -[[InverseChiSquared (quantile)][[role red 3.54[br](1313ns)]][[role blue 1.88[br](697ns)]][[role blue 1.42[br](526ns)]][[role green 1.00[br](371ns)]]] -[[InverseGamma (CDF)][[role red 3.51[br](621ns)]][[role blue 1.34[br](237ns)]][[role green 1.15[br](204ns)]][[role green 1.00[br](177ns)]]] -[[InverseGamma (PDF)][[role red 4.04[br](469ns)]][[role blue 1.43[br](166ns)]][[role blue 1.30[br](151ns)]][[role green 1.00[br](116ns)]]] -[[InverseGamma (quantile)][[role red 3.95[br](1856ns)]][[role blue 1.72[br](809ns)]][[role green 1.16[br](545ns)]][[role green 1.00[br](470ns)]]] -[[InverseGaussian (CDF)][[role red 2.14[br](45ns)]][[role green 1.05[br](22ns)]][[role green 1.00[br](21ns)]][[role green 1.00[br](21ns)]]] -[[InverseGaussian (PDF)][[role blue 1.21[br](23ns)]][[role blue 1.37[br](26ns)]][[role blue 1.21[br](23ns)]][[role green 1.00[br](19ns)]]] -[[InverseGaussian (quantile)][[role blue 1.41[br](65ns)]][[role green 1.17[br](54ns)]][[role green 1.07[br](49ns)]][[role green 1.00[br](46ns)]]] -[[Laplace (CDF)][[role blue 1.45[br](29ns)]][[role blue 1.35[br](27ns)]][[role blue 1.45[br](29ns)]][[role green 1.00[br](20ns)]]] -[[Laplace (PDF)][[role blue 1.40[br](28ns)]][[role blue 1.40[br](28ns)]][[role blue 1.40[br](28ns)]][[role green 1.00[br](20ns)]]] -[[Laplace (quantile)][[role blue 1.41[br](31ns)]][[role blue 1.50[br](33ns)]][[role blue 1.41[br](31ns)]][[role green 1.00[br](22ns)]]] -[[LogNormal (CDF)][[role red 2.06[br](111ns)]][[role blue 1.26[br](68ns)]][[role blue 1.24[br](67ns)]][[role green 1.00[br](54ns)]]] -[[LogNormal (PDF)][[role blue 1.44[br](62ns)]][[role blue 1.49[br](64ns)]][[role blue 1.44[br](62ns)]][[role green 1.00[br](43ns)]]] -[[LogNormal (quantile)][[role blue 1.38[br](98ns)]][[role blue 1.25[br](89ns)]][[role blue 1.23[br](87ns)]][[role green 1.00[br](71ns)]]] -[[Logistic (CDF)][[role blue 1.29[br](27ns)]][[role blue 1.29[br](27ns)]][[role blue 1.29[br](27ns)]][[role green 1.00[br](21ns)]]] -[[Logistic (PDF)][[role blue 1.30[br](30ns)]][[role blue 1.30[br](30ns)]][[role blue 1.30[br](30ns)]][[role green 1.00[br](23ns)]]] -[[Logistic (quantile)][[role blue 1.59[br](35ns)]][[role blue 1.55[br](34ns)]][[role blue 1.59[br](35ns)]][[role green 1.00[br](22ns)]]] -[[NegativeBinomial (CDF)][[role red 4.79[br](1661ns)]][[role red 2.83[br](983ns)]][[role red 2.08[br](723ns)]][[role green 1.00[br](347ns)]]] -[[NegativeBinomial (PDF)][[role red 2.61[br](363ns)]][[role green 1.14[br](159ns)]][[role green 1.15[br](160ns)]][[role green 1.00[br](139ns)]]] -[[NegativeBinomial (quantile)][[role red 2.71[br](8461ns)]][[role blue 1.59[br](4959ns)]][[role blue 1.24[br](3873ns)]][[role green 1.00[br](3127ns)]]] -[[NonCentralBeta (CDF)][[role red 3.93[br](2498ns)]][[role red 2.17[br](1376ns)]][[role blue 1.88[br](1193ns)]][[role green 1.00[br](635ns)]]] -[[NonCentralBeta (PDF)][[role red 4.12[br](1987ns)]][[role red 2.36[br](1137ns)]][[role blue 1.99[br](960ns)]][[role green 1.00[br](482ns)]]] -[[NonCentralBeta (quantile)][[role red 5.66[br](59866ns)]][[role red 2.74[br](28961ns)]][[role red 2.19[br](23190ns)]][[role green 1.00[br](10573ns)]]] -[[NonCentralChiSquared (CDF)][[role red 4.03[br](7140ns)]][[role red 2.52[br](4458ns)]][[role red 2.02[br](3582ns)]][[role green 1.00[br](1772ns)]]] -[[NonCentralChiSquared (PDF)][[role red 3.00[br](1162ns)]][[role blue 1.71[br](663ns)]][[role blue 1.66[br](642ns)]][[role green 1.00[br](387ns)]]] -[[NonCentralChiSquared (quantile)][[role red 6.66[br](50398ns)]][[role red 3.54[br](26809ns)]][[role red 2.30[br](17371ns)]][[role green 1.00[br](7563ns)]]] -[[NonCentralF (CDF)][[role red 4.09[br](2516ns)]][[role red 2.15[br](1321ns)]][[role blue 1.77[br](1088ns)]][[role green 1.00[br](615ns)]]] -[[NonCentralF (PDF)][[role red 3.97[br](2065ns)]][[role red 2.01[br](1047ns)]][[role blue 1.75[br](912ns)]][[role green 1.00[br](520ns)]]] -[[NonCentralF (quantile)][[role red 4.49[br](37189ns)]][[role red 2.29[br](18973ns)]][[role blue 1.95[br](16119ns)]][[role green 1.00[br](8278ns)]]] -[[NonCentralT (CDF)][[role red 4.06[br](9170ns)]][[role red 2.56[br](5785ns)]][[role red 2.48[br](5616ns)]][[role green 1.00[br](2261ns)]]] -[[NonCentralT (PDF)][[role red 3.99[br](7048ns)]][[role red 2.63[br](4644ns)]][[role red 2.62[br](4636ns)]][[role green 1.00[br](1767ns)]]] -[[NonCentralT (quantile)][[role red 5.35[br](98950ns)]][[role red 3.40[br](63005ns)]][[role red 2.42[br](44713ns)]][[role green 1.00[br](18509ns)]]] -[[Normal (CDF)][[role red 2.67[br](80ns)]][[role green 1.10[br](33ns)]][[role green 1.10[br](33ns)]][[role green 1.00[br](30ns)]]] -[[Normal (PDF)][[role blue 1.45[br](32ns)]][[role blue 1.45[br](32ns)]][[role blue 1.45[br](32ns)]][[role green 1.00[br](22ns)]]] -[[Normal (quantile)][[role blue 1.60[br](64ns)]][[role green 1.18[br](47ns)]][[role green 1.18[br](47ns)]][[role green 1.00[br](40ns)]]] -[[Pareto (CDF)][[role blue 1.23[br](58ns)]][[role blue 1.26[br](59ns)]][[role blue 1.32[br](62ns)]][[role green 1.00[br](47ns)]]] -[[Pareto (PDF)][[role green 1.03[br](95ns)]][[role green 1.02[br](94ns)]][[role green 1.00[br](92ns)]][[role green 1.20[br](110ns)]]] -[[Pareto (quantile)][[role green 1.02[br](57ns)]][[role green 1.00[br](56ns)]][[role green 1.02[br](57ns)]][[role blue 1.21[br](68ns)]]] -[[Poisson (CDF)][[role red 3.27[br](258ns)]][[role blue 1.53[br](121ns)]][[role blue 1.37[br](108ns)]][[role green 1.00[br](79ns)]]] -[[Poisson (PDF)][[role red 3.10[br](195ns)]][[role blue 1.37[br](86ns)]][[role blue 1.35[br](85ns)]][[role green 1.00[br](63ns)]]] -[[Poisson (quantile)][[role red 2.98[br](1138ns)]][[role blue 1.45[br](552ns)]][[role blue 1.32[br](506ns)]][[role green 1.00[br](382ns)]]] -[[Rayleigh (CDF)][[role blue 1.33[br](24ns)]][[role blue 1.22[br](22ns)]][[role blue 1.22[br](22ns)]][[role green 1.00[br](18ns)]]] -[[Rayleigh (PDF)][[role blue 1.29[br](27ns)]][[role blue 1.29[br](27ns)]][[role blue 1.29[br](27ns)]][[role green 1.00[br](21ns)]]] -[[Rayleigh (quantile)][[role green 1.00[br](25ns)]][[role green 1.00[br](25ns)]][[role green 1.00[br](25ns)]][[role green 1.00[br](25ns)]]] -[[SkewNormal (CDF)][[role blue 1.75[br](483ns)]][[role blue 1.55[br](428ns)]][[role blue 1.57[br](434ns)]][[role green 1.00[br](276ns)]]] -[[SkewNormal (PDF)][[role red 2.02[br](91ns)]][[role blue 1.29[br](58ns)]][[role blue 1.27[br](57ns)]][[role green 1.00[br](45ns)]]] -[[SkewNormal (quantile)][[role red 2.24[br](3698ns)]][[role red 2.06[br](3412ns)]][[role blue 1.40[br](2307ns)]][[role green 1.00[br](1653ns)]]] -[[StudentsT (CDF)][[role red 5.03[br](1498ns)]][[role blue 1.56[br](466ns)]][[role blue 1.46[br](436ns)]][[role green 1.00[br](298ns)]]] -[[StudentsT (PDF)][[role red 5.01[br](646ns)]][[role blue 1.50[br](194ns)]][[role blue 1.52[br](196ns)]][[role green 1.00[br](129ns)]]] -[[StudentsT (quantile)][[role red 3.63[br](2502ns)]][[role green 1.19[br](820ns)]][[role green 1.19[br](823ns)]][[role green 1.00[br](690ns)]]] -[[Weibull (CDF)][[role green 1.12[br](91ns)]][[role green 1.05[br](85ns)]][[role green 1.00[br](81ns)]][[role blue 1.26[br](102ns)]]] -[[Weibull (PDF)][[role green 1.00[br](152ns)]][[role green 1.03[br](157ns)]][[role green 1.02[br](155ns)]][[role blue 1.21[br](184ns)]]] -[[Weibull (quantile)][[role green 1.03[br](90ns)]][[role green 1.02[br](89ns)]][[role green 1.00[br](87ns)]][[role green 1.20[br](104ns)]]] -] -] - -[template table_Distribution_performance_comparison_with_GNU_C_version_5_1_0_on_linux[] -[table:table_Distribution_performance_comparison_with_GNU_C_version_5_1_0_on_linux Distribution performance comparison with GNU C++ version 5.1.0 on linux -[[Function][boost 1.59][Boost[br]promote_double][GSL][Rmath 3.0.2][DCDFLIB]] -[[ArcSine (CDF)][[role green 1.03[br](33ns)]][[role green 1.00[br](32ns)]][[role grey -]][[role grey -]][[role grey -]]] -[[ArcSine (PDF)][[role green 1.00[br](8ns)]][[role green 1.00[br](8ns)]][[role grey -]][[role grey -]][[role grey -]]] -[[ArcSine (quantile)][[role green 1.00[br](20ns)]][[role green 1.00[br](20ns)]][[role grey -]][[role grey -]][[role grey -]]] -[[Beta (CDF)][[role red 2.49[br](424ns)]][[role green 1.00[br](170ns)]][[role red 2.82[br](480ns)]][[role blue 1.71[br](290ns)]][[role red 2.52[br](429ns)]]] -[[Beta (PDF)][[role red 2.63[br](321ns)]][[role green 1.00[br](122ns)]][[role grey -]][[role red 2.03[br](248ns)]][[role grey -]]] -[[Beta (quantile)][[role red 2.40[br](2631ns)]][[role green 1.00[br](1095ns)]][[role red 14.03[br](15368ns)]][[role red 16.19[br](17733ns)]][[role red 7.87[br](8621ns)]]] -[[Binomial (CDF)][[role blue 1.74[br](1050ns)]][[role green 1.00[br](603ns)]][[role blue 1.49[br](898ns)]][[role blue 1.27[br](768ns)]][[role blue 1.30[br](781ns)]]] -[[Binomial (PDF)][[role red 2.26[br](346ns)]][[role green 1.00[br](153ns)]][[role grey -]][[role green 1.16[br](178ns)]][[role grey -]]] -[[Binomial (quantile)][[role red 2.37[br](4776ns)]][[role blue 1.41[br](2850ns)]][[role grey -]][[role green 1.00[br](2015ns)]][[role red 5.86[br](11812ns)]]] -[[Cauchy (CDF)][[role green 1.19[br](25ns)]][[role blue 1.24[br](26ns)]][[role green 1.00[br](21ns)]][[role blue 1.43[br](30ns)]][[role grey -]]] -[[Cauchy (PDF)][[role green 1.00[br](7ns)]][[role green 1.14[br](8ns)]][[role grey -]][[role blue 1.57[br](11ns)]][[role grey -]]] -[[Cauchy (quantile)][[role green 1.00[br](43ns)]][[role green 1.00[br](43ns)]][[role red 58.70[br](2524ns)]][[role red 59.09[br](2541ns)]][[role grey -]]] -[[ChiSquared (CDF)][[role red 2.25[br](520ns)]][[role green 1.04[br](240ns)]][[role red 17.11[br](3953ns)]][[role blue 1.24[br](287ns)]][[role green 1.00[br](231ns)]]] -[[ChiSquared (PDF)][[role red 2.99[br](335ns)]][[role green 1.12[br](126ns)]][[role grey -]][[role green 1.00[br](112ns)]][[role grey -]]] -[[ChiSquared (quantile)][[role blue 1.91[br](1321ns)]][[role green 1.00[br](690ns)]][[role red 52.74[br](36392ns)]][[role red 2.34[br](1615ns)]][[role red 7.80[br](5379ns)]]] -[[Exponential (CDF)][[role green 1.00[br](18ns)]][[role green 1.00[br](18ns)]][[role blue 1.22[br](22ns)]][[role blue 1.56[br](28ns)]][[role grey -]]] -[[Exponential (PDF)][[role green 1.04[br](25ns)]][[role green 1.00[br](24ns)]][[role grey -]][[role blue 1.33[br](32ns)]][[role grey -]]] -[[Exponential (quantile)][[role blue 1.60[br](24ns)]][[role blue 1.53[br](23ns)]][[role green 1.00[br](15ns)]][[role blue 1.47[br](22ns)]][[role grey -]]] -[[ExtremeValue (CDF)][[role green 1.02[br](52ns)]][[role green 1.00[br](51ns)]][[role grey -]][[role grey -]][[role grey -]]] -[[ExtremeValue (PDF)][[role green 1.01[br](72ns)]][[role green 1.00[br](71ns)]][[role grey -]][[role grey -]][[role grey -]]] -[[ExtremeValue (quantile)][[role green 1.10[br](69ns)]][[role green 1.00[br](63ns)]][[role grey -]][[role grey -]][[role grey -]]] -[[F (CDF)][[role blue 1.74[br](968ns)]][[role green 1.00[br](557ns)]][[role blue 1.64[br](911ns)]][[role green 1.09[br](607ns)]][[role green 1.09[br](606ns)]]] -[[F (PDF)][[role red 2.42[br](378ns)]][[role green 1.00[br](156ns)]][[role grey -]][[role green 1.15[br](179ns)]][[role grey -]]] -[[F (quantile)][[role blue 1.83[br](2777ns)]][[role green 1.00[br](1518ns)]][[role red 9.74[br](14791ns)]][[role blue 1.96[br](2969ns)]][[role red 5.80[br](8805ns)]]] -[[Gamma (CDF)][[role red 2.43[br](581ns)]][[role green 1.01[br](242ns)]][[role red 6.28[br](1502ns)]][[role blue 1.44[br](344ns)]][[role green 1.00[br](239ns)]]] -[[Gamma (PDF)][[role red 2.89[br](463ns)]][[role green 1.00[br](160ns)]][[role grey -]][[role green 1.00[br](160ns)]][[role grey -]]] -[[Gamma (quantile)][[role red 2.24[br](1822ns)]][[role green 1.00[br](815ns)]][[role red 14.26[br](11625ns)]][[role red 2.16[br](1762ns)]][[role green 1.05[br](855ns)]]] -[[Geometric (CDF)][[role green 1.05[br](23ns)]][[role green 1.00[br](22ns)]][[role green 1.14[br](25ns)]][[role red 2.50[br](55ns)]][[role grey -]]] -[[Geometric (PDF)][[role green 1.03[br](33ns)]][[role green 1.00[br](32ns)]][[role grey -]][[role red 6.56[br](210ns)]][[role grey -]]] -[[Geometric (quantile)][[role green 1.00[br](21ns)]][[role green 1.00[br](21ns)]][[role grey -]][[role red 2.43[br](51ns)]][[role grey -]]] -[[Hypergeometric (CDF)][[role red 12.08[br](11280ns)]][[role red 6.37[br](5948ns)]][[role blue 1.63[br](1522ns)]][[role green 1.00[br](934ns)]][[role grey -]]] -[[Hypergeometric (PDF)][[role red 24.42[br](10991ns)]][[role red 12.99[br](5845ns)]][[role grey -]][[role green 1.00[br](450ns)]][[role grey -]]] -[[Hypergeometric (quantile)][[role green 1.00[br](51466ns)]][[role blue 1.64[br](84257ns)]][[role grey -]][[role blue 1.64[br](84374ns)]][[role grey -]]] -[[InverseChiSquared (CDF)][[role red 2.29[br](530ns)]][[role green 1.00[br](231ns)]][[role grey -]][[role grey -]][[role grey -]]] -[[InverseChiSquared (PDF)][[role red 2.41[br](328ns)]][[role green 1.00[br](136ns)]][[role grey -]][[role grey -]][[role grey -]]] -[[InverseChiSquared (quantile)][[role blue 1.88[br](1313ns)]][[role green 1.00[br](697ns)]][[role grey -]][[role grey -]][[role grey -]]] -[[InverseGamma (CDF)][[role red 2.62[br](621ns)]][[role green 1.00[br](237ns)]][[role grey -]][[role grey -]][[role grey -]]] -[[InverseGamma (PDF)][[role red 2.83[br](469ns)]][[role green 1.00[br](166ns)]][[role grey -]][[role grey -]][[role grey -]]] -[[InverseGamma (quantile)][[role red 2.29[br](1856ns)]][[role green 1.00[br](809ns)]][[role grey -]][[role grey -]][[role grey -]]] -[[InverseGaussian (CDF)][[role red 2.05[br](45ns)]][[role green 1.00[br](22ns)]][[role grey -]][[role grey -]][[role grey -]]] -[[InverseGaussian (PDF)][[role green 1.00[br](23ns)]][[role green 1.13[br](26ns)]][[role grey -]][[role grey -]][[role grey -]]] -[[InverseGaussian (quantile)][[role blue 1.20[br](65ns)]][[role green 1.00[br](54ns)]][[role grey -]][[role grey -]][[role grey -]]] -[[Laplace (CDF)][[role blue 1.45[br](29ns)]][[role blue 1.35[br](27ns)]][[role green 1.00[br](20ns)]][[role grey -]][[role grey -]]] -[[Laplace (PDF)][[role green 1.00[br](28ns)]][[role green 1.00[br](28ns)]][[role grey -]][[role grey -]][[role grey -]]] -[[Laplace (quantile)][[role green 1.15[br](31ns)]][[role blue 1.22[br](33ns)]][[role green 1.00[br](27ns)]][[role grey -]][[role grey -]]] -[[LogNormal (CDF)][[role blue 1.63[br](111ns)]][[role green 1.00[br](68ns)]][[role green 1.12[br](76ns)]][[role blue 1.46[br](99ns)]][[role grey -]]] -[[LogNormal (PDF)][[role green 1.00[br](62ns)]][[role green 1.03[br](64ns)]][[role grey -]][[role green 1.08[br](67ns)]][[role grey -]]] -[[LogNormal (quantile)][[role blue 1.36[br](98ns)]][[role blue 1.24[br](89ns)]][[role green 1.00[br](72ns)]][[role blue 1.21[br](87ns)]][[role grey -]]] -[[Logistic (CDF)][[role green 1.00[br](27ns)]][[role green 1.00[br](27ns)]][[role green 1.04[br](28ns)]][[role blue 1.26[br](34ns)]][[role grey -]]] -[[Logistic (PDF)][[role green 1.00[br](30ns)]][[role green 1.00[br](30ns)]][[role grey -]][[role green 1.00[br](30ns)]][[role grey -]]] -[[Logistic (quantile)][[role green 1.13[br](35ns)]][[role green 1.10[br](34ns)]][[role green 1.00[br](31ns)]][[role blue 1.26[br](39ns)]][[role grey -]]] -[[NegativeBinomial (CDF)][[role red 2.05[br](1661ns)]][[role blue 1.21[br](983ns)]][[role blue 1.62[br](1314ns)]][[role green 1.08[br](881ns)]][[role green 1.00[br](812ns)]]] -[[NegativeBinomial (PDF)][[role red 2.28[br](363ns)]][[role green 1.00[br](159ns)]][[role grey -]][[role green 1.19[br](189ns)]][[role grey -]]] -[[NegativeBinomial (quantile)][[role blue 1.71[br](8461ns)]][[role green 1.00[br](4959ns)]][[role grey -]][[role red 3.35[br](16603ns)]][[role red 3.09[br](15303ns)]]] -[[NonCentralBeta (CDF)][[role red 2.13[br](2498ns)]][[role green 1.17[br](1376ns)]][[role grey -]][[role green 1.00[br](1172ns)]][[role grey -]]] -[[NonCentralBeta (PDF)][[role red 2.13[br](1987ns)]][[role blue 1.22[br](1137ns)]][[role grey -]][[role green 1.00[br](933ns)]][[role grey -]]] -[[NonCentralBeta (quantile)][[role red 2.07[br](59866ns)]][[role green 1.00[br](28961ns)]][[role grey -]][[role red 2.81[br](81368ns)]][[role grey -]]] -[[NonCentralChiSquared (CDF)][[role red 10.56[br](7140ns)]][[role red 6.59[br](4458ns)]][[role grey -]][[role red 15.34[br](10373ns)]][[role green 1.00[br](676ns)]]] -[[NonCentralChiSquared (PDF)][[role red 2.69[br](1162ns)]][[role blue 1.53[br](663ns)]][[role grey -]][[role green 1.00[br](432ns)]][[role grey -]]] -[[NonCentralChiSquared (quantile)][[role red 3.42[br](50398ns)]][[role blue 1.82[br](26809ns)]][[role grey -]][[role red 35.75[br](526077ns)]][[role green 1.00[br](14717ns)]]] -[[NonCentralF (CDF)][[role red 2.00[br](2516ns)]][[role green 1.05[br](1321ns)]][[role grey -]][[role green 1.00[br](1256ns)]][[role green 1.15[br](1444ns)]]] -[[NonCentralF (PDF)][[role red 2.42[br](2065ns)]][[role blue 1.23[br](1047ns)]][[role grey -]][[role green 1.00[br](853ns)]][[role grey -]]] -[[NonCentralF (quantile)][[role red 2.21[br](37189ns)]][[role green 1.13[br](18973ns)]][[role grey -]][[role red 3.93[br](66235ns)]][[role green 1.00[br](16855ns)]]] -[[NonCentralT (CDF)][[role red 4.94[br](9170ns)]][[role red 3.11[br](5785ns)]][[role grey -]][[role green 1.00[br](1858ns)]][[role blue 1.83[br](3403ns)]]] -[[NonCentralT (PDF)][[role blue 1.83[br](7048ns)]][[role blue 1.20[br](4644ns)]][[role grey -]][[role green 1.00[br](3858ns)]][[role grey -]]] -[[NonCentralT (quantile)][[role blue 1.99[br](98950ns)]][[role blue 1.27[br](63005ns)]][[role grey -]][[role blue 1.74[br](86384ns)]][[role green 1.00[br](49733ns)]]] -[[Normal (CDF)][[role red 2.58[br](80ns)]][[role green 1.06[br](33ns)]][[role green 1.00[br](31ns)]][[role blue 1.97[br](61ns)]][[role red 6.23[br](193ns)]]] -[[Normal (PDF)][[role green 1.00[br](32ns)]][[role green 1.00[br](32ns)]][[role grey -]][[role green 1.19[br](38ns)]][[role grey -]]] -[[Normal (quantile)][[role blue 2.00[br](64ns)]][[role blue 1.47[br](47ns)]][[role green 1.00[br](32ns)]][[role blue 1.38[br](44ns)]][[role red 17.25[br](552ns)]]] -[[Pareto (CDF)][[role green 1.16[br](58ns)]][[role green 1.18[br](59ns)]][[role green 1.00[br](50ns)]][[role grey -]][[role grey -]]] -[[Pareto (PDF)][[role green 1.01[br](95ns)]][[role green 1.00[br](94ns)]][[role grey -]][[role grey -]][[role grey -]]] -[[Pareto (quantile)][[role green 1.14[br](57ns)]][[role green 1.12[br](56ns)]][[role green 1.00[br](50ns)]][[role grey -]][[role grey -]]] -[[Poisson (CDF)][[role red 2.13[br](258ns)]][[role green 1.00[br](121ns)]][[role red 5.93[br](718ns)]][[role red 2.19[br](265ns)]][[role blue 1.64[br](198ns)]]] -[[Poisson (PDF)][[role red 2.27[br](195ns)]][[role green 1.00[br](86ns)]][[role grey -]][[role green 1.06[br](91ns)]][[role grey -]]] -[[Poisson (quantile)][[role red 2.06[br](1138ns)]][[role green 1.00[br](552ns)]][[role grey -]][[role green 1.15[br](636ns)]][[role red 5.24[br](2893ns)]]] -[[Rayleigh (CDF)][[role green 1.20[br](24ns)]][[role green 1.10[br](22ns)]][[role green 1.00[br](20ns)]][[role grey -]][[role grey -]]] -[[Rayleigh (PDF)][[role green 1.00[br](27ns)]][[role green 1.00[br](27ns)]][[role grey -]][[role grey -]][[role grey -]]] -[[Rayleigh (quantile)][[role blue 1.25[br](25ns)]][[role blue 1.25[br](25ns)]][[role green 1.00[br](20ns)]][[role grey -]][[role grey -]]] -[[SkewNormal (CDF)][[role green 1.13[br](483ns)]][[role green 1.00[br](428ns)]][[role grey -]][[role grey -]][[role grey -]]] -[[SkewNormal (PDF)][[role blue 1.57[br](91ns)]][[role green 1.00[br](58ns)]][[role grey -]][[role grey -]][[role grey -]]] -[[SkewNormal (quantile)][[role green 1.08[br](3698ns)]][[role green 1.00[br](3412ns)]][[role grey -]][[role grey -]][[role grey -]]] -[[StudentsT (CDF)][[role red 5.76[br](1498ns)]][[role blue 1.79[br](466ns)]][[role green 1.00[br](260ns)]][[role blue 1.35[br](350ns)]][[role blue 1.61[br](419ns)]]] -[[StudentsT (PDF)][[role red 5.01[br](646ns)]][[role blue 1.50[br](194ns)]][[role grey -]][[role green 1.00[br](129ns)]][[role grey -]]] -[[StudentsT (quantile)][[role red 3.05[br](2502ns)]][[role green 1.00[br](820ns)]][[role blue 1.33[br](1094ns)]][[role green 1.13[br](924ns)]][[role red 4.27[br](3499ns)]]] -[[Weibull (CDF)][[role green 1.12[br](91ns)]][[role green 1.05[br](85ns)]][[role green 1.00[br](81ns)]][[role green 1.19[br](96ns)]][[role grey -]]] -[[Weibull (PDF)][[role blue 1.55[br](152ns)]][[role blue 1.60[br](157ns)]][[role grey -]][[role green 1.00[br](98ns)]][[role grey -]]] -[[Weibull (quantile)][[role green 1.08[br](90ns)]][[role green 1.07[br](89ns)]][[role green 1.00[br](83ns)]][[role green 1.08[br](90ns)]][[role grey -]]] -] -] - -[template table_Library_Comparison_with_GNU_C_version_5_1_0_on_linux[] -[table:table_Library_Comparison_with_GNU_C_version_5_1_0_on_linux Library Comparison with GNU C++ version 5.1.0 on linux -[[Function][boost 1.59][boost 1.59[br]promote_double][tr1/cmath][GSL 1.16][Rmath 3.0.2][math.h]] -[[assoc_laguerre[br](2240/2240 tests selected)][[role green 1.13[br](220ns)]][[role green 1.00[br](195ns)]][[role green 1.19[br](233ns)]][[role green 1.12[br](218ns)]][[role grey -]][[role grey -]]] -[[assoc_legendre[br](205/400 tests selected)][[role red 4.13[br](248ns)]][[role blue 1.67[br](100ns)]][[role green 1.00[br](60ns)]][[role red 2.53[br](152ns)]][[role grey -]][[role grey -]]] -[[beta (incomplete)[br](2682/3210 tests selected)][[role red 3.16[br](1768ns)]][[role green 1.00[br](560ns)]][[role grey -]][[role blue 1.36[br](762ns)]][[role grey -]][[role grey -]]] -[[beta[br](2202/2202 tests selected)][[role red 5.21[br](833ns)]][[role green 1.11[br](178ns)]][[role green 1.00[br](160ns)]][[role red 2.52[br](404ns)]][[role blue 1.61[br](257ns)]][[role grey -]]] -[[cbrt[br](85/85 tests selected)][[role red 2.47[br](42ns)]][[role green 1.00[br](17ns)]][[role green 1.18[br](20ns)]][[role grey -]][[role grey -]][[role green 1.18[br](20ns)]]] -[[cyl_bessel_i (integer order)[br](494/526 tests selected)][[role red 3.89[br](781ns)]][[role green 1.18[br](238ns)]][[role green 1.00[br](201ns)]][[role red 2.32[br](466ns)]][[role red 5.75[br](1156ns)]][[role grey -]]] -[[cyl_bessel_i[br](177/240 tests selected)][[role red 6.92[br](1383ns)]][[role blue 1.98[br](396ns)]][[role green 1.00[br](200ns)]][[role red 4.61[br](922ns)]][[role red 8.33[br](1666ns)]][[role grey -]]] -[[cyl_bessel_j (integer order)[br](250/268 tests selected)][[role red 2.70[br](270ns)]][[role green 1.00[br](100ns)]][[role red 2.56[br](256ns)]][[role red 2.67[br](267ns)]][[role red 4.40[br](440ns)]][[role blue 2.00[br](200ns)]]] -[[cyl_bessel_j[br](423/451 tests selected)][[role red 2.81[br](1051ns)]][[role green 1.07[br](400ns)]][[role green 1.00[br](374ns)]][[role red 2.28[br](852ns)]][[role green 1.20[br](448ns)]][[role grey -]]] -[[cyl_bessel_k (integer order)[br](505/508 tests selected)][[role red 13.80[br](3506ns)]][[role blue 1.33[br](337ns)]][[role red 10.67[br](2709ns)]][[role green 1.00[br](254ns)]][[role blue 1.42[br](360ns)]][[role grey -]]] -[[cyl_bessel_k[br](96/279 tests selected)][[role red 6.75[br](4683ns)]][[role green 1.00[br](694ns)]][[role green 1.13[br](785ns)]][[role blue 1.24[br](864ns)]][[role blue 1.21[br](840ns)]][[role grey -]]] -[[cyl_neumann (integer order)[br](423/428 tests selected)][[role red 2.07[br](558ns)]][[role green 1.00[br](270ns)]][[role red 2.61[br](704ns)]][[role blue 1.92[br](518ns)]][[role red 3.96[br](1070ns)]][[role blue 1.43[br](385ns)]]] -[[cyl_neumann[br](400/450 tests selected)][[role red 2.48[br](1453ns)]][[role green 1.00[br](587ns)]][[role blue 1.28[br](754ns)]][[role red 2.45[br](1437ns)]][[role green 1.09[br](637ns)]][[role grey -]]] -[[digamma[br](1019/1019 tests selected)][[role blue 1.85[br](72ns)]][[role green 1.00[br](39ns)]][[role grey -]][[role red 2.85[br](111ns)]][[role red 4.33[br](169ns)]][[role grey -]]] -[[ellint_1 (complete)[br](109/109 tests selected)][[role blue 1.77[br](55ns)]][[role green 1.00[br](31ns)]][[role red 8.35[br](259ns)]][[role red 10.19[br](316ns)]][[role grey -]][[role grey -]]] -[[ellint_1[br](627/629 tests selected)][[role red 2.01[br](380ns)]][[role green 1.00[br](189ns)]][[role red 2.32[br](438ns)]][[role red 2.51[br](474ns)]][[role grey -]][[role grey -]]] -[[ellint_2 (complete)[br](109/110 tests selected)][[role blue 1.67[br](55ns)]][[role green 1.00[br](33ns)]][[role red 15.91[br](525ns)]][[role red 18.79[br](620ns)]][[role grey -]][[role grey -]]] -[[ellint_2[br](527/530 tests selected)][[role red 2.31[br](780ns)]][[role green 1.00[br](338ns)]][[role blue 1.88[br](635ns)]][[role red 2.14[br](723ns)]][[role grey -]][[role grey -]]] -[[ellint_3 (complete)[br](500/500 tests selected)][[role red 2.49[br](1151ns)]][[role green 1.00[br](462ns)]][[role blue 1.81[br](838ns)]][[role blue 1.99[br](919ns)]][[role grey -]][[role grey -]]] -[[ellint_3[br](831/845 tests selected)][[role red 2.70[br](2114ns)]][[role green 1.00[br](784ns)]][[role blue 1.59[br](1248ns)]][[role blue 1.69[br](1322ns)]][[role grey -]][[role grey -]]] -[[ellint_rc[br](201/201 tests selected)][[role blue 1.64[br](77ns)]][[role green 1.00[br](47ns)]][[role grey -]][[role red 4.57[br](215ns)]][[role grey -]][[role grey -]]] -[[ellint_rd[br](7588/7588 tests selected)][[role red 2.21[br](497ns)]][[role green 1.00[br](225ns)]][[role grey -]][[role blue 1.73[br](390ns)]][[role grey -]][[role grey -]]] -[[ellint_rf[br](7788/7788 tests selected)][[role blue 1.44[br](91ns)]][[role green 1.00[br](63ns)]][[role grey -]][[role red 5.52[br](348ns)]][[role grey -]][[role grey -]]] -[[ellint_rj[br](7642/8032 tests selected)][[role red 2.29[br](463ns)]][[role green 1.00[br](202ns)]][[role grey -]][[role red 11.38[br](2298ns)]][[role grey -]][[role grey -]]] -[[erf[br](950/950 tests selected)][[role red 2.69[br](35ns)]][[role green 1.00[br](13ns)]][[role blue 1.38[br](18ns)]][[role red 11.00[br](143ns)]][[role grey -]][[role blue 1.31[br](17ns)]]] -[[erfc[br](950/950 tests selected)][[role red 2.89[br](55ns)]][[role green 1.00[br](19ns)]][[role blue 1.26[br](24ns)]][[role red 3.95[br](75ns)]][[role grey -]][[role blue 1.26[br](24ns)]]] -[[expint (En)[br](1059/1059 tests selected)][[role blue 1.87[br](256ns)]][[role green 1.00[br](137ns)]][[role grey -]][[role red 4.98[br](682ns)]][[role grey -]][[role grey -]]] -[[expint[br](436/436 tests selected)][[role red 2.62[br](89ns)]][[role green 1.00[br](34ns)]][[role red 5.91[br](201ns)]][[role red 4.15[br](141ns)]][[role grey -]][[role grey -]]] -[[expm1[br](80/80 tests selected)][[role green 1.09[br](12ns)]][[role green 1.00[br](11ns)]][[role green 1.18[br](13ns)]][[role grey -]][[role grey -]][[role green 1.18[br](13ns)]]] -[[gamma_p[br](1379/1379 tests selected)][[role red 2.39[br](487ns)]][[role green 1.00[br](204ns)]][[role grey -]][[role red 4.73[br](965ns)]][[role blue 1.58[br](322ns)]][[role grey -]]] -[[gamma_p_inv[br](559/559 tests selected)][[role red 2.19[br](1548ns)]][[role green 1.00[br](708ns)]][[role grey -]][[role grey -]][[role red 2.19[br](1547ns)]][[role grey -]]] -[[gamma_q[br](1371/1379 tests selected)][[role red 2.49[br](476ns)]][[role green 1.00[br](191ns)]][[role grey -]][[role red 6.03[br](1151ns)]][[role blue 1.76[br](337ns)]][[role grey -]]] -[[gamma_q_inv[br](78/559 tests selected)][[role red 2.51[br](1770ns)]][[role green 1.00[br](705ns)]][[role grey -]][[role grey -]][[role green 1.15[br](813ns)]][[role grey -]]] -[[ibeta[br](3210/3210 tests selected)][[role red 3.37[br](1646ns)]][[role blue 1.21[br](590ns)]][[role grey -]][[role grey -]][[role green 1.00[br](489ns)]][[role grey -]]] -[[ibeta_inv[br](952/1210 tests selected)][[role red 2.46[br](5297ns)]][[role green 1.00[br](2154ns)]][[role grey -]][[role grey -]][[role red 27.64[br](59529ns)]][[role grey -]]] -[[ibetac[br](3210/3210 tests selected)][[role red 3.46[br](1688ns)]][[role blue 1.21[br](592ns)]][[role grey -]][[role grey -]][[role green 1.00[br](488ns)]][[role grey -]]] -[[ibetac_inv[br](945/1210 tests selected)][[role red 2.45[br](5370ns)]][[role green 1.00[br](2189ns)]][[role grey -]][[role grey -]][[role red 19.86[br](43474ns)]][[role grey -]]] -[[jacobi_cn[br](2368/2757 tests selected)][[role red 4.89[br](474ns)]][[role blue 1.77[br](172ns)]][[role grey -]][[role green 1.00[br](97ns)]][[role grey -]][[role grey -]]] -[[jacobi_dn[br](2368/2757 tests selected)][[role red 5.10[br](474ns)]][[role blue 1.85[br](172ns)]][[role grey -]][[role green 1.00[br](93ns)]][[role grey -]][[role grey -]]] -[[jacobi_sn[br](2368/2757 tests selected)][[role red 5.07[br](461ns)]][[role blue 1.82[br](166ns)]][[role grey -]][[role green 1.00[br](91ns)]][[role grey -]][[role grey -]]] -[[laguerre[br](280/280 tests selected)][[role green 1.15[br](140ns)]][[role green 1.00[br](122ns)]][[role blue 1.28[br](156ns)]][[role green 1.20[br](146ns)]][[role grey -]][[role grey -]]] -[[legendre Q[br](300/300 tests selected)][[role blue 1.25[br](519ns)]][[role green 1.00[br](414ns)]][[role grey -]][[role green 1.07[br](441ns)]][[role grey -]][[role grey -]]] -[[legendre[br](300/300 tests selected)][[role green 1.15[br](407ns)]][[role green 1.00[br](353ns)]][[role green 1.11[br](391ns)]][[role red 2.05[br](725ns)]][[role grey -]][[role grey -]]] -[[lgamma[br](400/400 tests selected)][[role red 5.33[br](245ns)]][[role red 2.46[br](113ns)]][[role green 1.00[br](46ns)]][[role red 5.78[br](266ns)]][[role red 2.04[br](94ns)]][[role green 1.02[br](47ns)]]] -[[log1p[br](80/80 tests selected)][[role green 1.09[br](12ns)]][[role green 1.09[br](12ns)]][[role green 1.00[br](11ns)]][[role grey -]][[role grey -]][[role green 1.00[br](11ns)]]] -[[polygamma[br](823/1535 tests selected)][[role red 8.41[br](2810ns)]][[role red 2.19[br](732ns)]][[role grey -]][[role red 7.13[br](2380ns)]][[role green 1.00[br](334ns)]][[role grey -]]] -[[sph_bessel[br](483/483 tests selected)][[role blue 1.71[br](1606ns)]][[role green 1.00[br](939ns)]][[role red 2.14[br](2010ns)]][[role red 2.64[br](2483ns)]][[role grey -]][[role grey -]]] -[[sph_neumann[br](284/284 tests selected)][[role red 7.70[br](3444ns)]][[role red 3.68[br](1646ns)]][[role red 6.41[br](2867ns)]][[role green 1.00[br](447ns)]][[role grey -]][[role grey -]]] -[[tgamma (incomplete)[br](1266/1379 tests selected)][[role red 2.37[br](698ns)]][[role green 1.00[br](295ns)]][[role grey -]][[role red 3.22[br](951ns)]][[role grey -]][[role grey -]]] -[[tgamma[br](400/400 tests selected)][[role red 4.19[br](323ns)]][[role blue 1.22[br](94ns)]][[role red 2.03[br](156ns)]][[role green 1.19[br](92ns)]][[role green 1.00[br](77ns)]][[role red 2.03[br](156ns)]]] -[[trigamma[br](659/659 tests selected)][[role blue 1.63[br](31ns)]][[role green 1.00[br](19ns)]][[role grey -]][[role red 44.74[br](850ns)]][[role red 13.42[br](255ns)]][[role grey -]]] -[[zeta[br](448/448 tests selected)][[role red 2.72[br](501ns)]][[role green 1.00[br](184ns)]][[role red 750.18[br](138034ns)]][[role blue 1.49[br](275ns)]][[role grey -]][[role grey -]]] -] -] - -[template table_Compiler_Option_Comparison_on_Win32[] -[table:table_Compiler_Option_Comparison_on_Win32 Compiler Option Comparison on Win32 -[[Function][cl /Od (x86 build)][cl /arch:sse2 /Ox (x86 build)][cl /Ox (x64 build)][icl /Ox (x64 build)]] -[[boost::math::cbrt][[role red 17.71[br](248ns)]][[role red 4.21[br](59ns)]][[role red 3.21[br](45ns)]][[role green 1.00[br](14ns)]]] -[[boost::math::cyl_bessel_j (integer orders)][[role red 10.01[br](691ns)]][[role blue 1.61[br](111ns)]][[role blue 1.42[br](98ns)]][[role green 1.00[br](69ns)]]] -[[boost::math::ibeta_inv][[role red 4.41[br](6282ns)]][[role blue 1.25[br](1780ns)]][[role blue 1.32[br](1883ns)]][[role green 1.00[br](1425ns)]]] -] -] - -[template table_Distribution_performance_comparison_with_for_different_performance_options_with_Microsoft_Visual_C_version_14_0_on_Win32[] -[table:table_Distribution_performance_comparison_with_for_different_performance_options_with_Microsoft_Visual_C_version_14_0_on_Win32 Distribution performance comparison with for different performance options with Microsoft Visual C++ version 14.0 on Win32 +[template table_Distribution_performance_comparison_with_for_different_performance_options_with_Microsoft_Visual_C_version_14_0_on_Windows_x64[] +[table:table_Distribution_performance_comparison_with_for_different_performance_options_with_Microsoft_Visual_C_version_14_0_on_Windows_x64 Distribution performance comparison with for different performance options with Microsoft Visual C++ version 14.0 on Windows x64 [[Function][boost 1.59][Boost[br]promote_double[br]digits10<10>][Boost[br]float[br]promote_float]] -[[ArcSine (CDF)][[role green 1.00[br](53ns)]][[role green 1.04[br](55ns)]][[role green 1.04[br](55ns)]]] -[[ArcSine (PDF)][[role green 1.00[br](31ns)]][[role green 1.00[br](31ns)]][[role blue 1.23[br](38ns)]]] -[[ArcSine (quantile)][[role green 1.00[br](48ns)]][[role green 1.06[br](51ns)]][[role green 1.13[br](54ns)]]] -[[Beta (CDF)][[role blue 1.48[br](198ns)]][[role green 1.18[br](158ns)]][[role green 1.00[br](134ns)]]] -[[Beta (PDF)][[role blue 1.35[br](174ns)]][[role green 1.00[br](129ns)]][[role green 1.06[br](137ns)]]] -[[Beta (quantile)][[role blue 1.53[br](1123ns)]][[role green 1.08[br](796ns)]][[role green 1.00[br](735ns)]]] -[[Binomial (CDF)][[role red 2.16[br](652ns)]][[role blue 1.59[br](481ns)]][[role green 1.00[br](302ns)]]] -[[Binomial (PDF)][[role blue 1.20[br](201ns)]][[role green 1.00[br](167ns)]][[role green 1.02[br](171ns)]]] -[[Binomial (quantile)][[role red 2.01[br](3028ns)]][[role blue 1.51[br](2275ns)]][[role green 1.00[br](1503ns)]]] -[[Cauchy (CDF)][[role green 1.03[br](34ns)]][[role green 1.00[br](33ns)]][[role green 1.00[br](33ns)]]] -[[Cauchy (PDF)][[role green 1.00[br](13ns)]][[role green 1.15[br](15ns)]][[role green 1.00[br](13ns)]]] -[[Cauchy (quantile)][[role green 1.03[br](39ns)]][[role green 1.00[br](38ns)]][[role green 1.11[br](42ns)]]] -[[ChiSquared (CDF)][[role blue 1.55[br](243ns)]][[role blue 1.29[br](203ns)]][[role green 1.00[br](157ns)]]] -[[ChiSquared (PDF)][[role blue 1.32[br](137ns)]][[role green 1.00[br](104ns)]][[role green 1.02[br](106ns)]]] -[[ChiSquared (quantile)][[role blue 1.64[br](674ns)]][[role blue 1.23[br](505ns)]][[role green 1.00[br](410ns)]]] -[[Exponential (CDF)][[role blue 1.38[br](22ns)]][[role blue 1.38[br](22ns)]][[role green 1.00[br](16ns)]]] -[[Exponential (PDF)][[role green 1.06[br](17ns)]][[role green 1.06[br](17ns)]][[role green 1.00[br](16ns)]]] -[[Exponential (quantile)][[role green 1.00[br](28ns)]][[role green 1.04[br](29ns)]][[role green 1.07[br](30ns)]]] -[[ExtremeValue (CDF)][[role green 1.00[br](39ns)]][[role green 1.00[br](39ns)]][[role green 1.08[br](42ns)]]] -[[ExtremeValue (PDF)][[role green 1.00[br](36ns)]][[role green 1.00[br](36ns)]][[role green 1.08[br](39ns)]]] -[[ExtremeValue (quantile)][[role green 1.00[br](36ns)]][[role green 1.00[br](36ns)]][[role green 1.17[br](42ns)]]] -[[F (CDF)][[role red 2.19[br](575ns)]][[role blue 1.62[br](424ns)]][[role green 1.00[br](262ns)]]] -[[F (PDF)][[role blue 1.33[br](222ns)]][[role green 1.02[br](170ns)]][[role green 1.00[br](167ns)]]] -[[F (quantile)][[role blue 1.25[br](1439ns)]][[role green 1.01[br](1155ns)]][[role green 1.00[br](1149ns)]]] -[[Gamma (CDF)][[role blue 1.33[br](239ns)]][[role green 1.09[br](197ns)]][[role green 1.00[br](180ns)]]] -[[Gamma (PDF)][[role blue 1.30[br](169ns)]][[role green 1.00[br](130ns)]][[role green 1.02[br](133ns)]]] -[[Gamma (quantile)][[role blue 1.58[br](782ns)]][[role green 1.03[br](508ns)]][[role green 1.00[br](495ns)]]] -[[Geometric (CDF)][[role green 1.04[br](29ns)]][[role green 1.00[br](28ns)]][[role green 1.04[br](29ns)]]] -[[Geometric (PDF)][[role green 1.17[br](28ns)]][[role green 1.17[br](28ns)]][[role green 1.00[br](24ns)]]] -[[Geometric (quantile)][[role green 1.00[br](27ns)]][[role green 1.00[br](27ns)]][[role green 1.11[br](30ns)]]] -[[Hypergeometric (CDF)][[role green 1.03[br](5986ns)]][[role green 1.00[br](5839ns)]][[role green 1.02[br](5976ns)]]] -[[Hypergeometric (PDF)][[role green 1.00[br](5702ns)]][[role green 1.00[br](5680ns)]][[role green 1.06[br](6048ns)]]] -[[Hypergeometric (quantile)][[role green 1.02[br](41147ns)]][[role green 1.00[br](40144ns)]][[role blue 1.25[br](50043ns)]]] -[[InverseChiSquared (CDF)][[role blue 1.60[br](239ns)]][[role blue 1.23[br](183ns)]][[role green 1.00[br](149ns)]]] -[[InverseChiSquared (PDF)][[role blue 1.29[br](159ns)]][[role green 1.03[br](127ns)]][[role green 1.00[br](123ns)]]] -[[InverseChiSquared (quantile)][[role blue 1.59[br](681ns)]][[role green 1.16[br](497ns)]][[role green 1.00[br](428ns)]]] -[[InverseGamma (CDF)][[role blue 1.31[br](247ns)]][[role green 1.04[br](197ns)]][[role green 1.00[br](189ns)]]] -[[InverseGamma (PDF)][[role blue 1.29[br](174ns)]][[role green 1.00[br](135ns)]][[role green 1.02[br](138ns)]]] -[[InverseGamma (quantile)][[role blue 1.52[br](791ns)]][[role green 1.03[br](536ns)]][[role green 1.00[br](519ns)]]] -[[InverseGaussian (CDF)][[role green 1.00[br](24ns)]][[role green 1.00[br](24ns)]][[role green 1.00[br](24ns)]]] -[[InverseGaussian (PDF)][[role green 1.00[br](23ns)]][[role green 1.04[br](24ns)]][[role green 1.04[br](24ns)]]] -[[InverseGaussian (quantile)][[role green 1.02[br](54ns)]][[role green 1.00[br](53ns)]][[role green 1.06[br](56ns)]]] -[[Laplace (CDF)][[role green 1.09[br](24ns)]][[role green 1.09[br](24ns)]][[role green 1.00[br](22ns)]]] -[[Laplace (PDF)][[role green 1.04[br](25ns)]][[role green 1.04[br](25ns)]][[role green 1.00[br](24ns)]]] -[[Laplace (quantile)][[role green 1.04[br](25ns)]][[role green 1.00[br](24ns)]][[role green 1.00[br](24ns)]]] -[[LogNormal (CDF)][[role green 1.02[br](57ns)]][[role green 1.04[br](58ns)]][[role green 1.00[br](56ns)]]] -[[LogNormal (PDF)][[role green 1.02[br](44ns)]][[role green 1.00[br](43ns)]][[role green 1.19[br](51ns)]]] -[[LogNormal (quantile)][[role green 1.01[br](89ns)]][[role green 1.00[br](88ns)]][[role green 1.06[br](93ns)]]] -[[Logistic (CDF)][[role green 1.04[br](24ns)]][[role green 1.04[br](24ns)]][[role green 1.00[br](23ns)]]] -[[Logistic (PDF)][[role green 1.04[br](28ns)]][[role green 1.04[br](28ns)]][[role green 1.00[br](27ns)]]] -[[Logistic (quantile)][[role green 1.00[br](25ns)]][[role green 1.00[br](25ns)]][[role green 1.04[br](26ns)]]] -[[NegativeBinomial (CDF)][[role red 2.42[br](1016ns)]][[role blue 1.76[br](738ns)]][[role green 1.00[br](420ns)]]] -[[NegativeBinomial (PDF)][[role blue 1.33[br](225ns)]][[role green 1.00[br](169ns)]][[role green 1.04[br](176ns)]]] -[[NegativeBinomial (quantile)][[role blue 1.37[br](5096ns)]][[role green 1.02[br](3786ns)]][[role green 1.00[br](3711ns)]]] -[[NonCentralBeta (CDF)][[role red 2.02[br](1338ns)]][[role blue 1.71[br](1128ns)]][[role green 1.00[br](661ns)]]] -[[NonCentralBeta (PDF)][[role red 2.08[br](1117ns)]][[role blue 1.66[br](892ns)]][[role green 1.00[br](537ns)]]] -[[NonCentralBeta (quantile)][[role red 2.48[br](27297ns)]][[role blue 1.95[br](21459ns)]][[role green 1.00[br](10988ns)]]] -[[NonCentralChiSquared (CDF)][[role red 2.47[br](4327ns)]][[role blue 1.94[br](3395ns)]][[role green 1.00[br](1752ns)]]] -[[NonCentralChiSquared (PDF)][[role blue 1.65[br](634ns)]][[role blue 1.46[br](560ns)]][[role green 1.00[br](384ns)]]] -[[NonCentralChiSquared (quantile)][[role red 3.30[br](25464ns)]][[role red 2.19[br](16890ns)]][[role green 1.00[br](7710ns)]]] -[[NonCentralF (CDF)][[role blue 1.97[br](1277ns)]][[role blue 1.63[br](1057ns)]][[role green 1.00[br](649ns)]]] -[[NonCentralF (PDF)][[role blue 1.79[br](1035ns)]][[role blue 1.50[br](868ns)]][[role green 1.00[br](577ns)]]] -[[NonCentralF (quantile)][[role red 2.25[br](19129ns)]][[role blue 1.69[br](14321ns)]][[role green 1.00[br](8490ns)]]] -[[NonCentralT (CDF)][[role red 2.38[br](5448ns)]][[role blue 1.89[br](4317ns)]][[role green 1.00[br](2290ns)]]] -[[NonCentralT (PDF)][[role red 2.35[br](4265ns)]][[role blue 1.88[br](3404ns)]][[role green 1.00[br](1813ns)]]] -[[NonCentralT (quantile)][[role red 2.77[br](51902ns)]][[role blue 1.91[br](35765ns)]][[role green 1.00[br](18759ns)]]] -[[Normal (CDF)][[role green 1.03[br](35ns)]][[role green 1.00[br](34ns)]][[role green 1.00[br](34ns)]]] -[[Normal (PDF)][[role green 1.00[br](28ns)]][[role green 1.04[br](29ns)]][[role green 1.07[br](30ns)]]] -[[Normal (quantile)][[role green 1.05[br](59ns)]][[role green 1.00[br](56ns)]][[role green 1.04[br](58ns)]]] -[[Pareto (CDF)][[role green 1.03[br](62ns)]][[role green 1.00[br](60ns)]][[role green 1.07[br](64ns)]]] -[[Pareto (PDF)][[role green 1.06[br](106ns)]][[role green 1.03[br](103ns)]][[role green 1.00[br](100ns)]]] -[[Pareto (quantile)][[role green 1.00[br](61ns)]][[role green 1.02[br](62ns)]][[role green 1.03[br](63ns)]]] -[[Poisson (CDF)][[role blue 1.26[br](113ns)]][[role green 1.06[br](95ns)]][[role green 1.00[br](90ns)]]] -[[Poisson (PDF)][[role blue 1.27[br](81ns)]][[role green 1.00[br](64ns)]][[role green 1.09[br](70ns)]]] -[[Poisson (quantile)][[role green 1.15[br](600ns)]][[role green 1.01[br](531ns)]][[role green 1.00[br](524ns)]]] -[[Rayleigh (CDF)][[role green 1.00[br](25ns)]][[role green 1.00[br](25ns)]][[role green 1.00[br](25ns)]]] -[[Rayleigh (PDF)][[role green 1.00[br](24ns)]][[role green 1.00[br](24ns)]][[role green 1.00[br](24ns)]]] -[[Rayleigh (quantile)][[role green 1.03[br](31ns)]][[role green 1.00[br](30ns)]][[role green 1.13[br](34ns)]]] -[[SkewNormal (CDF)][[role green 1.01[br](248ns)]][[role green 1.00[br](246ns)]][[role green 1.02[br](250ns)]]] -[[SkewNormal (PDF)][[role green 1.10[br](101ns)]][[role green 1.08[br](99ns)]][[role green 1.00[br](92ns)]]] -[[SkewNormal (quantile)][[role blue 1.43[br](2218ns)]][[role green 1.04[br](1617ns)]][[role green 1.00[br](1548ns)]]] -[[StudentsT (CDF)][[role blue 1.30[br](461ns)]][[role green 1.05[br](371ns)]][[role green 1.00[br](355ns)]]] -[[StudentsT (PDF)][[role blue 1.30[br](219ns)]][[role green 1.00[br](169ns)]][[role green 1.11[br](187ns)]]] -[[StudentsT (quantile)][[role green 1.16[br](906ns)]][[role green 1.09[br](852ns)]][[role green 1.00[br](782ns)]]] -[[Weibull (CDF)][[role green 1.00[br](71ns)]][[role green 1.03[br](73ns)]][[role green 1.04[br](74ns)]]] -[[Weibull (PDF)][[role green 1.01[br](106ns)]][[role green 1.00[br](105ns)]][[role green 1.04[br](109ns)]]] -[[Weibull (quantile)][[role green 1.00[br](75ns)]][[role green 1.04[br](78ns)]][[role green 1.15[br](86ns)]]] +[[ArcSine (CDF)][[role blue 1.46[br](41ns)]][[role blue 1.46[br](41ns)]][[role green 1.00[br](28ns)]]] +[[ArcSine (PDF)][[role green 1.00[br](15ns)]][[role green 1.00[br](15ns)]][[role green 1.00[br](15ns)]]] +[[ArcSine (quantile)][[role green 1.00[br](19ns)]][[role green 1.00[br](19ns)]][[role green 1.05[br](20ns)]]] +[[Beta (CDF)][[role blue 1.70[br](190ns)]][[role blue 1.51[br](169ns)]][[role green 1.00[br](112ns)]]] +[[Beta (PDF)][[role blue 1.53[br](138ns)]][[role blue 1.53[br](138ns)]][[role green 1.00[br](90ns)]]] +[[Beta (quantile)][[role blue 1.74[br](1110ns)]][[role blue 1.34[br](853ns)]][[role green 1.00[br](638ns)]]] +[[Binomial (CDF)][[role red 2.22[br](677ns)]][[role blue 1.76[br](538ns)]][[role green 1.00[br](305ns)]]] +[[Binomial (PDF)][[role blue 1.49[br](180ns)]][[role blue 1.49[br](180ns)]][[role green 1.00[br](121ns)]]] +[[Binomial (quantile)][[role red 2.13[br](3120ns)]][[role blue 1.72[br](2516ns)]][[role green 1.00[br](1466ns)]]] +[[Cauchy (CDF)][[role green 1.19[br](32ns)]][[role green 1.19[br](32ns)]][[role green 1.00[br](27ns)]]] +[[Cauchy (PDF)][[role green 1.20[br](12ns)]][[role green 1.10[br](11ns)]][[role green 1.00[br](10ns)]]] +[[Cauchy (quantile)][[role green 1.05[br](22ns)]][[role green 1.05[br](22ns)]][[role green 1.00[br](21ns)]]] +[[ChiSquared (CDF)][[role red 2.01[br](265ns)]][[role blue 1.67[br](221ns)]][[role green 1.00[br](132ns)]]] +[[ChiSquared (PDF)][[role blue 1.94[br](126ns)]][[role blue 1.85[br](120ns)]][[role green 1.00[br](65ns)]]] +[[ChiSquared (quantile)][[role red 2.02[br](722ns)]][[role blue 1.51[br](541ns)]][[role green 1.00[br](358ns)]]] +[[Exponential (CDF)][[role green 1.07[br](16ns)]][[role green 1.07[br](16ns)]][[role green 1.00[br](15ns)]]] +[[Exponential (PDF)][[role green 1.00[br](15ns)]][[role green 1.00[br](15ns)]][[role green 1.00[br](15ns)]]] +[[Exponential (quantile)][[role green 1.00[br](20ns)]][[role green 1.00[br](20ns)]][[role green 1.05[br](21ns)]]] +[[ExtremeValue (CDF)][[role blue 1.48[br](40ns)]][[role blue 1.48[br](40ns)]][[role green 1.00[br](27ns)]]] +[[ExtremeValue (PDF)][[role blue 1.52[br](41ns)]][[role blue 1.52[br](41ns)]][[role green 1.00[br](27ns)]]] +[[ExtremeValue (quantile)][[role green 1.15[br](31ns)]][[role green 1.19[br](32ns)]][[role green 1.00[br](27ns)]]] +[[F (CDF)][[role red 2.25[br](610ns)]][[role blue 1.77[br](480ns)]][[role green 1.00[br](271ns)]]] +[[F (PDF)][[role blue 1.48[br](181ns)]][[role blue 1.48[br](181ns)]][[role green 1.00[br](122ns)]]] +[[F (quantile)][[role blue 1.35[br](1427ns)]][[role green 1.18[br](1246ns)]][[role green 1.00[br](1060ns)]]] +[[Gamma (CDF)][[role blue 1.68[br](244ns)]][[role blue 1.46[br](211ns)]][[role green 1.00[br](145ns)]]] +[[Gamma (PDF)][[role blue 1.82[br](153ns)]][[role blue 1.69[br](142ns)]][[role green 1.00[br](84ns)]]] +[[Gamma (quantile)][[role red 2.11[br](819ns)]][[role blue 1.43[br](556ns)]][[role green 1.00[br](389ns)]]] +[[Geometric (CDF)][[role green 1.05[br](22ns)]][[role green 1.05[br](22ns)]][[role green 1.00[br](21ns)]]] +[[Geometric (PDF)][[role blue 1.56[br](25ns)]][[role blue 1.56[br](25ns)]][[role green 1.00[br](16ns)]]] +[[Geometric (quantile)][[role green 1.00[br](21ns)]][[role green 1.00[br](21ns)]][[role green 1.05[br](22ns)]]] +[[Hypergeometric (CDF)][[role green 1.07[br](6512ns)]][[role green 1.07[br](6498ns)]][[role green 1.00[br](6076ns)]]] +[[Hypergeometric (PDF)][[role green 1.02[br](6361ns)]][[role green 1.01[br](6280ns)]][[role green 1.00[br](6232ns)]]] +[[Hypergeometric (quantile)][[role green 1.17[br](45380ns)]][[role green 1.18[br](45474ns)]][[role green 1.00[br](38659ns)]]] +[[InverseChiSquared (CDF)][[role red 2.27[br](256ns)]][[role blue 1.77[br](200ns)]][[role green 1.00[br](113ns)]]] +[[InverseChiSquared (PDF)][[role blue 1.92[br](144ns)]][[role blue 1.83[br](137ns)]][[role green 1.00[br](75ns)]]] +[[InverseChiSquared (quantile)][[role red 2.06[br](737ns)]][[role blue 1.57[br](562ns)]][[role green 1.00[br](358ns)]]] +[[InverseGamma (CDF)][[role blue 1.62[br](241ns)]][[role blue 1.40[br](209ns)]][[role green 1.00[br](149ns)]]] +[[InverseGamma (PDF)][[role blue 1.89[br](161ns)]][[role blue 1.78[br](151ns)]][[role green 1.00[br](85ns)]]] +[[InverseGamma (quantile)][[role red 2.03[br](820ns)]][[role blue 1.38[br](557ns)]][[role green 1.00[br](404ns)]]] +[[InverseGaussian (CDF)][[role green 1.13[br](62ns)]][[role green 1.13[br](62ns)]][[role green 1.00[br](55ns)]]] +[[InverseGaussian (PDF)][[role green 1.14[br](16ns)]][[role blue 1.21[br](17ns)]][[role green 1.00[br](14ns)]]] +[[InverseGaussian (quantile)][[role blue 1.29[br](1126ns)]][[role green 1.20[br](1045ns)]][[role green 1.00[br](872ns)]]] +[[Laplace (CDF)][[role blue 1.22[br](22ns)]][[role blue 1.22[br](22ns)]][[role green 1.00[br](18ns)]]] +[[Laplace (PDF)][[role blue 1.44[br](23ns)]][[role blue 1.44[br](23ns)]][[role green 1.00[br](16ns)]]] +[[Laplace (quantile)][[role green 1.00[br](18ns)]][[role green 1.06[br](19ns)]][[role green 1.06[br](19ns)]]] +[[LogNormal (CDF)][[role blue 1.39[br](53ns)]][[role blue 1.39[br](53ns)]][[role green 1.00[br](38ns)]]] +[[LogNormal (PDF)][[role green 1.20[br](42ns)]][[role green 1.20[br](42ns)]][[role green 1.00[br](35ns)]]] +[[LogNormal (quantile)][[role blue 1.28[br](82ns)]][[role blue 1.28[br](82ns)]][[role green 1.00[br](64ns)]]] +[[Logistic (CDF)][[role blue 1.47[br](25ns)]][[role blue 1.47[br](25ns)]][[role green 1.00[br](17ns)]]] +[[Logistic (PDF)][[role green 1.16[br](29ns)]][[role green 1.16[br](29ns)]][[role green 1.00[br](25ns)]]] +[[Logistic (quantile)][[role green 1.05[br](20ns)]][[role green 1.16[br](22ns)]][[role green 1.00[br](19ns)]]] +[[NegativeBinomial (CDF)][[role red 2.49[br](1084ns)]][[role blue 1.88[br](816ns)]][[role green 1.00[br](435ns)]]] +[[NegativeBinomial (PDF)][[role blue 1.44[br](192ns)]][[role blue 1.46[br](194ns)]][[role green 1.00[br](133ns)]]] +[[NegativeBinomial (quantile)][[role blue 1.49[br](5335ns)]][[role green 1.16[br](4177ns)]][[role green 1.00[br](3586ns)]]] +[[NonCentralBeta (CDF)][[role red 2.57[br](1419ns)]][[role red 2.16[br](1192ns)]][[role green 1.00[br](553ns)]]] +[[NonCentralBeta (PDF)][[role red 2.62[br](1174ns)]][[role red 2.23[br](999ns)]][[role green 1.00[br](448ns)]]] +[[NonCentralBeta (quantile)][[role red 3.28[br](28747ns)]][[role red 2.69[br](23615ns)]][[role green 1.00[br](8773ns)]]] +[[NonCentralChiSquared (CDF)][[role red 2.54[br](4599ns)]][[role red 2.01[br](3636ns)]][[role green 1.00[br](1811ns)]]] +[[NonCentralChiSquared (PDF)][[role blue 1.60[br](608ns)]][[role blue 1.46[br](554ns)]][[role green 1.00[br](379ns)]]] +[[NonCentralChiSquared (quantile)][[role red 3.52[br](26938ns)]][[role red 2.43[br](18578ns)]][[role green 1.00[br](7659ns)]]] +[[NonCentralF (CDF)][[role red 2.36[br](1361ns)]][[role blue 1.98[br](1143ns)]][[role green 1.00[br](576ns)]]] +[[NonCentralF (PDF)][[role red 2.33[br](1071ns)]][[role red 2.08[br](953ns)]][[role green 1.00[br](459ns)]]] +[[NonCentralF (quantile)][[role red 2.75[br](20229ns)]][[role red 2.12[br](15571ns)]][[role green 1.00[br](7354ns)]]] +[[NonCentralT (CDF)][[role red 2.59[br](6005ns)]][[role red 2.07[br](4811ns)]][[role green 1.00[br](2319ns)]]] +[[NonCentralT (PDF)][[role red 2.56[br](4573ns)]][[role red 2.16[br](3851ns)]][[role green 1.00[br](1785ns)]]] +[[NonCentralT (quantile)][[role red 2.84[br](55147ns)]][[role red 2.00[br](38893ns)]][[role green 1.00[br](19411ns)]]] +[[Normal (CDF)][[role blue 1.27[br](33ns)]][[role blue 1.27[br](33ns)]][[role green 1.00[br](26ns)]]] +[[Normal (PDF)][[role blue 1.36[br](30ns)]][[role blue 1.32[br](29ns)]][[role green 1.00[br](22ns)]]] +[[Normal (quantile)][[role green 1.06[br](38ns)]][[role green 1.11[br](40ns)]][[role green 1.00[br](36ns)]]] +[[Pareto (CDF)][[role blue 1.31[br](42ns)]][[role blue 1.34[br](43ns)]][[role green 1.00[br](32ns)]]] +[[Pareto (PDF)][[role blue 1.51[br](106ns)]][[role blue 1.46[br](102ns)]][[role green 1.00[br](70ns)]]] +[[Pareto (quantile)][[role blue 1.40[br](42ns)]][[role blue 1.47[br](44ns)]][[role green 1.00[br](30ns)]]] +[[Poisson (CDF)][[role blue 1.74[br](120ns)]][[role blue 1.54[br](106ns)]][[role green 1.00[br](69ns)]]] +[[Poisson (PDF)][[role blue 1.84[br](81ns)]][[role blue 1.77[br](78ns)]][[role green 1.00[br](44ns)]]] +[[Poisson (quantile)][[role blue 1.61[br](593ns)]][[role blue 1.44[br](533ns)]][[role green 1.00[br](369ns)]]] +[[Rayleigh (CDF)][[role green 1.11[br](20ns)]][[role green 1.17[br](21ns)]][[role green 1.00[br](18ns)]]] +[[Rayleigh (PDF)][[role blue 1.24[br](21ns)]][[role blue 1.24[br](21ns)]][[role green 1.00[br](17ns)]]] +[[Rayleigh (quantile)][[role green 1.00[br](24ns)]][[role green 1.00[br](24ns)]][[role green 1.08[br](26ns)]]] +[[SkewNormal (CDF)][[role green 1.03[br](226ns)]][[role green 1.04[br](228ns)]][[role green 1.00[br](220ns)]]] +[[SkewNormal (PDF)][[role green 1.18[br](80ns)]][[role green 1.18[br](80ns)]][[role green 1.00[br](68ns)]]] +[[SkewNormal (quantile)][[role blue 1.49[br](2017ns)]][[role green 1.07[br](1441ns)]][[role green 1.00[br](1352ns)]]] +[[StudentsT (CDF)][[role blue 1.96[br](442ns)]][[role blue 1.87[br](421ns)]][[role green 1.00[br](225ns)]]] +[[StudentsT (PDF)][[role blue 1.77[br](207ns)]][[role blue 1.79[br](210ns)]][[role green 1.00[br](117ns)]]] +[[StudentsT (quantile)][[role blue 1.65[br](824ns)]][[role blue 1.62[br](806ns)]][[role green 1.00[br](499ns)]]] +[[Weibull (CDF)][[role blue 1.42[br](71ns)]][[role blue 1.42[br](71ns)]][[role green 1.00[br](50ns)]]] +[[Weibull (PDF)][[role blue 1.77[br](115ns)]][[role blue 1.78[br](116ns)]][[role green 1.00[br](65ns)]]] +[[Weibull (quantile)][[role blue 1.31[br](67ns)]][[role blue 1.37[br](70ns)]][[role green 1.00[br](51ns)]]] ] ] -[template table_Distribution_performance_comparison_with_Microsoft_Visual_C_version_14_0_on_Win32[] -[table:table_Distribution_performance_comparison_with_Microsoft_Visual_C_version_14_0_on_Win32 Distribution performance comparison with Microsoft Visual C++ version 14.0 on Win32 +[template table_Distribution_performance_comparison_with_Microsoft_Visual_C_version_14_0_on_Windows_x64[] +[table:table_Distribution_performance_comparison_with_Microsoft_Visual_C_version_14_0_on_Windows_x64 Distribution performance comparison with Microsoft Visual C++ version 14.0 on Windows x64 [[Function][boost 1.59][DCDFLIB]] -[[ArcSine (CDF)][[role green 1.00[br](53ns)]][[role grey -]]] -[[ArcSine (PDF)][[role green 1.00[br](31ns)]][[role grey -]]] -[[ArcSine (quantile)][[role green 1.00[br](48ns)]][[role grey -]]] -[[Beta (CDF)][[role green 1.00[br](198ns)]][[role blue 1.92[br](381ns)]]] -[[Beta (PDF)][[role green 1.00[br](174ns)]][[role grey -]]] -[[Beta (quantile)][[role green 1.00[br](1123ns)]][[role red 7.11[br](7984ns)]]] -[[Binomial (CDF)][[role green 1.00[br](652ns)]][[role green 1.19[br](779ns)]]] -[[Binomial (PDF)][[role green 1.00[br](201ns)]][[role grey -]]] -[[Binomial (quantile)][[role green 1.00[br](3028ns)]][[role red 4.18[br](12652ns)]]] -[[Cauchy (CDF)][[role green 1.00[br](34ns)]][[role grey -]]] -[[Cauchy (PDF)][[role green 1.00[br](13ns)]][[role grey -]]] -[[Cauchy (quantile)][[role green 1.00[br](39ns)]][[role grey -]]] -[[ChiSquared (CDF)][[role blue 1.36[br](243ns)]][[role green 1.00[br](179ns)]]] -[[ChiSquared (PDF)][[role green 1.00[br](137ns)]][[role grey -]]] -[[ChiSquared (quantile)][[role green 1.00[br](674ns)]][[role red 6.89[br](4646ns)]]] -[[Exponential (CDF)][[role green 1.00[br](22ns)]][[role grey -]]] -[[Exponential (PDF)][[role green 1.00[br](17ns)]][[role grey -]]] -[[Exponential (quantile)][[role green 1.00[br](28ns)]][[role grey -]]] -[[ExtremeValue (CDF)][[role green 1.00[br](39ns)]][[role grey -]]] -[[ExtremeValue (PDF)][[role green 1.00[br](36ns)]][[role grey -]]] -[[ExtremeValue (quantile)][[role green 1.00[br](36ns)]][[role grey -]]] -[[F (CDF)][[role green 1.00[br](575ns)]][[role green 1.10[br](630ns)]]] -[[F (PDF)][[role green 1.00[br](222ns)]][[role grey -]]] -[[F (quantile)][[role green 1.00[br](1439ns)]][[role red 6.77[br](9744ns)]]] -[[Gamma (CDF)][[role blue 1.28[br](239ns)]][[role green 1.00[br](187ns)]]] -[[Gamma (PDF)][[role green 1.00[br](169ns)]][[role grey -]]] -[[Gamma (quantile)][[role blue 1.23[br](782ns)]][[role green 1.00[br](635ns)]]] -[[Geometric (CDF)][[role green 1.00[br](29ns)]][[role grey -]]] -[[Geometric (PDF)][[role green 1.00[br](28ns)]][[role grey -]]] -[[Geometric (quantile)][[role green 1.00[br](27ns)]][[role grey -]]] -[[Hypergeometric (CDF)][[role green 1.00[br](5986ns)]][[role grey -]]] -[[Hypergeometric (PDF)][[role green 1.00[br](5702ns)]][[role grey -]]] -[[Hypergeometric (quantile)][[role green 1.00[br](41147ns)]][[role grey -]]] -[[InverseChiSquared (CDF)][[role green 1.00[br](239ns)]][[role grey -]]] -[[InverseChiSquared (PDF)][[role green 1.00[br](159ns)]][[role grey -]]] -[[InverseChiSquared (quantile)][[role green 1.00[br](681ns)]][[role grey -]]] -[[InverseGamma (CDF)][[role green 1.00[br](247ns)]][[role grey -]]] -[[InverseGamma (PDF)][[role green 1.00[br](174ns)]][[role grey -]]] -[[InverseGamma (quantile)][[role green 1.00[br](791ns)]][[role grey -]]] -[[InverseGaussian (CDF)][[role green 1.00[br](24ns)]][[role grey -]]] -[[InverseGaussian (PDF)][[role green 1.00[br](23ns)]][[role grey -]]] -[[InverseGaussian (quantile)][[role green 1.00[br](54ns)]][[role grey -]]] -[[Laplace (CDF)][[role green 1.00[br](24ns)]][[role grey -]]] -[[Laplace (PDF)][[role green 1.00[br](25ns)]][[role grey -]]] -[[Laplace (quantile)][[role green 1.00[br](25ns)]][[role grey -]]] -[[LogNormal (CDF)][[role green 1.00[br](57ns)]][[role grey -]]] -[[LogNormal (PDF)][[role green 1.00[br](44ns)]][[role grey -]]] -[[LogNormal (quantile)][[role green 1.00[br](89ns)]][[role grey -]]] -[[Logistic (CDF)][[role green 1.00[br](24ns)]][[role grey -]]] -[[Logistic (PDF)][[role green 1.00[br](28ns)]][[role grey -]]] -[[Logistic (quantile)][[role green 1.00[br](25ns)]][[role grey -]]] -[[NegativeBinomial (CDF)][[role blue 1.27[br](1016ns)]][[role green 1.00[br](800ns)]]] -[[NegativeBinomial (PDF)][[role green 1.00[br](225ns)]][[role grey -]]] -[[NegativeBinomial (quantile)][[role green 1.00[br](5096ns)]][[role red 3.20[br](16312ns)]]] -[[NonCentralBeta (CDF)][[role green 1.00[br](1338ns)]][[role grey -]]] -[[NonCentralBeta (PDF)][[role green 1.00[br](1117ns)]][[role grey -]]] -[[NonCentralBeta (quantile)][[role green 1.00[br](27297ns)]][[role grey -]]] -[[NonCentralChiSquared (CDF)][[role red 8.32[br](4327ns)]][[role green 1.00[br](520ns)]]] -[[NonCentralChiSquared (PDF)][[role green 1.00[br](634ns)]][[role grey -]]] -[[NonCentralChiSquared (quantile)][[role red 2.01[br](25464ns)]][[role green 1.00[br](12648ns)]]] -[[NonCentralF (CDF)][[role green 1.00[br](1277ns)]][[role green 1.16[br](1487ns)]]] -[[NonCentralF (PDF)][[role green 1.00[br](1035ns)]][[role grey -]]] -[[NonCentralF (quantile)][[role green 1.14[br](19129ns)]][[role green 1.00[br](16788ns)]]] -[[NonCentralT (CDF)][[role blue 1.61[br](5448ns)]][[role green 1.00[br](3379ns)]]] -[[NonCentralT (PDF)][[role green 1.00[br](4265ns)]][[role grey -]]] -[[NonCentralT (quantile)][[role green 1.00[br](51902ns)]][[role green 1.02[br](52860ns)]]] -[[Normal (CDF)][[role green 1.00[br](35ns)]][[role red 3.97[br](139ns)]]] -[[Normal (PDF)][[role green 1.00[br](28ns)]][[role grey -]]] -[[Normal (quantile)][[role green 1.00[br](59ns)]][[role red 6.36[br](375ns)]]] -[[Pareto (CDF)][[role green 1.00[br](62ns)]][[role grey -]]] -[[Pareto (PDF)][[role green 1.00[br](106ns)]][[role grey -]]] -[[Pareto (quantile)][[role green 1.00[br](61ns)]][[role grey -]]] -[[Poisson (CDF)][[role green 1.00[br](113ns)]][[role blue 1.40[br](158ns)]]] -[[Poisson (PDF)][[role green 1.00[br](81ns)]][[role grey -]]] -[[Poisson (quantile)][[role green 1.00[br](600ns)]][[role red 4.32[br](2589ns)]]] -[[Rayleigh (CDF)][[role green 1.00[br](25ns)]][[role grey -]]] -[[Rayleigh (PDF)][[role green 1.00[br](24ns)]][[role grey -]]] -[[Rayleigh (quantile)][[role green 1.00[br](31ns)]][[role grey -]]] -[[SkewNormal (CDF)][[role green 1.00[br](248ns)]][[role grey -]]] -[[SkewNormal (PDF)][[role green 1.00[br](101ns)]][[role grey -]]] -[[SkewNormal (quantile)][[role green 1.00[br](2218ns)]][[role grey -]]] -[[StudentsT (CDF)][[role blue 1.25[br](461ns)]][[role green 1.00[br](368ns)]]] -[[StudentsT (PDF)][[role green 1.00[br](219ns)]][[role grey -]]] -[[StudentsT (quantile)][[role green 1.00[br](906ns)]][[role red 3.43[br](3109ns)]]] -[[Weibull (CDF)][[role green 1.00[br](71ns)]][[role grey -]]] -[[Weibull (PDF)][[role green 1.00[br](106ns)]][[role grey -]]] -[[Weibull (quantile)][[role green 1.00[br](75ns)]][[role grey -]]] +[[ArcSine (CDF)][[role green 1.00[br](41ns)]][]] +[[ArcSine (PDF)][[role green 1.00[br](15ns)]][]] +[[ArcSine (quantile)][[role green 1.00[br](19ns)]][]] +[[Beta (CDF)][[role green 1.00[br](190ns)]][[role red 2.15[br](408ns)]]] +[[Beta (PDF)][[role green 1.00[br](138ns)]][]] +[[Beta (quantile)][[role green 1.00[br](1110ns)]][[role red 7.39[br](8200ns)]]] +[[Binomial (CDF)][[role green 1.00[br](677ns)]][[role blue 1.22[br](824ns)]]] +[[Binomial (PDF)][[role green 1.00[br](180ns)]][]] +[[Binomial (quantile)][[role green 1.00[br](3120ns)]][[role red 4.40[br](13720ns)]]] +[[Cauchy (CDF)][[role green 1.00[br](32ns)]][]] +[[Cauchy (PDF)][[role green 1.00[br](12ns)]][]] +[[Cauchy (quantile)][[role green 1.00[br](22ns)]][]] +[[ChiSquared (CDF)][[role blue 1.35[br](265ns)]][[role green 1.00[br](196ns)]]] +[[ChiSquared (PDF)][[role green 1.00[br](126ns)]][]] +[[ChiSquared (quantile)][[role green 1.00[br](722ns)]][[role red 6.93[br](5002ns)]]] +[[Exponential (CDF)][[role green 1.00[br](16ns)]][]] +[[Exponential (PDF)][[role green 1.00[br](15ns)]][]] +[[Exponential (quantile)][[role green 1.00[br](20ns)]][]] +[[ExtremeValue (CDF)][[role green 1.00[br](40ns)]][]] +[[ExtremeValue (PDF)][[role green 1.00[br](41ns)]][]] +[[ExtremeValue (quantile)][[role green 1.00[br](31ns)]][]] +[[F (CDF)][[role green 1.00[br](610ns)]][[role green 1.09[br](662ns)]]] +[[F (PDF)][[role green 1.00[br](181ns)]][]] +[[F (quantile)][[role green 1.00[br](1427ns)]][[role red 7.19[br](10254ns)]]] +[[Gamma (CDF)][[role green 1.17[br](244ns)]][[role green 1.00[br](209ns)]]] +[[Gamma (PDF)][[role green 1.00[br](153ns)]][]] +[[Gamma (quantile)][[role green 1.10[br](819ns)]][[role green 1.00[br](742ns)]]] +[[Geometric (CDF)][[role green 1.00[br](22ns)]][]] +[[Geometric (PDF)][[role green 1.00[br](25ns)]][]] +[[Geometric (quantile)][[role green 1.00[br](21ns)]][]] +[[Hypergeometric (CDF)][[role green 1.00[br](6512ns)]][]] +[[Hypergeometric (PDF)][[role green 1.00[br](6361ns)]][]] +[[Hypergeometric (quantile)][[role green 1.00[br](45380ns)]][]] +[[InverseChiSquared (CDF)][[role green 1.00[br](256ns)]][]] +[[InverseChiSquared (PDF)][[role green 1.00[br](144ns)]][]] +[[InverseChiSquared (quantile)][[role green 1.00[br](737ns)]][]] +[[InverseGamma (CDF)][[role green 1.00[br](241ns)]][]] +[[InverseGamma (PDF)][[role green 1.00[br](161ns)]][]] +[[InverseGamma (quantile)][[role green 1.00[br](820ns)]][]] +[[InverseGaussian (CDF)][[role green 1.00[br](62ns)]][]] +[[InverseGaussian (PDF)][[role green 1.00[br](16ns)]][]] +[[InverseGaussian (quantile)][[role green 1.00[br](1126ns)]][]] +[[Laplace (CDF)][[role green 1.00[br](22ns)]][]] +[[Laplace (PDF)][[role green 1.00[br](23ns)]][]] +[[Laplace (quantile)][[role green 1.00[br](18ns)]][]] +[[LogNormal (CDF)][[role green 1.00[br](53ns)]][]] +[[LogNormal (PDF)][[role green 1.00[br](42ns)]][]] +[[LogNormal (quantile)][[role green 1.00[br](82ns)]][]] +[[Logistic (CDF)][[role green 1.00[br](25ns)]][]] +[[Logistic (PDF)][[role green 1.00[br](29ns)]][]] +[[Logistic (quantile)][[role green 1.00[br](20ns)]][]] +[[NegativeBinomial (CDF)][[role blue 1.25[br](1084ns)]][[role green 1.00[br](869ns)]]] +[[NegativeBinomial (PDF)][[role green 1.00[br](192ns)]][]] +[[NegativeBinomial (quantile)][[role green 1.00[br](5335ns)]][[role red 3.23[br](17240ns)]]] +[[NonCentralBeta (CDF)][[role green 1.00[br](1419ns)]][]] +[[NonCentralBeta (PDF)][[role green 1.00[br](1174ns)]][]] +[[NonCentralBeta (quantile)][[role green 1.00[br](28747ns)]][]] +[[NonCentralChiSquared (CDF)][[role red 7.98[br](4599ns)]][[role green 1.00[br](576ns)]]] +[[NonCentralChiSquared (PDF)][[role green 1.00[br](608ns)]][]] +[[NonCentralChiSquared (quantile)][[role blue 1.97[br](26938ns)]][[role green 1.00[br](13674ns)]]] +[[NonCentralF (CDF)][[role green 1.00[br](1361ns)]][[role green 1.15[br](1562ns)]]] +[[NonCentralF (PDF)][[role green 1.00[br](1071ns)]][]] +[[NonCentralF (quantile)][[role green 1.08[br](20229ns)]][[role green 1.00[br](18687ns)]]] +[[NonCentralT (CDF)][[role blue 1.63[br](6005ns)]][[role green 1.00[br](3694ns)]]] +[[NonCentralT (PDF)][[role green 1.00[br](4573ns)]][]] +[[NonCentralT (quantile)][[role green 1.02[br](55147ns)]][[role green 1.00[br](54180ns)]]] +[[Normal (CDF)][[role green 1.00[br](33ns)]][[role red 4.88[br](161ns)]]] +[[Normal (PDF)][[role blue 1.00[br](30ns)]][]] +[[Normal (quantile)][[role green 1.00[br](38ns)]][[role red 11.32[br](430ns)]]] +[[Pareto (CDF)][[role green 1.00[br](42ns)]][]] +[[Pareto (PDF)][[role green 1.00[br](106ns)]][]] +[[Pareto (quantile)][[role green 1.00[br](42ns)]][]] +[[Poisson (CDF)][[role green 1.00[br](120ns)]][[role blue 1.43[br](172ns)]]] +[[Poisson (PDF)][[role green 1.00[br](81ns)]][]] +[[Poisson (quantile)][[role green 1.00[br](593ns)]][[role red 4.64[br](2750ns)]]] +[[Rayleigh (CDF)][[role green 1.00[br](20ns)]][]] +[[Rayleigh (PDF)][[role green 1.00[br](21ns)]][]] +[[Rayleigh (quantile)][[role green 1.00[br](24ns)]][]] +[[SkewNormal (CDF)][[role green 1.00[br](226ns)]][]] +[[SkewNormal (PDF)][[role green 1.00[br](80ns)]][]] +[[SkewNormal (quantile)][[role green 1.00[br](2017ns)]][]] +[[StudentsT (CDF)][[role green 1.08[br](442ns)]][[role green 1.00[br](409ns)]]] +[[StudentsT (PDF)][[role green 1.00[br](207ns)]][]] +[[StudentsT (quantile)][[role green 1.00[br](824ns)]][[role red 4.17[br](3436ns)]]] +[[Weibull (CDF)][[role green 1.00[br](71ns)]][]] +[[Weibull (PDF)][[role green 1.00[br](115ns)]][]] +[[Weibull (quantile)][[role green 1.00[br](67ns)]][]] +] +] + +[template table_Compiler_Comparison_on_Windows_x64[] +[table:table_Compiler_Comparison_on_Windows_x64 Compiler Comparison on Windows x64 +[[Function][Microsoft Visual C++ version 14.0[br]boost 1.59][Intel C++ C++0x mode version 1500[br]boost 1.59][GNU C++ version 4.9.2[br]boost 1.59][GNU C++ version 4.9.2[br]boost 1.59[br]promote_double]] +[[assoc_laguerre][[role green 1.16[br](213ns)]][[role green 1.00[br](183ns)]][[role blue 1.26[br](230ns)]][[role green 1.10[br](202ns)]]] +[[assoc_legendre][[role blue 1.52[br](146ns)]][[role green 1.00[br](96ns)]][[role blue 1.92[br](184ns)]][[role blue 1.22[br](117ns)]]] +[[beta][[role blue 1.34[br](155ns)]][[role green 1.00[br](116ns)]][[role red 3.57[br](414ns)]][[role blue 2.00[br](232ns)]]] +[[beta (incomplete)][[role blue 1.35[br](501ns)]][[role green 1.00[br](371ns)]][[role red 3.11[br](1152ns)]][[role blue 1.77[br](656ns)]]] +[[cbrt][[role red 3.00[br](45ns)]][[role green 1.00[br](15ns)]][[role red 3.33[br](50ns)]][[role red 3.00[br](45ns)]]] +[[cyl_bessel_i][[role green 1.14[br](405ns)]][[role green 1.00[br](355ns)]][[role red 3.09[br](1098ns)]][[role blue 1.26[br](448ns)]]] +[[cyl_bessel_i (integer order)][[role blue 1.33[br](269ns)]][[role green 1.00[br](203ns)]][[role red 3.37[br](685ns)]][[role blue 1.21[br](246ns)]]] +[[cyl_bessel_j][[role green 1.17[br](484ns)]][[role green 1.00[br](414ns)]][[role red 2.02[br](836ns)]][[role blue 1.23[br](510ns)]]] +[[cyl_bessel_j (integer order)][[role blue 1.50[br](111ns)]][[role green 1.00[br](74ns)]][[role red 2.34[br](173ns)]][[role blue 1.27[br](94ns)]]] +[[cyl_bessel_k][[role green 1.15[br](764ns)]][[role green 1.00[br](664ns)]][[role red 10.10[br](6705ns)]][[role green 1.15[br](761ns)]]] +[[cyl_bessel_k (integer order)][[role green 1.18[br](409ns)]][[role green 1.00[br](346ns)]][[role red 10.86[br](3758ns)]][[role green 1.08[br](372ns)]]] +[[cyl_neumann][[role red 16.33[br](11185ns)]][[role red 15.16[br](10382ns)]][[role red 2.11[br](1443ns)]][[role green 1.00[br](685ns)]]] +[[cyl_neumann (integer order)][[role green 1.12[br](293ns)]][[role green 1.00[br](262ns)]][[role blue 1.99[br](522ns)]][[role blue 1.33[br](349ns)]]] +[[digamma][[role blue 1.24[br](26ns)]][[role green 1.00[br](21ns)]][[role red 3.90[br](82ns)]][[role red 2.19[br](46ns)]]] +[[ellint_1][[role red 2.25[br](381ns)]][[role green 1.00[br](169ns)]][[role red 2.26[br](382ns)]][[role blue 1.51[br](256ns)]]] +[[ellint_1 (complete)][[role red 2.18[br](61ns)]][[role green 1.00[br](28ns)]][[role red 2.68[br](75ns)]][[role blue 1.71[br](48ns)]]] +[[ellint_2][[role blue 1.96[br](574ns)]][[role green 1.00[br](293ns)]][[role red 2.30[br](675ns)]][[role blue 1.60[br](469ns)]]] +[[ellint_2 (complete)][[role blue 1.84[br](57ns)]][[role green 1.00[br](31ns)]][[role red 2.13[br](66ns)]][[role green 1.06[br](33ns)]]] +[[ellint_3][[role blue 1.98[br](1186ns)]][[role green 1.00[br](598ns)]][[role red 3.14[br](1878ns)]][[role blue 1.68[br](1006ns)]]] +[[ellint_3 (complete)][[role blue 1.84[br](649ns)]][[role green 1.00[br](352ns)]][[role red 3.05[br](1075ns)]][[role blue 1.53[br](539ns)]]] +[[ellint_rc][[role blue 1.36[br](45ns)]][[role green 1.00[br](33ns)]][[role red 2.55[br](84ns)]][[role blue 1.52[br](50ns)]]] +[[ellint_rd][[role blue 1.77[br](341ns)]][[role green 1.00[br](193ns)]][[role blue 1.92[br](371ns)]][[role blue 1.39[br](268ns)]]] +[[ellint_rf][[role blue 1.48[br](65ns)]][[role green 1.00[br](44ns)]][[role red 2.41[br](106ns)]][[role blue 1.36[br](60ns)]]] +[[ellint_rj][[role blue 1.85[br](338ns)]][[role green 1.00[br](183ns)]][[role red 2.58[br](473ns)]][[role blue 1.42[br](260ns)]]] +[[erf][[role blue 1.45[br](16ns)]][[role green 1.00[br](11ns)]][[role red 3.36[br](37ns)]][[role red 2.27[br](25ns)]]] +[[erfc][[role blue 1.53[br](26ns)]][[role green 1.00[br](17ns)]][[role red 3.29[br](56ns)]][[role red 2.18[br](37ns)]]] +[[expint][[role green 1.08[br](28ns)]][[role green 1.00[br](26ns)]][[role red 3.46[br](90ns)]][[role red 2.27[br](59ns)]]] +[[expint (En)][[role green 1.06[br](115ns)]][[role green 1.00[br](109ns)]][[role red 2.06[br](224ns)]][[role blue 1.44[br](157ns)]]] +[[expm1][[role green 1.00[br](8ns)]][[role green 1.00[br](8ns)]][[role red 3.88[br](31ns)]][[role red 3.12[br](25ns)]]] +[[gamma_p][[role blue 1.20[br](183ns)]][[role green 1.00[br](152ns)]][[role red 2.70[br](411ns)]][[role blue 1.66[br](252ns)]]] +[[gamma_p_inv][[role blue 1.33[br](688ns)]][[role green 1.00[br](516ns)]][[role red 2.61[br](1345ns)]][[role blue 1.81[br](936ns)]]] +[[gamma_q][[role blue 1.25[br](188ns)]][[role green 1.00[br](150ns)]][[role red 2.71[br](406ns)]][[role blue 1.63[br](245ns)]]] +[[gamma_q_inv][[role blue 1.54[br](807ns)]][[role green 1.00[br](525ns)]][[role red 2.52[br](1323ns)]][[role blue 1.93[br](1013ns)]]] +[[ibeta][[role blue 1.29[br](519ns)]][[role green 1.00[br](402ns)]][[role red 3.10[br](1246ns)]][[role blue 1.87[br](751ns)]]] +[[ibeta_inv][[role blue 1.42[br](2114ns)]][[role green 1.00[br](1491ns)]][[role red 2.77[br](4130ns)]][[role blue 1.69[br](2513ns)]]] +[[ibetac][[role blue 1.39[br](578ns)]][[role green 1.00[br](416ns)]][[role red 2.88[br](1199ns)]][[role blue 1.76[br](732ns)]]] +[[ibetac_inv][[role blue 1.29[br](1936ns)]][[role green 1.00[br](1504ns)]][[role red 2.77[br](4159ns)]][[role blue 1.72[br](2584ns)]]] +[[jacobi_cn][[role green 1.18[br](181ns)]][[role green 1.00[br](154ns)]][[role red 3.66[br](564ns)]][[role red 2.07[br](319ns)]]] +[[jacobi_dn][[role blue 1.43[br](229ns)]][[role green 1.00[br](160ns)]][[role red 3.62[br](580ns)]][[role red 2.11[br](338ns)]]] +[[jacobi_sn][[role blue 1.46[br](217ns)]][[role green 1.00[br](149ns)]][[role red 3.37[br](502ns)]][[role blue 1.89[br](281ns)]]] +[[laguerre][[role green 1.09[br](130ns)]][[role green 1.00[br](119ns)]][[role blue 1.27[br](151ns)]][[role green 1.14[br](136ns)]]] +[[legendre][[role blue 1.21[br](413ns)]][[role green 1.13[br](388ns)]][[role blue 1.23[br](420ns)]][[role green 1.00[br](342ns)]]] +[[legendre Q][[role green 1.00[br](426ns)]][[role green 1.08[br](461ns)]][[role blue 1.27[br](543ns)]][[role green 1.07[br](456ns)]]] +[[lgamma][[role green 1.13[br](76ns)]][[role green 1.00[br](67ns)]][[role red 3.48[br](233ns)]][[role red 2.12[br](142ns)]]] +[[log1p][[role green 1.10[br](11ns)]][[role green 1.00[br](10ns)]][[role red 2.90[br](29ns)]][[role blue 1.70[br](17ns)]]] +[[polygamma][[role green 1.16[br](3867ns)]][[role green 1.00[br](3330ns)]][[role green 1.05[br](3493ns)]][[role red 2.39[br](7971ns)]]] +[[sph_bessel][[role blue 1.23[br](1033ns)]][[role green 1.00[br](842ns)]][[role blue 1.62[br](1360ns)]][[role green 1.17[br](983ns)]]] +[[sph_neumann][[role green 1.14[br](1805ns)]][[role green 1.00[br](1589ns)]][[role red 2.46[br](3903ns)]][[role green 1.13[br](1798ns)]]] +[[tgamma][[role blue 1.25[br](79ns)]][[role green 1.00[br](63ns)]][[role red 3.51[br](221ns)]][[role red 2.16[br](136ns)]]] +[[tgamma (incomplete)][[role green 1.15[br](252ns)]][[role green 1.00[br](220ns)]][[role red 2.58[br](567ns)]][[role blue 1.75[br](385ns)]]] +[[trigamma][[role blue 1.38[br](22ns)]][[role green 1.00[br](16ns)]][[role red 3.06[br](49ns)]][[role blue 1.81[br](29ns)]]] +[[zeta][[role blue 1.60[br](139ns)]][[role green 1.00[br](87ns)]][[role red 4.03[br](351ns)]][[role red 2.70[br](235ns)]]] ] ] -[template table_Library_Comparison_with_Microsoft_Visual_C_version_14_0_on_Win32[] -[table:table_Library_Comparison_with_Microsoft_Visual_C_version_14_0_on_Win32 Library Comparison with Microsoft Visual C++ version 14.0 on Win32 +[template table_Library_Comparison_with_Microsoft_Visual_C_version_14_0_on_Windows_x64[] +[table:table_Library_Comparison_with_Microsoft_Visual_C_version_14_0_on_Windows_x64 Library Comparison with Microsoft Visual C++ version 14.0 on Windows x64 [[Function][boost 1.59][math.h]] -[[cbrt[br](85/85 tests selected)][[role green 1.00[br](61ns)]][[role green 1.13[br](69ns)]]] -[[cyl_bessel_j (integer order)[br](267/268 tests selected)][[role green 1.00[br](95ns)]][[role red 2.18[br](207ns)]]] -[[cyl_bessel_j (integer order)[br](268/268 tests selected)][[role green 1.00[br](110ns)]][[role red 2.09[br](230ns)]]] -[[cyl_neumann (integer order)[br](428/428 tests selected)][[role blue 1.68[br](312ns)]][[role green 1.00[br](186ns)]]] -[[erf[br](950/950 tests selected)][[role green 1.00[br](14ns)]][[role blue 1.86[br](26ns)]]] -[[erfc[br](950/950 tests selected)][[role green 1.00[br](20ns)]][[role red 4.20[br](84ns)]]] -[[expm1[br](80/80 tests selected)][[role green 1.00[br](10ns)]][[role blue 1.30[br](13ns)]]] -[[lgamma[br](400/400 tests selected)][[role green 1.00[br](86ns)]][[role blue 1.71[br](147ns)]]] -[[log1p[br](80/80 tests selected)][[role green 1.00[br](11ns)]][[role blue 1.82[br](20ns)]]] -[[tgamma[br](400/400 tests selected)][[role green 1.00[br](84ns)]][[role red 11.00[br](924ns)]]] +[[assoc_laguerre[br](2240/2240 tests selected)][[role blue 1.00[br](213ns)]][]] +[[assoc_legendre[br](400/400 tests selected)][[role green 1.00[br](146ns)]][]] +[[beta (incomplete)[br](3210/3210 tests selected)][[role green 1.00[br](501ns)]][]] +[[beta[br](2202/2202 tests selected)][[role green 1.00[br](155ns)]][]] +[[cbrt[br](85/85 tests selected)][[role green 1.00[br](45ns)]][[role blue 1.49[br](67ns)]]] +[[cyl_bessel_i (integer order)[br](526/526 tests selected)][[role green 1.00[br](269ns)]][[role grey -]]] +[[cyl_bessel_i[br](240/240 tests selected)][[role green 1.00[br](405ns)]][[role grey -]]] +[[cyl_bessel_j (integer order)[br](267/268 tests selected)][[role green 1.00[br](111ns)]][[role blue 1.96[br](218ns)]]] +[[cyl_bessel_j[br](451/451 tests selected)][[role green 1.00[br](484ns)]][[role grey -]]] +[[cyl_bessel_k (integer order)[br](508/508 tests selected)][[role green 1.00[br](409ns)]][[role grey -]]] +[[cyl_bessel_k[br](279/279 tests selected)][[role green 1.00[br](764ns)]][[role grey -]]] +[[cyl_neumann (integer order)[br](428/428 tests selected)][[role blue 1.99[br](293ns)]][[role green 1.00[br](147ns)]]] +[[cyl_neumann[br](450/450 tests selected)][[role green 1.00[br](11185ns)]][[role grey -]]] +[[digamma[br](1019/1019 tests selected)][[role green 1.00[br](26ns)]][[role grey -]]] +[[ellint_1 (complete)[br](109/109 tests selected)][[role green 1.00[br](61ns)]][[role grey -]]] +[[ellint_1[br](629/629 tests selected)][[role green 1.00[br](381ns)]][[role grey -]]] +[[ellint_2 (complete)[br](110/110 tests selected)][[role green 1.00[br](57ns)]][[role grey -]]] +[[ellint_2[br](530/530 tests selected)][[role green 1.00[br](574ns)]][[role grey -]]] +[[ellint_3 (complete)[br](500/500 tests selected)][[role green 1.00[br](649ns)]][[role grey -]]] +[[ellint_3[br](845/845 tests selected)][[role green 1.00[br](1186ns)]][[role grey -]]] +[[ellint_rc[br](201/201 tests selected)][[role green 1.00[br](45ns)]][[role grey -]]] +[[ellint_rd[br](7588/7588 tests selected)][[role green 1.00[br](341ns)]][[role grey -]]] +[[ellint_rf[br](7788/7788 tests selected)][[role green 1.00[br](65ns)]][[role grey -]]] +[[ellint_rj[br](8032/8032 tests selected)][[role green 1.00[br](338ns)]][[role grey -]]] +[[erf[br](950/950 tests selected)][[role green 1.00[br](16ns)]][[role blue 1.44[br](23ns)]]] +[[erfc[br](950/950 tests selected)][[role green 1.00[br](26ns)]][[role red 2.46[br](64ns)]]] +[[expint (En)[br](1059/1059 tests selected)][[role green 1.00[br](115ns)]][[role grey -]]] +[[expint[br](436/436 tests selected)][[role green 1.00[br](28ns)]][[role grey -]]] +[[expm1[br](80/80 tests selected)][[role green 1.00[br](8ns)]][[role blue 1.63[br](13ns)]]] +[[gamma_p[br](1379/1379 tests selected)][[role green 1.00[br](183ns)]][[role grey -]]] +[[gamma_p_inv[br](559/559 tests selected)][[role green 1.00[br](688ns)]][[role grey -]]] +[[gamma_q[br](1379/1379 tests selected)][[role green 1.00[br](188ns)]][[role grey -]]] +[[gamma_q_inv[br](559/559 tests selected)][[role green 1.00[br](807ns)]][[role grey -]]] +[[ibeta[br](3210/3210 tests selected)][[role green 1.00[br](519ns)]][[role grey -]]] +[[ibeta_inv[br](1210/1210 tests selected)][[role green 1.00[br](2114ns)]][[role grey -]]] +[[ibetac[br](3210/3210 tests selected)][[role green 1.00[br](578ns)]][[role grey -]]] +[[ibetac_inv[br](1210/1210 tests selected)][[role green 1.00[br](1936ns)]][[role grey -]]] +[[jacobi_cn[br](2757/2757 tests selected)][[role green 1.00[br](181ns)]][[role grey -]]] +[[jacobi_dn[br](2757/2757 tests selected)][[role green 1.00[br](229ns)]][[role grey -]]] +[[jacobi_sn[br](2757/2757 tests selected)][[role green 1.00[br](217ns)]][[role grey -]]] +[[laguerre[br](280/280 tests selected)][[role green 1.00[br](130ns)]][[role grey -]]] +[[legendre Q[br](300/300 tests selected)][[role green 1.00[br](426ns)]][[role grey -]]] +[[legendre[br](300/300 tests selected)][[role green 1.00[br](413ns)]][[role grey -]]] +[[lgamma[br](400/400 tests selected)][[role green 1.00[br](76ns)]][[role blue 1.78[br](135ns)]]] +[[log1p[br](80/80 tests selected)][[role green 1.00[br](11ns)]][[role blue 1.73[br](19ns)]]] +[[polygamma[br](1535/1535 tests selected)][[role green 1.00[br](3867ns)]][[role grey -]]] +[[sph_bessel[br](483/483 tests selected)][[role green 1.00[br](1033ns)]][[role grey -]]] +[[sph_neumann[br](284/284 tests selected)][[role green 1.00[br](1805ns)]][[role grey -]]] +[[tgamma (incomplete)[br](1288/1379 tests selected)][[role green 1.00[br](252ns)]][[role grey -]]] +[[tgamma[br](400/400 tests selected)][[role green 1.00[br](79ns)]][[role red 11.90[br](940ns)]]] +[[trigamma[br](659/659 tests selected)][[role green 1.00[br](22ns)]][[role grey -]]] +[[zeta[br](448/448 tests selected)][[role green 1.00[br](139ns)]][[role grey -]]] ] ] [/sections:] -[template section_Rational_Method_Comparison_on_linux[] -[section:section_Rational_Method_Comparison_on_linux Rational Method Comparison on linux] -[table_Rational_Method_Comparison_on_linux] +[template section_Rational_Method_Comparison_with_GNU_C_version_4_9_2_on_Windows_x64[] +[section:section_Rational_Method_Comparison_with_GNU_C_version_4_9_2_on_Windows_x64 Rational Method Comparison with GNU C++ version 4.9.2 on Windows x64] +[table_Rational_Method_Comparison_with_GNU_C_version_4_9_2_on_Windows_x64] [endsect] ] -[template section_Polynomial_Method_Comparison_on_linux[] -[section:section_Polynomial_Method_Comparison_on_linux Polynomial Method Comparison on linux] -[table_Polynomial_Method_Comparison_on_linux] +[template section_Polynomial_Method_Comparison_with_GNU_C_version_4_9_2_on_Windows_x64[] +[section:section_Polynomial_Method_Comparison_with_GNU_C_version_4_9_2_on_Windows_x64 Polynomial Method Comparison with GNU C++ version 4.9.2 on Windows x64] +[table_Polynomial_Method_Comparison_with_GNU_C_version_4_9_2_on_Windows_x64] [endsect] ] -[template section_Rational_Method_Comparison_on_Win32[] -[section:section_Rational_Method_Comparison_on_Win32 Rational Method Comparison on Win32] -[table_Rational_Method_Comparison_on_Win32] +[template section_Distribution_performance_comparison_with_for_different_performance_options_with_GNU_C_version_4_9_2_on_Windows_x64[] +[section:section_Distribution_performance_comparison_with_for_different_performance_options_with_GNU_C_version_4_9_2_on_Windows_x64 Distribution performance comparison with for different performance options with GNU C++ version 4.9.2 on Windows x64] +[table_Distribution_performance_comparison_with_for_different_performance_options_with_GNU_C_version_4_9_2_on_Windows_x64] [endsect] ] -[template section_Polynomial_Method_Comparison_on_Win32[] -[section:section_Polynomial_Method_Comparison_on_Win32 Polynomial Method Comparison on Win32] -[table_Polynomial_Method_Comparison_on_Win32] +[template section_Distribution_performance_comparison_with_GNU_C_version_4_9_2_on_Windows_x64[] +[section:section_Distribution_performance_comparison_with_GNU_C_version_4_9_2_on_Windows_x64 Distribution performance comparison with GNU C++ version 4.9.2 on Windows x64] +[table_Distribution_performance_comparison_with_GNU_C_version_4_9_2_on_Windows_x64] [endsect] ] -[template section_Distribution_performance_comparison_with_for_different_performance_options_with_GNU_C_version_5_1_0_on_linux[] -[section:section_Distribution_performance_comparison_with_for_different_performance_options_with_GNU_C_version_5_1_0_on_linux Distribution performance comparison with for different performance options with GNU C++ version 5.1.0 on linux] -[table_Distribution_performance_comparison_with_for_different_performance_options_with_GNU_C_version_5_1_0_on_linux] +[template section_Library_Comparison_with_GNU_C_version_4_9_2_on_Windows_x64[] +[section:section_Library_Comparison_with_GNU_C_version_4_9_2_on_Windows_x64 Library Comparison with GNU C++ version 4.9.2 on Windows x64] +[table_Library_Comparison_with_GNU_C_version_4_9_2_on_Windows_x64] [endsect] ] -[template section_Distribution_performance_comparison_with_GNU_C_version_5_1_0_on_linux[] -[section:section_Distribution_performance_comparison_with_GNU_C_version_5_1_0_on_linux Distribution performance comparison with GNU C++ version 5.1.0 on linux] -[table_Distribution_performance_comparison_with_GNU_C_version_5_1_0_on_linux] +[template section_Distribution_performance_comparison_with_for_different_performance_options_with_Intel_C_C_0x_mode_version_1500_on_Windows_x64[] +[section:section_Distribution_performance_comparison_with_for_different_performance_options_with_Intel_C_C_0x_mode_version_1500_on_Windows_x64 Distribution performance comparison with for different performance options with Intel C++ C++0x mode version 1500 on Windows x64] +[table_Distribution_performance_comparison_with_for_different_performance_options_with_Intel_C_C_0x_mode_version_1500_on_Windows_x64] [endsect] ] -[template section_Library_Comparison_with_GNU_C_version_5_1_0_on_linux[] -[section:section_Library_Comparison_with_GNU_C_version_5_1_0_on_linux Library Comparison with GNU C++ version 5.1.0 on linux] -[table_Library_Comparison_with_GNU_C_version_5_1_0_on_linux] +[template section_Distribution_performance_comparison_with_Intel_C_C_0x_mode_version_1500_on_Windows_x64[] +[section:section_Distribution_performance_comparison_with_Intel_C_C_0x_mode_version_1500_on_Windows_x64 Distribution performance comparison with Intel C++ C++0x mode version 1500 on Windows x64] +[table_Distribution_performance_comparison_with_Intel_C_C_0x_mode_version_1500_on_Windows_x64] [endsect] ] -[template section_Compiler_Option_Comparison_on_Win32[] -[section:section_Compiler_Option_Comparison_on_Win32 Compiler Option Comparison on Win32] -[table_Compiler_Option_Comparison_on_Win32] +[template section_Rational_Method_Comparison_with_Intel_C_C_0x_mode_version_1500_on_Windows_x64[] +[section:section_Rational_Method_Comparison_with_Intel_C_C_0x_mode_version_1500_on_Windows_x64 Rational Method Comparison with Intel C++ C++0x mode version 1500 on Windows x64] +[table_Rational_Method_Comparison_with_Intel_C_C_0x_mode_version_1500_on_Windows_x64] [endsect] ] -[template section_Distribution_performance_comparison_with_for_different_performance_options_with_Microsoft_Visual_C_version_14_0_on_Win32[] -[section:section_Distribution_performance_comparison_with_for_different_performance_options_with_Microsoft_Visual_C_version_14_0_on_Win32 Distribution performance comparison with for different performance options with Microsoft Visual C++ version 14.0 on Win32] -[table_Distribution_performance_comparison_with_for_different_performance_options_with_Microsoft_Visual_C_version_14_0_on_Win32] +[template section_Polynomial_Method_Comparison_with_Intel_C_C_0x_mode_version_1500_on_Windows_x64[] +[section:section_Polynomial_Method_Comparison_with_Intel_C_C_0x_mode_version_1500_on_Windows_x64 Polynomial Method Comparison with Intel C++ C++0x mode version 1500 on Windows x64] +[table_Polynomial_Method_Comparison_with_Intel_C_C_0x_mode_version_1500_on_Windows_x64] [endsect] ] -[template section_Distribution_performance_comparison_with_Microsoft_Visual_C_version_14_0_on_Win32[] -[section:section_Distribution_performance_comparison_with_Microsoft_Visual_C_version_14_0_on_Win32 Distribution performance comparison with Microsoft Visual C++ version 14.0 on Win32] -[table_Distribution_performance_comparison_with_Microsoft_Visual_C_version_14_0_on_Win32] +[template section_Library_Comparison_with_Intel_C_C_0x_mode_version_1500_on_Windows_x64[] +[section:section_Library_Comparison_with_Intel_C_C_0x_mode_version_1500_on_Windows_x64 Library Comparison with Intel C++ C++0x mode version 1500 on Windows x64] +[table_Library_Comparison_with_Intel_C_C_0x_mode_version_1500_on_Windows_x64] +[endsect] +] + +[template section_Compiler_Option_Comparison_on_Windows_x64[] +[section:section_Compiler_Option_Comparison_on_Windows_x64 Compiler Option Comparison on Windows x64] +[table_Compiler_Option_Comparison_on_Windows_x64] +[endsect] +] + +[template section_Rational_Method_Comparison_with_Microsoft_Visual_C_version_14_0_on_Windows_x64[] +[section:section_Rational_Method_Comparison_with_Microsoft_Visual_C_version_14_0_on_Windows_x64 Rational Method Comparison with Microsoft Visual C++ version 14.0 on Windows x64] +[table_Rational_Method_Comparison_with_Microsoft_Visual_C_version_14_0_on_Windows_x64] +[endsect] +] + +[template section_Polynomial_Method_Comparison_with_Microsoft_Visual_C_version_14_0_on_Windows_x64[] +[section:section_Polynomial_Method_Comparison_with_Microsoft_Visual_C_version_14_0_on_Windows_x64 Polynomial Method Comparison with Microsoft Visual C++ version 14.0 on Windows x64] +[table_Polynomial_Method_Comparison_with_Microsoft_Visual_C_version_14_0_on_Windows_x64] +[endsect] +] + +[template section_Distribution_performance_comparison_with_for_different_performance_options_with_Microsoft_Visual_C_version_14_0_on_Windows_x64[] +[section:section_Distribution_performance_comparison_with_for_different_performance_options_with_Microsoft_Visual_C_version_14_0_on_Windows_x64 Distribution performance comparison with for different performance options with Microsoft Visual C++ version 14.0 on Windows x64] +[table_Distribution_performance_comparison_with_for_different_performance_options_with_Microsoft_Visual_C_version_14_0_on_Windows_x64] +[endsect] +] + +[template section_Distribution_performance_comparison_with_Microsoft_Visual_C_version_14_0_on_Windows_x64[] +[section:section_Distribution_performance_comparison_with_Microsoft_Visual_C_version_14_0_on_Windows_x64 Distribution performance comparison with Microsoft Visual C++ version 14.0 on Windows x64] +[table_Distribution_performance_comparison_with_Microsoft_Visual_C_version_14_0_on_Windows_x64] +[endsect] +] + +[template section_Compiler_Comparison_on_Windows_x64[] +[section:section_Compiler_Comparison_on_Windows_x64 Compiler Comparison on Windows x64] +[table_Compiler_Comparison_on_Windows_x64] [endsect] ] -[template section_Library_Comparison_with_Microsoft_Visual_C_version_14_0_on_Win32[] -[section:section_Library_Comparison_with_Microsoft_Visual_C_version_14_0_on_Win32 Library Comparison with Microsoft Visual C++ version 14.0 on Win32] -[table_Library_Comparison_with_Microsoft_Visual_C_version_14_0_on_Win32] +[template section_Library_Comparison_with_Microsoft_Visual_C_version_14_0_on_Windows_x64[] +[section:section_Library_Comparison_with_Microsoft_Visual_C_version_14_0_on_Windows_x64 Library Comparison with Microsoft Visual C++ version 14.0 on Windows x64] +[table_Library_Comparison_with_Microsoft_Visual_C_version_14_0_on_Windows_x64] [endsect] ] [template performance_all_sections[] -[section_Compiler_Option_Comparison_on_Win32] -[section_Distribution_performance_comparison_with_GNU_C_version_5_1_0_on_linux] -[section_Distribution_performance_comparison_with_Microsoft_Visual_C_version_14_0_on_Win32] -[section_Distribution_performance_comparison_with_for_different_performance_options_with_GNU_C_version_5_1_0_on_linux] -[section_Distribution_performance_comparison_with_for_different_performance_options_with_Microsoft_Visual_C_version_14_0_on_Win32] -[section_Library_Comparison_with_GNU_C_version_5_1_0_on_linux] -[section_Library_Comparison_with_Microsoft_Visual_C_version_14_0_on_Win32] -[section_Polynomial_Method_Comparison_on_Win32] -[section_Polynomial_Method_Comparison_on_linux] -[section_Rational_Method_Comparison_on_Win32] -[section_Rational_Method_Comparison_on_linux] +[section_Compiler_Comparison_on_Windows_x64] +[section_Compiler_Option_Comparison_on_Windows_x64] +[section_Distribution_performance_comparison_with_GNU_C_version_4_9_2_on_Windows_x64] +[section_Distribution_performance_comparison_with_Intel_C_C_0x_mode_version_1500_on_Windows_x64] +[section_Distribution_performance_comparison_with_Microsoft_Visual_C_version_14_0_on_Windows_x64] +[section_Distribution_performance_comparison_with_for_different_performance_options_with_GNU_C_version_4_9_2_on_Windows_x64] +[section_Distribution_performance_comparison_with_for_different_performance_options_with_Intel_C_C_0x_mode_version_1500_on_Windows_x64] +[section_Distribution_performance_comparison_with_for_different_performance_options_with_Microsoft_Visual_C_version_14_0_on_Windows_x64] +[section_Library_Comparison_with_GNU_C_version_4_9_2_on_Windows_x64] +[section_Library_Comparison_with_Intel_C_C_0x_mode_version_1500_on_Windows_x64] +[section_Library_Comparison_with_Microsoft_Visual_C_version_14_0_on_Windows_x64] +[section_Polynomial_Method_Comparison_with_GNU_C_version_4_9_2_on_Windows_x64] +[section_Polynomial_Method_Comparison_with_Intel_C_C_0x_mode_version_1500_on_Windows_x64] +[section_Polynomial_Method_Comparison_with_Microsoft_Visual_C_version_14_0_on_Windows_x64] +[section_Rational_Method_Comparison_with_GNU_C_version_4_9_2_on_Windows_x64] +[section_Rational_Method_Comparison_with_Intel_C_C_0x_mode_version_1500_on_Windows_x64] +[section_Rational_Method_Comparison_with_Microsoft_Visual_C_version_14_0_on_Windows_x64] ] [template performance_all_tables[] -[table_Compiler_Option_Comparison_on_Win32] -[table_Distribution_performance_comparison_with_GNU_C_version_5_1_0_on_linux] -[table_Distribution_performance_comparison_with_Microsoft_Visual_C_version_14_0_on_Win32] -[table_Distribution_performance_comparison_with_for_different_performance_options_with_GNU_C_version_5_1_0_on_linux] -[table_Distribution_performance_comparison_with_for_different_performance_options_with_Microsoft_Visual_C_version_14_0_on_Win32] -[table_Library_Comparison_with_GNU_C_version_5_1_0_on_linux] -[table_Library_Comparison_with_Microsoft_Visual_C_version_14_0_on_Win32] -[table_Polynomial_Method_Comparison_on_Win32] -[table_Polynomial_Method_Comparison_on_linux] -[table_Rational_Method_Comparison_on_Win32] -[table_Rational_Method_Comparison_on_linux] +[table_Compiler_Comparison_on_Windows_x64] +[table_Compiler_Option_Comparison_on_Windows_x64] +[table_Distribution_performance_comparison_with_GNU_C_version_4_9_2_on_Windows_x64] +[table_Distribution_performance_comparison_with_Intel_C_C_0x_mode_version_1500_on_Windows_x64] +[table_Distribution_performance_comparison_with_Microsoft_Visual_C_version_14_0_on_Windows_x64] +[table_Distribution_performance_comparison_with_for_different_performance_options_with_GNU_C_version_4_9_2_on_Windows_x64] +[table_Distribution_performance_comparison_with_for_different_performance_options_with_Intel_C_C_0x_mode_version_1500_on_Windows_x64] +[table_Distribution_performance_comparison_with_for_different_performance_options_with_Microsoft_Visual_C_version_14_0_on_Windows_x64] +[table_Library_Comparison_with_GNU_C_version_4_9_2_on_Windows_x64] +[table_Library_Comparison_with_Intel_C_C_0x_mode_version_1500_on_Windows_x64] +[table_Library_Comparison_with_Microsoft_Visual_C_version_14_0_on_Windows_x64] +[table_Polynomial_Method_Comparison_with_GNU_C_version_4_9_2_on_Windows_x64] +[table_Polynomial_Method_Comparison_with_Intel_C_C_0x_mode_version_1500_on_Windows_x64] +[table_Polynomial_Method_Comparison_with_Microsoft_Visual_C_version_14_0_on_Windows_x64] +[table_Rational_Method_Comparison_with_GNU_C_version_4_9_2_on_Windows_x64] +[table_Rational_Method_Comparison_with_Intel_C_C_0x_mode_version_1500_on_Windows_x64] +[table_Rational_Method_Comparison_with_Microsoft_Visual_C_version_14_0_on_Windows_x64] ] diff --git a/reporting/performance/performance.hpp b/reporting/performance/performance.hpp index 30d599c09..e52fd5c55 100644 --- a/reporting/performance/performance.hpp +++ b/reporting/performance/performance.hpp @@ -54,14 +54,14 @@ void screen_data(Func f, Result r) --row; } } - catch(const std::exception&) + catch(const std::exception& e) { std::cout << "Erasing row: "; for(unsigned i = 0; i < data[row].size(); ++i) { std::cout << data[row][i] << " "; } - std::cout << "due to thrown exception\n"; + std::cout << "due to thrown exception: " << e.what() << std::endl; data.erase(data.begin() + row); --row; } diff --git a/reporting/performance/table_helper.cpp b/reporting/performance/table_helper.cpp index 3c927b8a3..21c55239a 100644 --- a/reporting/performance/table_helper.cpp +++ b/reporting/performance/table_helper.cpp @@ -141,7 +141,7 @@ void add_to_all_sections(const std::string& id, std::string list_name) // static const boost::regex item_e( "\\[" - "([^\\[\\]]*(?0)?)*" + "((?=[^\\]])[^\\[\\]]*+(?0)?+)*+" "\\]|\\]" ); boost::regex_token_iterator i(content.begin() + pos + 12 + list_name.size(), content.end(), item_e), j; @@ -193,10 +193,10 @@ void add_cell(boost::intmax_t val, const std::string& table_name, const std::str // std::string table_id = "table_" + sanitize_string(table_name); boost::regex table_e("\\[table:" + table_id - + "\\s[^\\[]+" + + "\\s[^\\[]++" "((\\[" - "([^\\[\\]]*(?2)?)*" - "\\]\\s*)*\\s*)" + "([^\\[\\]]*+(?2)?+)*+" + "\\]\\s*+)*+\\s*+)" "\\]" ); diff --git a/reporting/performance/table_helper.hpp b/reporting/performance/table_helper.hpp index 4a7e7c091..56f6b39fa 100644 --- a/reporting/performance/table_helper.hpp +++ b/reporting/performance/table_helper.hpp @@ -308,5 +308,23 @@ inline std::string boost_name() return "boost " + boost::lexical_cast(BOOST_VERSION / 100000) + "." + boost::lexical_cast((BOOST_VERSION / 100) % 1000); } +inline std::string compiler_name() +{ +#ifdef COMPILER_NAME + return COMPILER_NAME; +#else + return BOOST_COMPILER; +#endif +} + +inline std::string platform_name() +{ +#ifdef _WIN32 + return "Windows x64"; +#else + return BOOST_PLATFORM; +#endif +} + #endif // TABLE_HELPER_HPP diff --git a/reporting/performance/test_assoc_laguerre.cpp b/reporting/performance/test_assoc_laguerre.cpp index 9d8c2ea93..7953da367 100644 --- a/reporting/performance/test_assoc_laguerre.cpp +++ b/reporting/performance/test_assoc_laguerre.cpp @@ -20,11 +20,6 @@ typedef double T; int main() { -#if !defined(COMPILER_COMPARISON_TABLES) && !defined(TEST_GSL) && !defined(TEST_LIBSTDCXX) - // we have nothing to compare against, just bail out: - return 0; -#endif - # include "laguerre3.ipp" add_data(laguerre3); @@ -43,12 +38,16 @@ int main() unsigned data_used = data.size(); std::string function = "assoc_laguerre[br](" + boost::lexical_cast(data_used) + "/" + boost::lexical_cast(data_total) + " tests selected)"; + std::string function_short = "assoc_laguerre"; double time; time = exec_timed_test([](const std::vector& v){ return boost::math::laguerre(v[0], v[1], v[2]); }); std::cout << time << std::endl; - report_execution_time(time, std::string("Library Comparison with ") + std::string(BOOST_COMPILER) + std::string(" on ") + BOOST_PLATFORM, function, boost_name()); +#if !defined(COMPILER_COMPARISON_TABLES) && !defined(TEST_GSL) && !defined(TEST_RMATH) + report_execution_time(time, std::string("Library Comparison with ") + std::string(compiler_name()) + std::string(" on ") + platform_name(), function, boost_name()); +#endif + report_execution_time(time, std::string("Compiler Comparison on ") + std::string(platform_name()), function_short, compiler_name() + std::string("[br]") + boost_name()); // // Boost again, but with promotion to long double turned off: // @@ -57,7 +56,10 @@ int main() { time = exec_timed_test([](const std::vector& v){ return boost::math::laguerre(v[0], v[1], v[2], boost::math::policies::make_policy(boost::math::policies::promote_double())); }); std::cout << time << std::endl; - report_execution_time(time, std::string("Library Comparison with ") + std::string(BOOST_COMPILER) + std::string(" on ") + BOOST_PLATFORM, function, boost_name() + "[br]promote_double"); +#if !defined(COMPILER_COMPARISON_TABLES) && !defined(TEST_GSL) && !defined(TEST_RMATH) + report_execution_time(time, std::string("Library Comparison with ") + std::string(compiler_name()) + std::string(" on ") + platform_name(), function, boost_name() + "[br]promote_double"); +#endif + report_execution_time(time, std::string("Compiler Comparison on ") + std::string(platform_name()), function_short, compiler_name() + std::string("[br]") + boost_name() + "[br]promote_double"); } #endif @@ -65,12 +67,12 @@ int main() #if defined(TEST_LIBSTDCXX) && !defined(COMPILER_COMPARISON_TABLES) time = exec_timed_test([](const std::vector& v){ return std::tr1::assoc_laguerre(v[0], v[1], v[2]); }); std::cout << time << std::endl; - report_execution_time(time, std::string("Library Comparison with ") + std::string(BOOST_COMPILER) + std::string(" on ") + BOOST_PLATFORM, function, "tr1/cmath"); + report_execution_time(time, std::string("Library Comparison with ") + std::string(compiler_name()) + std::string(" on ") + platform_name(), function, "tr1/cmath"); #endif #if defined(TEST_GSL) && !defined(COMPILER_COMPARISON_TABLES) time = exec_timed_test([](const std::vector& v){ return gsl_sf_laguerre_n(v[0], v[1], v[2]); }); std::cout << time << std::endl; - report_execution_time(time, std::string("Library Comparison with ") + std::string(BOOST_COMPILER) + std::string(" on ") + BOOST_PLATFORM, function, "GSL " GSL_VERSION); + report_execution_time(time, std::string("Library Comparison with ") + std::string(compiler_name()) + std::string(" on ") + platform_name(), function, "GSL " GSL_VERSION); #endif diff --git a/reporting/performance/test_assoc_legendre.cpp b/reporting/performance/test_assoc_legendre.cpp index 816297188..e519db721 100644 --- a/reporting/performance/test_assoc_legendre.cpp +++ b/reporting/performance/test_assoc_legendre.cpp @@ -20,11 +20,6 @@ typedef double T; int main() { -#if !defined(COMPILER_COMPARISON_TABLES) && !defined(TEST_GSL) && !defined(TEST_LIBSTDCXX) - // we have nothing to compare against, just bail out: - return 0; -#endif - # include "assoc_legendre_p.ipp" add_data(assoc_legendre_p); @@ -43,12 +38,16 @@ int main() unsigned data_used = data.size(); std::string function = "assoc_legendre[br](" + boost::lexical_cast(data_used) + "/" + boost::lexical_cast(data_total) + " tests selected)"; + std::string function_short = "assoc_legendre"; double time; time = exec_timed_test([](const std::vector& v){ return boost::math::legendre_p(v[0], v[1], v[2]); }); std::cout << time << std::endl; - report_execution_time(time, std::string("Library Comparison with ") + std::string(BOOST_COMPILER) + std::string(" on ") + BOOST_PLATFORM, function, boost_name()); +#if !defined(COMPILER_COMPARISON_TABLES) && !defined(TEST_GSL) && !defined(TEST_RMATH) + report_execution_time(time, std::string("Library Comparison with ") + std::string(compiler_name()) + std::string(" on ") + platform_name(), function, boost_name()); +#endif + report_execution_time(time, std::string("Compiler Comparison on ") + std::string(platform_name()), function_short, compiler_name() + std::string("[br]") + boost_name()); // // Boost again, but with promotion to long double turned off: // @@ -57,7 +56,10 @@ int main() { time = exec_timed_test([](const std::vector& v){ return boost::math::legendre_p(v[0], v[1], v[2], boost::math::policies::make_policy(boost::math::policies::promote_double())); }); std::cout << time << std::endl; - report_execution_time(time, std::string("Library Comparison with ") + std::string(BOOST_COMPILER) + std::string(" on ") + BOOST_PLATFORM, function, boost_name() + "[br]promote_double"); +#if !defined(COMPILER_COMPARISON_TABLES) && !defined(TEST_GSL) && !defined(TEST_RMATH) + report_execution_time(time, std::string("Library Comparison with ") + std::string(compiler_name()) + std::string(" on ") + platform_name(), function, boost_name() + "[br]promote_double"); +#endif + report_execution_time(time, std::string("Compiler Comparison on ") + std::string(platform_name()), function_short, compiler_name() + std::string("[br]") + boost_name() + "[br]promote_double"); } #endif @@ -65,12 +67,12 @@ int main() #if defined(TEST_LIBSTDCXX) && !defined(COMPILER_COMPARISON_TABLES) time = exec_timed_test([](const std::vector& v){ return std::tr1::assoc_legendre(v[0], v[1], v[2]); }); std::cout << time << std::endl; - report_execution_time(time, std::string("Library Comparison with ") + std::string(BOOST_COMPILER) + std::string(" on ") + BOOST_PLATFORM, function, "tr1/cmath"); + report_execution_time(time, std::string("Library Comparison with ") + std::string(compiler_name()) + std::string(" on ") + platform_name(), function, "tr1/cmath"); #endif #if defined(TEST_GSL) && !defined(COMPILER_COMPARISON_TABLES) time = exec_timed_test([](const std::vector& v){ return gsl_sf_legendre_Plm(v[0], v[1], v[2]); }); std::cout << time << std::endl; - report_execution_time(time, std::string("Library Comparison with ") + std::string(BOOST_COMPILER) + std::string(" on ") + BOOST_PLATFORM, function, "GSL " GSL_VERSION); + report_execution_time(time, std::string("Library Comparison with ") + std::string(compiler_name()) + std::string(" on ") + platform_name(), function, "GSL " GSL_VERSION); #endif return 0; diff --git a/reporting/performance/test_beta.cpp b/reporting/performance/test_beta.cpp index 0ac205cc4..3d9da93bf 100644 --- a/reporting/performance/test_beta.cpp +++ b/reporting/performance/test_beta.cpp @@ -20,11 +20,6 @@ typedef double T; int main() { -#if !defined(COMPILER_COMPARISON_TABLES) && !defined(TEST_GSL) && !defined(TEST_RMATH) && !defined(TEST_LIBSTDCXX) - // we have nothing to compare against, just bail out: - return 0; -#endif - # include "beta_small_data.ipp" # include "beta_med_data.ipp" # include "beta_exp_data.ipp" @@ -50,12 +45,16 @@ int main() unsigned data_used = data.size(); std::string function = "beta[br](" + boost::lexical_cast(data_used) + "/" + boost::lexical_cast(data_total) + " tests selected)"; + std::string function_short = "beta"; double time; time = exec_timed_test([](const std::vector& v){ return boost::math::beta(v[0], v[1]); }); std::cout << time << std::endl; - report_execution_time(time, std::string("Library Comparison with ") + std::string(BOOST_COMPILER) + std::string(" on ") + BOOST_PLATFORM, function, boost_name()); +#if !defined(COMPILER_COMPARISON_TABLES) && !defined(TEST_GSL) && !defined(TEST_RMATH) + report_execution_time(time, std::string("Library Comparison with ") + std::string(compiler_name()) + std::string(" on ") + platform_name(), function, boost_name()); +#endif + report_execution_time(time, std::string("Compiler Comparison on ") + std::string(platform_name()), function_short, compiler_name() + std::string("[br]") + boost_name()); // // Boost again, but with promotion to long double turned off: // @@ -64,7 +63,10 @@ int main() { time = exec_timed_test([](const std::vector& v){ return boost::math::beta(v[0], v[1], boost::math::policies::make_policy(boost::math::policies::promote_double())); }); std::cout << time << std::endl; - report_execution_time(time, std::string("Library Comparison with ") + std::string(BOOST_COMPILER) + std::string(" on ") + BOOST_PLATFORM, function, boost_name() + "[br]promote_double"); +#if !defined(COMPILER_COMPARISON_TABLES) && !defined(TEST_GSL) && !defined(TEST_RMATH) + report_execution_time(time, std::string("Library Comparison with ") + std::string(compiler_name()) + std::string(" on ") + platform_name(), function, boost_name() + "[br]promote_double"); +#endif + report_execution_time(time, std::string("Compiler Comparison on ") + std::string(platform_name()), function_short, compiler_name() + std::string("[br]") + boost_name() + "[br]promote_double"); } #endif @@ -72,17 +74,17 @@ int main() #if defined(TEST_LIBSTDCXX) && !defined(COMPILER_COMPARISON_TABLES) time = exec_timed_test([](const std::vector& v){ return std::tr1::beta(v[0], v[1]); }); std::cout << time << std::endl; - report_execution_time(time, std::string("Library Comparison with ") + std::string(BOOST_COMPILER) + std::string(" on ") + BOOST_PLATFORM, function, "tr1/cmath"); + report_execution_time(time, std::string("Library Comparison with ") + std::string(compiler_name()) + std::string(" on ") + platform_name(), function, "tr1/cmath"); #endif #if defined(TEST_GSL) && !defined(COMPILER_COMPARISON_TABLES) time = exec_timed_test([](const std::vector& v){ return gsl_sf_beta(v[0], v[1]); }); std::cout << time << std::endl; - report_execution_time(time, std::string("Library Comparison with ") + std::string(BOOST_COMPILER) + std::string(" on ") + BOOST_PLATFORM, function, "GSL " GSL_VERSION); + report_execution_time(time, std::string("Library Comparison with ") + std::string(compiler_name()) + std::string(" on ") + platform_name(), function, "GSL " GSL_VERSION); #endif #if defined(TEST_RMATH) && !defined(COMPILER_COMPARISON_TABLES) time = exec_timed_test([](const std::vector& v){ return beta(v[0], v[1]); }); std::cout << time << std::endl; - report_execution_time(time, std::string("Library Comparison with ") + std::string(BOOST_COMPILER) + std::string(" on ") + BOOST_PLATFORM, function, "Rmath " R_VERSION_STRING); + report_execution_time(time, std::string("Library Comparison with ") + std::string(compiler_name()) + std::string(" on ") + platform_name(), function, "Rmath " R_VERSION_STRING); #endif return 0; diff --git a/reporting/performance/test_beta_inc.cpp b/reporting/performance/test_beta_inc.cpp index 915c8a7a7..29b296b4d 100644 --- a/reporting/performance/test_beta_inc.cpp +++ b/reporting/performance/test_beta_inc.cpp @@ -21,10 +21,6 @@ typedef double T; int main() { -#if !defined(COMPILER_COMPARISON_TABLES) && !defined(TEST_GSL) - // we have nothing to compare against, just bail out: - return 0; -#endif # include "ibeta_small_data.ipp" # include "ibeta_data.ipp" # include "ibeta_large_data.ipp" @@ -48,12 +44,16 @@ int main() unsigned data_used = data.size(); std::string function = "beta (incomplete)[br](" + boost::lexical_cast(data_used) + "/" + boost::lexical_cast(data_total) + " tests selected)"; + std::string function_short = "beta (incomplete)"; double time; time = exec_timed_test([](const std::vector& v){ return boost::math::beta(v[0], v[1], v[2]); }); std::cout << time << std::endl; - report_execution_time(time, std::string("Library Comparison with ") + std::string(BOOST_COMPILER) + std::string(" on ") + BOOST_PLATFORM, function, boost_name()); +#if !defined(COMPILER_COMPARISON_TABLES) && !defined(TEST_GSL) && !defined(TEST_RMATH) + report_execution_time(time, std::string("Library Comparison with ") + std::string(compiler_name()) + std::string(" on ") + platform_name(), function, boost_name()); +#endif + report_execution_time(time, std::string("Compiler Comparison on ") + std::string(platform_name()), function_short, compiler_name() + std::string("[br]") + boost_name()); // // Boost again, but with promotion to long double turned off: // @@ -62,7 +62,10 @@ int main() { time = exec_timed_test([](const std::vector& v){ return boost::math::beta(v[0], v[1], v[2], boost::math::policies::make_policy(boost::math::policies::promote_double())); }); std::cout << time << std::endl; - report_execution_time(time, std::string("Library Comparison with ") + std::string(BOOST_COMPILER) + std::string(" on ") + BOOST_PLATFORM, function, boost_name() + "[br]promote_double"); +#if !defined(COMPILER_COMPARISON_TABLES) && !defined(TEST_GSL) && !defined(TEST_RMATH) + report_execution_time(time, std::string("Library Comparison with ") + std::string(compiler_name()) + std::string(" on ") + platform_name(), function, boost_name() + "[br]promote_double"); +#endif + report_execution_time(time, std::string("Compiler Comparison on ") + std::string(platform_name()), function_short, compiler_name() + std::string("[br]") + boost_name() + "[br]promote_double"); } #endif @@ -70,7 +73,7 @@ int main() #if defined(TEST_GSL) && !defined(COMPILER_COMPARISON_TABLES) time = exec_timed_test([](const std::vector& v){ return gsl_sf_beta_inc(v[0], v[1], v[2]); }); std::cout << time << std::endl; - report_execution_time(time, std::string("Library Comparison with ") + std::string(BOOST_COMPILER) + std::string(" on ") + BOOST_PLATFORM, function, "GSL " GSL_VERSION); + report_execution_time(time, std::string("Library Comparison with ") + std::string(compiler_name()) + std::string(" on ") + platform_name(), function, "GSL " GSL_VERSION); #endif return 0; diff --git a/reporting/performance/test_cbrt.cpp b/reporting/performance/test_cbrt.cpp index 95edc0233..4cf29c5f2 100644 --- a/reporting/performance/test_cbrt.cpp +++ b/reporting/performance/test_cbrt.cpp @@ -17,11 +17,6 @@ int main() { -#if !defined(COMPILER_COMPARISON_TABLES) && !defined(TEST_C99) && !defined(TEST_LIBSTDCXX) - // we have nothing to compare against, just bail out: - return 0; -#endif - typedef double T; #define SC_(x) static_cast(x) # include "../../test/cbrt_data.ipp" @@ -41,13 +36,17 @@ int main() unsigned data_used = data.size(); std::string function = "cbrt[br](" + boost::lexical_cast(data_used) + "/" + boost::lexical_cast(data_total) + " tests selected)"; + std::string function_short = "cbrt"; double time = exec_timed_test([](const std::vector& v){ return boost::math::cbrt(v[1]); }); std::cout << time << std::endl; #if defined(COMPILER_COMPARISON_TABLES) - report_execution_time(time, std::string("Compiler Option Comparison on ") + BOOST_PLATFORM, "boost::math::cbrt", get_compiler_options_name()); + report_execution_time(time, std::string("Compiler Option Comparison on ") + platform_name(), "boost::math::cbrt", get_compiler_options_name()); #else - report_execution_time(time, std::string("Library Comparison with ") + std::string(BOOST_COMPILER) + std::string(" on ") + BOOST_PLATFORM, function, boost_name()); +#if !defined(COMPILER_COMPARISON_TABLES) && !defined(TEST_GSL) && !defined(TEST_RMATH) + report_execution_time(time, std::string("Library Comparison with ") + std::string(compiler_name()) + std::string(" on ") + platform_name(), function, boost_name()); +#endif + report_execution_time(time, std::string("Compiler Comparison on ") + std::string(platform_name()), function_short, compiler_name() + std::string("[br]") + boost_name()); #endif // // Boost again, but with promotion to long double turned off: @@ -57,7 +56,10 @@ int main() { double time = exec_timed_test([](const std::vector& v){ return boost::math::cbrt(v[1], boost::math::policies::make_policy(boost::math::policies::promote_double())); }); std::cout << time << std::endl; - report_execution_time(time, std::string("Library Comparison with ") + std::string(BOOST_COMPILER) + std::string(" on ") + BOOST_PLATFORM, function, boost_name() + "[br]promote_double"); +#if !defined(COMPILER_COMPARISON_TABLES) && !defined(TEST_GSL) && !defined(TEST_RMATH) + report_execution_time(time, std::string("Library Comparison with ") + std::string(compiler_name()) + std::string(" on ") + platform_name(), function, boost_name() + "[br]promote_double"); +#endif + report_execution_time(time, std::string("Compiler Comparison on ") + std::string(platform_name()), function_short, compiler_name() + std::string("[br]") + boost_name() + "[br]promote_double"); } #endif @@ -65,12 +67,12 @@ int main() #if defined(TEST_C99) && !defined(COMPILER_COMPARISON_TABLES) time = exec_timed_test([](const std::vector& v){ return ::cbrt(v[1]); }); std::cout << time << std::endl; - report_execution_time(time, std::string("Library Comparison with ") + std::string(BOOST_COMPILER) + std::string(" on ") + BOOST_PLATFORM, function, "math.h"); + report_execution_time(time, std::string("Library Comparison with ") + std::string(compiler_name()) + std::string(" on ") + platform_name(), function, "math.h"); #endif #if defined(TEST_LIBSTDCXX) && !defined(COMPILER_COMPARISON_TABLES) time = exec_timed_test([](const std::vector& v){ return std::tr1::cbrt(v[1]); }); std::cout << time << std::endl; - report_execution_time(time, std::string("Library Comparison with ") + std::string(BOOST_COMPILER) + std::string(" on ") + BOOST_PLATFORM, function, "tr1/cmath"); + report_execution_time(time, std::string("Library Comparison with ") + std::string(compiler_name()) + std::string(" on ") + platform_name(), function, "tr1/cmath"); #endif diff --git a/reporting/performance/test_cn.cpp b/reporting/performance/test_cn.cpp index 1b7bce569..56361b844 100644 --- a/reporting/performance/test_cn.cpp +++ b/reporting/performance/test_cn.cpp @@ -63,11 +63,6 @@ typedef double T; int main() { -#if !defined(COMPILER_COMPARISON_TABLES) && !defined(TEST_GSL) - // we have nothing to compare against, just bail out: - return 0; -#endif - #include "jacobi_elliptic.ipp" #include "jacobi_elliptic_small.ipp" #include "jacobi_near_1.ipp" @@ -98,12 +93,16 @@ int main() unsigned data_used = data.size(); std::string function = "jacobi_cn[br](" + boost::lexical_cast(data_used) + "/" + boost::lexical_cast(data_total) + " tests selected)"; + std::string function_short = "jacobi_cn"; double time; time = exec_timed_test([](const std::vector& v){ return boost::math::jacobi_cn(v[1], v[2]); }); std::cout << time << std::endl; - report_execution_time(time, std::string("Library Comparison with ") + std::string(BOOST_COMPILER) + std::string(" on ") + BOOST_PLATFORM, function, boost_name()); +#if !defined(COMPILER_COMPARISON_TABLES) && !defined(TEST_GSL) && !defined(TEST_RMATH) + report_execution_time(time, std::string("Library Comparison with ") + std::string(compiler_name()) + std::string(" on ") + platform_name(), function, boost_name()); +#endif + report_execution_time(time, std::string("Compiler Comparison on ") + std::string(platform_name()), function_short, compiler_name() + std::string("[br]") + boost_name()); // // Boost again, but with promotion to long double turned off: // @@ -112,7 +111,10 @@ int main() { time = exec_timed_test([](const std::vector& v){ return boost::math::jacobi_cn(v[1], v[0], boost::math::policies::make_policy(boost::math::policies::promote_double())); }); std::cout << time << std::endl; - report_execution_time(time, std::string("Library Comparison with ") + std::string(BOOST_COMPILER) + std::string(" on ") + BOOST_PLATFORM, function, boost_name() + "[br]promote_double"); +#if !defined(COMPILER_COMPARISON_TABLES) && !defined(TEST_GSL) && !defined(TEST_RMATH) + report_execution_time(time, std::string("Library Comparison with ") + std::string(compiler_name()) + std::string(" on ") + platform_name(), function, boost_name() + "[br]promote_double"); +#endif + report_execution_time(time, std::string("Compiler Comparison on ") + std::string(platform_name()), function_short, compiler_name() + std::string("[br]") + boost_name() + "[br]promote_double"); } #endif @@ -125,7 +127,7 @@ int main() return c; }); std::cout << time << std::endl; - report_execution_time(time, std::string("Library Comparison with ") + std::string(BOOST_COMPILER) + std::string(" on ") + BOOST_PLATFORM, function, "GSL " GSL_VERSION); + report_execution_time(time, std::string("Library Comparison with ") + std::string(compiler_name()) + std::string(" on ") + platform_name(), function, "GSL " GSL_VERSION); #endif return 0; diff --git a/reporting/performance/test_digamma.cpp b/reporting/performance/test_digamma.cpp index 1f7ec481c..133997392 100644 --- a/reporting/performance/test_digamma.cpp +++ b/reporting/performance/test_digamma.cpp @@ -17,11 +17,6 @@ int main() { -#if !defined(COMPILER_COMPARISON_TABLES) && !defined(TEST_GSL) && !defined(TEST_RMATH) - // we have nothing to compare against, just bail out: - return 0; -#endif - typedef double T; #define SC_(x) static_cast(x) # include "digamma_data.ipp" @@ -65,10 +60,14 @@ int main() unsigned data_used = data.size(); std::string function = "digamma[br](" + boost::lexical_cast(data_used) + "/" + boost::lexical_cast(data_total) + " tests selected)"; + std::string function_short = "digamma"; double time = exec_timed_test([](const std::vector& v){ return boost::math::digamma(v[0]); }); std::cout << time << std::endl; - report_execution_time(time, std::string("Library Comparison with ") + std::string(BOOST_COMPILER) + std::string(" on ") + BOOST_PLATFORM, function, boost_name()); +#if !defined(COMPILER_COMPARISON_TABLES) && !defined(TEST_GSL) && !defined(TEST_RMATH) + report_execution_time(time, std::string("Library Comparison with ") + std::string(compiler_name()) + std::string(" on ") + platform_name(), function, boost_name()); +#endif + report_execution_time(time, std::string("Compiler Comparison on ") + std::string(platform_name()), function_short, compiler_name() + std::string("[br]") + boost_name()); // // Boost again, but with promotion to long double turned off: // @@ -77,7 +76,10 @@ int main() { double time = exec_timed_test([](const std::vector& v){ return boost::math::digamma(v[0], boost::math::policies::make_policy(boost::math::policies::promote_double())); }); std::cout << time << std::endl; - report_execution_time(time, std::string("Library Comparison with ") + std::string(BOOST_COMPILER) + std::string(" on ") + BOOST_PLATFORM, function, boost_name() + "[br]promote_double"); +#if !defined(COMPILER_COMPARISON_TABLES) && !defined(TEST_GSL) && !defined(TEST_RMATH) + report_execution_time(time, std::string("Library Comparison with ") + std::string(compiler_name()) + std::string(" on ") + platform_name(), function, boost_name() + "[br]promote_double"); +#endif + report_execution_time(time, std::string("Compiler Comparison on ") + std::string(platform_name()), function_short, compiler_name() + std::string("[br]") + boost_name() + "[br]promote_double"); } #endif @@ -85,12 +87,12 @@ int main() #if defined(TEST_GSL) && !defined(COMPILER_COMPARISON_TABLES) time = exec_timed_test([](const std::vector& v){ return gsl_sf_psi(v[0]); }); std::cout << time << std::endl; - report_execution_time(time, std::string("Library Comparison with ") + std::string(BOOST_COMPILER) + std::string(" on ") + BOOST_PLATFORM, function, "GSL " GSL_VERSION); + report_execution_time(time, std::string("Library Comparison with ") + std::string(compiler_name()) + std::string(" on ") + platform_name(), function, "GSL " GSL_VERSION); #endif #if defined(TEST_RMATH) && !defined(COMPILER_COMPARISON_TABLES) time = exec_timed_test([](const std::vector& v){ return ::digamma(v[0]); }); std::cout << time << std::endl; - report_execution_time(time, std::string("Library Comparison with ") + std::string(BOOST_COMPILER) + std::string(" on ") + BOOST_PLATFORM, function, "Rmath " R_VERSION_STRING); + report_execution_time(time, std::string("Library Comparison with ") + std::string(compiler_name()) + std::string(" on ") + platform_name(), function, "Rmath " R_VERSION_STRING); #endif return 0; diff --git a/reporting/performance/test_distributions.cpp b/reporting/performance/test_distributions.cpp index 74e4142b7..9ea82d95b 100644 --- a/reporting/performance/test_distributions.cpp +++ b/reporting/performance/test_distributions.cpp @@ -98,6 +98,7 @@ public: template void run_timed_tests(F f, std::string sub_name, std::string column, bool p_value = false, int where = main_table) { + std::cout << "Testing " << distro_name + " (" + std::string(sub_name) + ")" << " with library " << column << std::endl; try{ double t = 0; unsigned repeats = 1; @@ -124,8 +125,8 @@ public: repeats *= 2; } while(t < 0.5); - static const std::string main_table_name = std::string("Distribution performance comparison with ") + BOOST_COMPILER + std::string(" on ") + BOOST_PLATFORM; - static const std::string boost_table_name = std::string("Distribution performance comparison with for different performance options with ") + BOOST_COMPILER + std::string(" on ") + BOOST_PLATFORM; + static const std::string main_table_name = std::string("Distribution performance comparison with ") + compiler_name() + std::string(" on ") + platform_name(); + static const std::string boost_table_name = std::string("Distribution performance comparison with for different performance options with ") + compiler_name() + std::string(" on ") + platform_name(); if (where & 1) { @@ -150,7 +151,7 @@ public: std::cerr << "In " << distro_name + " (" + std::string(sub_name) + ")" << std::endl; report_execution_time( std::numeric_limits::max(), - std::string("Distribution performance comparison with ") + BOOST_COMPILER + std::string(" on ") + BOOST_PLATFORM, + std::string("Distribution performance comparison with ") + compiler_name() + std::string(" on ") + platform_name(), distro_name + " (" + std::string(sub_name) + ")", column); } @@ -430,10 +431,10 @@ int main() test_boost_2_param(inverse_gamma); distribution_tester inverse_gaussian("InverseGaussian"); - inverse_gaussian.add_test_case(0, 1, two_param_quantile >()); + inverse_gaussian.add_test_case(0.001, 1, two_param_quantile >()); inverse_gaussian.add_test_case(20, 20, two_param_quantile >()); - test_boost_2_param(inverse_gaussian); + test_boost_2_param(inverse_gaussian); distribution_tester laplace("Laplace"); laplace.add_test_case(0, 1, two_param_quantile >()); diff --git a/reporting/performance/test_dn.cpp b/reporting/performance/test_dn.cpp index 4ea014e03..3cf498a59 100644 --- a/reporting/performance/test_dn.cpp +++ b/reporting/performance/test_dn.cpp @@ -63,12 +63,6 @@ typedef double T; int main() { -#if !defined(COMPILER_COMPARISON_TABLES) && !defined(TEST_GSL) - // we have nothing to compare against, just bail out: - return 0; -#endif - - #include "jacobi_elliptic.ipp" #include "jacobi_elliptic_small.ipp" #include "jacobi_near_1.ipp" @@ -99,12 +93,16 @@ int main() unsigned data_used = data.size(); std::string function = "jacobi_dn[br](" + boost::lexical_cast(data_used) + "/" + boost::lexical_cast(data_total) + " tests selected)"; + std::string function_short = "jacobi_dn"; double time; time = exec_timed_test([](const std::vector& v){ return boost::math::jacobi_dn(v[1], v[2]); }); std::cout << time << std::endl; - report_execution_time(time, std::string("Library Comparison with ") + std::string(BOOST_COMPILER) + std::string(" on ") + BOOST_PLATFORM, function, boost_name()); +#if !defined(COMPILER_COMPARISON_TABLES) && !defined(TEST_GSL) && !defined(TEST_RMATH) + report_execution_time(time, std::string("Library Comparison with ") + std::string(compiler_name()) + std::string(" on ") + platform_name(), function, boost_name()); +#endif + report_execution_time(time, std::string("Compiler Comparison on ") + std::string(platform_name()), function_short, compiler_name() + std::string("[br]") + boost_name()); // // Boost again, but with promotion to long double turned off: // @@ -113,7 +111,10 @@ int main() { time = exec_timed_test([](const std::vector& v){ return boost::math::jacobi_dn(v[1], v[0], boost::math::policies::make_policy(boost::math::policies::promote_double())); }); std::cout << time << std::endl; - report_execution_time(time, std::string("Library Comparison with ") + std::string(BOOST_COMPILER) + std::string(" on ") + BOOST_PLATFORM, function, boost_name() + "[br]promote_double"); +#if !defined(COMPILER_COMPARISON_TABLES) && !defined(TEST_GSL) && !defined(TEST_RMATH) + report_execution_time(time, std::string("Library Comparison with ") + std::string(compiler_name()) + std::string(" on ") + platform_name(), function, boost_name() + "[br]promote_double"); +#endif + report_execution_time(time, std::string("Compiler Comparison on ") + std::string(platform_name()), function_short, compiler_name() + std::string("[br]") + boost_name() + "[br]promote_double"); } #endif @@ -126,7 +127,7 @@ int main() return d; }); std::cout << time << std::endl; - report_execution_time(time, std::string("Library Comparison with ") + std::string(BOOST_COMPILER) + std::string(" on ") + BOOST_PLATFORM, function, "GSL " GSL_VERSION); + report_execution_time(time, std::string("Library Comparison with ") + std::string(compiler_name()) + std::string(" on ") + platform_name(), function, "GSL " GSL_VERSION); #endif return 0; diff --git a/reporting/performance/test_ellint_1.cpp b/reporting/performance/test_ellint_1.cpp index 80733783b..ddbe6cd43 100644 --- a/reporting/performance/test_ellint_1.cpp +++ b/reporting/performance/test_ellint_1.cpp @@ -41,11 +41,6 @@ static const boost::array, 19> data1 = { { int main() { -#if !defined(COMPILER_COMPARISON_TABLES) && !defined(TEST_GSL) && !defined(TEST_LIBSTDCXX) - // we have nothing to compare against, just bail out: - return 0; -#endif - #include "ellint_f_data.ipp" add_data(data1); @@ -65,12 +60,16 @@ int main() unsigned data_used = data.size(); std::string function = "ellint_1[br](" + boost::lexical_cast(data_used) + "/" + boost::lexical_cast(data_total) + " tests selected)"; + std::string function_short = "ellint_1"; double time; time = exec_timed_test([](const std::vector& v){ return boost::math::ellint_1(v[1], v[0]); }); std::cout << time << std::endl; - report_execution_time(time, std::string("Library Comparison with ") + std::string(BOOST_COMPILER) + std::string(" on ") + BOOST_PLATFORM, function, boost_name()); +#if !defined(COMPILER_COMPARISON_TABLES) && !defined(TEST_GSL) && !defined(TEST_RMATH) + report_execution_time(time, std::string("Library Comparison with ") + std::string(compiler_name()) + std::string(" on ") + platform_name(), function, boost_name()); +#endif + report_execution_time(time, std::string("Compiler Comparison on ") + std::string(platform_name()), function_short, compiler_name() + std::string("[br]") + boost_name()); // // Boost again, but with promotion to long double turned off: // @@ -79,7 +78,10 @@ int main() { time = exec_timed_test([](const std::vector& v){ return boost::math::ellint_1(v[1], v[0], boost::math::policies::make_policy(boost::math::policies::promote_double())); }); std::cout << time << std::endl; - report_execution_time(time, std::string("Library Comparison with ") + std::string(BOOST_COMPILER) + std::string(" on ") + BOOST_PLATFORM, function, boost_name() + "[br]promote_double"); +#if !defined(COMPILER_COMPARISON_TABLES) && !defined(TEST_GSL) && !defined(TEST_RMATH) + report_execution_time(time, std::string("Library Comparison with ") + std::string(compiler_name()) + std::string(" on ") + platform_name(), function, boost_name() + "[br]promote_double"); +#endif + report_execution_time(time, std::string("Compiler Comparison on ") + std::string(platform_name()), function_short, compiler_name() + std::string("[br]") + boost_name() + "[br]promote_double"); } #endif @@ -87,12 +89,12 @@ int main() #if defined(TEST_LIBSTDCXX) && !defined(COMPILER_COMPARISON_TABLES) time = exec_timed_test([](const std::vector& v){ return std::tr1::ellint_1(v[1], v[0]); }); std::cout << time << std::endl; - report_execution_time(time, std::string("Library Comparison with ") + std::string(BOOST_COMPILER) + std::string(" on ") + BOOST_PLATFORM, function, "tr1/cmath"); + report_execution_time(time, std::string("Library Comparison with ") + std::string(compiler_name()) + std::string(" on ") + platform_name(), function, "tr1/cmath"); #endif #if defined(TEST_GSL) && !defined(COMPILER_COMPARISON_TABLES) time = exec_timed_test([](const std::vector& v){ return gsl_sf_ellint_F(v[0], v[1], GSL_PREC_DOUBLE); }); std::cout << time << std::endl; - report_execution_time(time, std::string("Library Comparison with ") + std::string(BOOST_COMPILER) + std::string(" on ") + BOOST_PLATFORM, function, "GSL " GSL_VERSION); + report_execution_time(time, std::string("Library Comparison with ") + std::string(compiler_name()) + std::string(" on ") + platform_name(), function, "GSL " GSL_VERSION); #endif return 0; diff --git a/reporting/performance/test_ellint_1c.cpp b/reporting/performance/test_ellint_1c.cpp index 2dbb4db76..faedef0c7 100644 --- a/reporting/performance/test_ellint_1c.cpp +++ b/reporting/performance/test_ellint_1c.cpp @@ -31,11 +31,6 @@ static const boost::array, 9> data2 = { { int main() { -#if !defined(COMPILER_COMPARISON_TABLES) && !defined(TEST_GSL) && !defined(TEST_LIBSTDCXX) - // we have nothing to compare against, just bail out: - return 0; -#endif - #include "ellint_k_data.ipp" add_data(data2); @@ -55,12 +50,16 @@ int main() unsigned data_used = data.size(); std::string function = "ellint_1 (complete)[br](" + boost::lexical_cast(data_used) + "/" + boost::lexical_cast(data_total) + " tests selected)"; + std::string function_short = "ellint_1 (complete)"; double time; time = exec_timed_test([](const std::vector& v){ return boost::math::ellint_1(v[0]); }); std::cout << time << std::endl; - report_execution_time(time, std::string("Library Comparison with ") + std::string(BOOST_COMPILER) + std::string(" on ") + BOOST_PLATFORM, function, boost_name()); +#if !defined(COMPILER_COMPARISON_TABLES) && !defined(TEST_GSL) && !defined(TEST_RMATH) + report_execution_time(time, std::string("Library Comparison with ") + std::string(compiler_name()) + std::string(" on ") + platform_name(), function, boost_name()); +#endif + report_execution_time(time, std::string("Compiler Comparison on ") + std::string(platform_name()), function_short, compiler_name() + std::string("[br]") + boost_name()); // // Boost again, but with promotion to long double turned off: // @@ -69,7 +68,10 @@ int main() { time = exec_timed_test([](const std::vector& v){ return boost::math::ellint_1(v[0], boost::math::policies::make_policy(boost::math::policies::promote_double())); }); std::cout << time << std::endl; - report_execution_time(time, std::string("Library Comparison with ") + std::string(BOOST_COMPILER) + std::string(" on ") + BOOST_PLATFORM, function, boost_name() + "[br]promote_double"); +#if !defined(COMPILER_COMPARISON_TABLES) && !defined(TEST_GSL) && !defined(TEST_RMATH) + report_execution_time(time, std::string("Library Comparison with ") + std::string(compiler_name()) + std::string(" on ") + platform_name(), function, boost_name() + "[br]promote_double"); +#endif + report_execution_time(time, std::string("Compiler Comparison on ") + std::string(platform_name()), function_short, compiler_name() + std::string("[br]") + boost_name() + "[br]promote_double"); } #endif @@ -77,12 +79,12 @@ int main() #if defined(TEST_LIBSTDCXX) && !defined(COMPILER_COMPARISON_TABLES) time = exec_timed_test([](const std::vector& v){ return std::tr1::comp_ellint_1(v[0]); }); std::cout << time << std::endl; - report_execution_time(time, std::string("Library Comparison with ") + std::string(BOOST_COMPILER) + std::string(" on ") + BOOST_PLATFORM, function, "tr1/cmath"); + report_execution_time(time, std::string("Library Comparison with ") + std::string(compiler_name()) + std::string(" on ") + platform_name(), function, "tr1/cmath"); #endif #if defined(TEST_GSL) && !defined(COMPILER_COMPARISON_TABLES) time = exec_timed_test([](const std::vector& v){ return gsl_sf_ellint_Kcomp(v[0], GSL_PREC_DOUBLE); }); std::cout << time << std::endl; - report_execution_time(time, std::string("Library Comparison with ") + std::string(BOOST_COMPILER) + std::string(" on ") + BOOST_PLATFORM, function, "GSL " GSL_VERSION); + report_execution_time(time, std::string("Library Comparison with ") + std::string(compiler_name()) + std::string(" on ") + platform_name(), function, "GSL " GSL_VERSION); #endif return 0; diff --git a/reporting/performance/test_ellint_2.cpp b/reporting/performance/test_ellint_2.cpp index 1a4c314db..a7b492ee1 100644 --- a/reporting/performance/test_ellint_2.cpp +++ b/reporting/performance/test_ellint_2.cpp @@ -32,11 +32,6 @@ static const boost::array, 10> data1 = { { int main() { -#if !defined(COMPILER_COMPARISON_TABLES) && !defined(TEST_GSL) && !defined(TEST_LIBSTDCXX) - // we have nothing to compare against, just bail out: - return 0; -#endif - #include "ellint_e2_data.ipp" add_data(data1); @@ -56,12 +51,16 @@ int main() unsigned data_used = data.size(); std::string function = "ellint_2[br](" + boost::lexical_cast(data_used) + "/" + boost::lexical_cast(data_total) + " tests selected)"; + std::string function_short = "ellint_2"; double time; time = exec_timed_test([](const std::vector& v){ return boost::math::ellint_2(v[1], v[0]); }); std::cout << time << std::endl; - report_execution_time(time, std::string("Library Comparison with ") + std::string(BOOST_COMPILER) + std::string(" on ") + BOOST_PLATFORM, function, boost_name()); +#if !defined(COMPILER_COMPARISON_TABLES) && !defined(TEST_GSL) && !defined(TEST_RMATH) + report_execution_time(time, std::string("Library Comparison with ") + std::string(compiler_name()) + std::string(" on ") + platform_name(), function, boost_name()); +#endif + report_execution_time(time, std::string("Compiler Comparison on ") + std::string(platform_name()), function_short, compiler_name() + std::string("[br]") + boost_name()); // // Boost again, but with promotion to long double turned off: // @@ -70,7 +69,10 @@ int main() { time = exec_timed_test([](const std::vector& v){ return boost::math::ellint_2(v[1], v[0], boost::math::policies::make_policy(boost::math::policies::promote_double())); }); std::cout << time << std::endl; - report_execution_time(time, std::string("Library Comparison with ") + std::string(BOOST_COMPILER) + std::string(" on ") + BOOST_PLATFORM, function, boost_name() + "[br]promote_double"); +#if !defined(COMPILER_COMPARISON_TABLES) && !defined(TEST_GSL) && !defined(TEST_RMATH) + report_execution_time(time, std::string("Library Comparison with ") + std::string(compiler_name()) + std::string(" on ") + platform_name(), function, boost_name() + "[br]promote_double"); +#endif + report_execution_time(time, std::string("Compiler Comparison on ") + std::string(platform_name()), function_short, compiler_name() + std::string("[br]") + boost_name() + "[br]promote_double"); } #endif @@ -78,12 +80,12 @@ int main() #if defined(TEST_LIBSTDCXX) && !defined(COMPILER_COMPARISON_TABLES) time = exec_timed_test([](const std::vector& v){ return std::tr1::ellint_2(v[1], v[0]); }); std::cout << time << std::endl; - report_execution_time(time, std::string("Library Comparison with ") + std::string(BOOST_COMPILER) + std::string(" on ") + BOOST_PLATFORM, function, "tr1/cmath"); + report_execution_time(time, std::string("Library Comparison with ") + std::string(compiler_name()) + std::string(" on ") + platform_name(), function, "tr1/cmath"); #endif #if defined(TEST_GSL) && !defined(COMPILER_COMPARISON_TABLES) time = exec_timed_test([](const std::vector& v){ return gsl_sf_ellint_E(v[0], v[1], GSL_PREC_DOUBLE); }); std::cout << time << std::endl; - report_execution_time(time, std::string("Library Comparison with ") + std::string(BOOST_COMPILER) + std::string(" on ") + BOOST_PLATFORM, function, "GSL " GSL_VERSION); + report_execution_time(time, std::string("Library Comparison with ") + std::string(compiler_name()) + std::string(" on ") + platform_name(), function, "GSL " GSL_VERSION); #endif return 0; diff --git a/reporting/performance/test_ellint_2c.cpp b/reporting/performance/test_ellint_2c.cpp index dfb501755..b73a2e0d3 100644 --- a/reporting/performance/test_ellint_2c.cpp +++ b/reporting/performance/test_ellint_2c.cpp @@ -32,11 +32,6 @@ static const boost::array, 10> data2 = { { int main() { -#if !defined(COMPILER_COMPARISON_TABLES) && !defined(TEST_GSL) && !defined(TEST_LIBSTDCXX) - // we have nothing to compare against, just bail out: - return 0; -#endif - #include "ellint_e_data.ipp" add_data(data2); @@ -56,12 +51,16 @@ int main() unsigned data_used = data.size(); std::string function = "ellint_2 (complete)[br](" + boost::lexical_cast(data_used) + "/" + boost::lexical_cast(data_total) + " tests selected)"; + std::string function_short = "ellint_2 (complete)"; double time; time = exec_timed_test([](const std::vector& v){ return boost::math::ellint_2(v[0]); }); std::cout << time << std::endl; - report_execution_time(time, std::string("Library Comparison with ") + std::string(BOOST_COMPILER) + std::string(" on ") + BOOST_PLATFORM, function, boost_name()); +#if !defined(COMPILER_COMPARISON_TABLES) && !defined(TEST_GSL) && !defined(TEST_RMATH) + report_execution_time(time, std::string("Library Comparison with ") + std::string(compiler_name()) + std::string(" on ") + platform_name(), function, boost_name()); +#endif + report_execution_time(time, std::string("Compiler Comparison on ") + std::string(platform_name()), function_short, compiler_name() + std::string("[br]") + boost_name()); // // Boost again, but with promotion to long double turned off: // @@ -70,7 +69,10 @@ int main() { time = exec_timed_test([](const std::vector& v){ return boost::math::ellint_2(v[0], boost::math::policies::make_policy(boost::math::policies::promote_double())); }); std::cout << time << std::endl; - report_execution_time(time, std::string("Library Comparison with ") + std::string(BOOST_COMPILER) + std::string(" on ") + BOOST_PLATFORM, function, boost_name() + "[br]promote_double"); +#if !defined(COMPILER_COMPARISON_TABLES) && !defined(TEST_GSL) && !defined(TEST_RMATH) + report_execution_time(time, std::string("Library Comparison with ") + std::string(compiler_name()) + std::string(" on ") + platform_name(), function, boost_name() + "[br]promote_double"); +#endif + report_execution_time(time, std::string("Compiler Comparison on ") + std::string(platform_name()), function_short, compiler_name() + std::string("[br]") + boost_name() + "[br]promote_double"); } #endif @@ -78,12 +80,12 @@ int main() #if defined(TEST_LIBSTDCXX) && !defined(COMPILER_COMPARISON_TABLES) time = exec_timed_test([](const std::vector& v){ return std::tr1::comp_ellint_2(v[0]); }); std::cout << time << std::endl; - report_execution_time(time, std::string("Library Comparison with ") + std::string(BOOST_COMPILER) + std::string(" on ") + BOOST_PLATFORM, function, "tr1/cmath"); + report_execution_time(time, std::string("Library Comparison with ") + std::string(compiler_name()) + std::string(" on ") + platform_name(), function, "tr1/cmath"); #endif #if defined(TEST_GSL) && !defined(COMPILER_COMPARISON_TABLES) time = exec_timed_test([](const std::vector& v){ return gsl_sf_ellint_Ecomp(v[0], GSL_PREC_DOUBLE); }); std::cout << time << std::endl; - report_execution_time(time, std::string("Library Comparison with ") + std::string(BOOST_COMPILER) + std::string(" on ") + BOOST_PLATFORM, function, "GSL " GSL_VERSION); + report_execution_time(time, std::string("Library Comparison with ") + std::string(compiler_name()) + std::string(" on ") + platform_name(), function, "GSL " GSL_VERSION); #endif return 0; diff --git a/reporting/performance/test_ellint_3.cpp b/reporting/performance/test_ellint_3.cpp index 472752eba..0c9cec9b6 100644 --- a/reporting/performance/test_ellint_3.cpp +++ b/reporting/performance/test_ellint_3.cpp @@ -96,11 +96,6 @@ static const boost::array, 65> data1 = { { int main() { -#if !defined(COMPILER_COMPARISON_TABLES) && !defined(TEST_GSL) && !defined(TEST_LIBSTDCXX) - // we have nothing to compare against, just bail out: - return 0; -#endif - #include "ellint_pi3_data.ipp" #include "ellint_pi3_large_data.ipp" @@ -125,12 +120,16 @@ int main() unsigned data_used = data.size(); std::string function = "ellint_3[br](" + boost::lexical_cast(data_used) + "/" + boost::lexical_cast(data_total) + " tests selected)"; + std::string function_short = "ellint_3"; double time; time = exec_timed_test([](const std::vector& v){ return boost::math::ellint_3(v[2], v[0], v[1]); }); std::cout << time << std::endl; - report_execution_time(time, std::string("Library Comparison with ") + std::string(BOOST_COMPILER) + std::string(" on ") + BOOST_PLATFORM, function, boost_name()); +#if !defined(COMPILER_COMPARISON_TABLES) && !defined(TEST_GSL) && !defined(TEST_RMATH) + report_execution_time(time, std::string("Library Comparison with ") + std::string(compiler_name()) + std::string(" on ") + platform_name(), function, boost_name()); +#endif + report_execution_time(time, std::string("Compiler Comparison on ") + std::string(platform_name()), function_short, compiler_name() + std::string("[br]") + boost_name()); // // Boost again, but with promotion to long double turned off: // @@ -139,7 +138,10 @@ int main() { time = exec_timed_test([](const std::vector& v){ return boost::math::ellint_3(v[2], v[0], v[1], boost::math::policies::make_policy(boost::math::policies::promote_double())); }); std::cout << time << std::endl; - report_execution_time(time, std::string("Library Comparison with ") + std::string(BOOST_COMPILER) + std::string(" on ") + BOOST_PLATFORM, function, boost_name() + "[br]promote_double"); +#if !defined(COMPILER_COMPARISON_TABLES) && !defined(TEST_GSL) && !defined(TEST_RMATH) + report_execution_time(time, std::string("Library Comparison with ") + std::string(compiler_name()) + std::string(" on ") + platform_name(), function, boost_name() + "[br]promote_double"); +#endif + report_execution_time(time, std::string("Compiler Comparison on ") + std::string(platform_name()), function_short, compiler_name() + std::string("[br]") + boost_name() + "[br]promote_double"); } #endif @@ -147,12 +149,12 @@ int main() #if defined(TEST_LIBSTDCXX) && !defined(COMPILER_COMPARISON_TABLES) time = exec_timed_test([](const std::vector& v){ return std::tr1::ellint_3(v[2], -v[0], v[1]); }); std::cout << time << std::endl; - report_execution_time(time, std::string("Library Comparison with ") + std::string(BOOST_COMPILER) + std::string(" on ") + BOOST_PLATFORM, function, "tr1/cmath"); + report_execution_time(time, std::string("Library Comparison with ") + std::string(compiler_name()) + std::string(" on ") + platform_name(), function, "tr1/cmath"); #endif #if defined(TEST_GSL) && !defined(COMPILER_COMPARISON_TABLES) time = exec_timed_test([](const std::vector& v){ return gsl_sf_ellint_P(v[1], v[2], -v[0], GSL_PREC_DOUBLE); }); std::cout << time << std::endl; - report_execution_time(time, std::string("Library Comparison with ") + std::string(BOOST_COMPILER) + std::string(" on ") + BOOST_PLATFORM, function, "GSL " GSL_VERSION); + report_execution_time(time, std::string("Library Comparison with ") + std::string(compiler_name()) + std::string(" on ") + platform_name(), function, "GSL " GSL_VERSION); #endif return 0; diff --git a/reporting/performance/test_ellint_3c.cpp b/reporting/performance/test_ellint_3c.cpp index 7ef581e30..b49ebca38 100644 --- a/reporting/performance/test_ellint_3c.cpp +++ b/reporting/performance/test_ellint_3c.cpp @@ -20,11 +20,6 @@ typedef double T; int main() { -#if !defined(COMPILER_COMPARISON_TABLES) && !defined(TEST_GSL) && !defined(TEST_LIBSTDCXX) - // we have nothing to compare against, just bail out: - return 0; -#endif - #include "ellint_pi2_data.ipp" add_data(ellint_pi2_data); @@ -43,12 +38,16 @@ int main() unsigned data_used = data.size(); std::string function = "ellint_3 (complete)[br](" + boost::lexical_cast(data_used) + "/" + boost::lexical_cast(data_total) + " tests selected)"; + std::string function_short = "ellint_3 (complete)"; double time; time = exec_timed_test([](const std::vector& v){ return boost::math::ellint_3(v[1], v[0]); }); std::cout << time << std::endl; - report_execution_time(time, std::string("Library Comparison with ") + std::string(BOOST_COMPILER) + std::string(" on ") + BOOST_PLATFORM, function, boost_name()); +#if !defined(COMPILER_COMPARISON_TABLES) && !defined(TEST_GSL) && !defined(TEST_RMATH) + report_execution_time(time, std::string("Library Comparison with ") + std::string(compiler_name()) + std::string(" on ") + platform_name(), function, boost_name()); +#endif + report_execution_time(time, std::string("Compiler Comparison on ") + std::string(platform_name()), function_short, compiler_name() + std::string("[br]") + boost_name()); // // Boost again, but with promotion to long double turned off: // @@ -57,7 +56,10 @@ int main() { time = exec_timed_test([](const std::vector& v){ return boost::math::ellint_3(v[1], v[0], boost::math::policies::make_policy(boost::math::policies::promote_double())); }); std::cout << time << std::endl; - report_execution_time(time, std::string("Library Comparison with ") + std::string(BOOST_COMPILER) + std::string(" on ") + BOOST_PLATFORM, function, boost_name() + "[br]promote_double"); +#if !defined(COMPILER_COMPARISON_TABLES) && !defined(TEST_GSL) && !defined(TEST_RMATH) + report_execution_time(time, std::string("Library Comparison with ") + std::string(compiler_name()) + std::string(" on ") + platform_name(), function, boost_name() + "[br]promote_double"); +#endif + report_execution_time(time, std::string("Compiler Comparison on ") + std::string(platform_name()), function_short, compiler_name() + std::string("[br]") + boost_name() + "[br]promote_double"); } #endif @@ -65,12 +67,12 @@ int main() #if defined(TEST_LIBSTDCXX) && !defined(COMPILER_COMPARISON_TABLES) time = exec_timed_test([](const std::vector& v){ return std::tr1::comp_ellint_3(v[1], -v[0]); }); std::cout << time << std::endl; - report_execution_time(time, std::string("Library Comparison with ") + std::string(BOOST_COMPILER) + std::string(" on ") + BOOST_PLATFORM, function, "tr1/cmath"); + report_execution_time(time, std::string("Library Comparison with ") + std::string(compiler_name()) + std::string(" on ") + platform_name(), function, "tr1/cmath"); #endif #if defined(TEST_GSL) && !defined(COMPILER_COMPARISON_TABLES) time = exec_timed_test([](const std::vector& v){ return gsl_sf_ellint_Pcomp(v[1], -v[0], GSL_PREC_DOUBLE); }); std::cout << time << std::endl; - report_execution_time(time, std::string("Library Comparison with ") + std::string(BOOST_COMPILER) + std::string(" on ") + BOOST_PLATFORM, function, "GSL " GSL_VERSION); + report_execution_time(time, std::string("Library Comparison with ") + std::string(compiler_name()) + std::string(" on ") + platform_name(), function, "GSL " GSL_VERSION); #endif return 0; diff --git a/reporting/performance/test_ellint_rc.cpp b/reporting/performance/test_ellint_rc.cpp index 84e3a97e0..d3c0f7255 100644 --- a/reporting/performance/test_ellint_rc.cpp +++ b/reporting/performance/test_ellint_rc.cpp @@ -20,11 +20,6 @@ typedef double T; int main() { -#if !defined(COMPILER_COMPARISON_TABLES) && !defined(TEST_GSL) - // we have nothing to compare against, just bail out: - return 0; -#endif - #include "ellint_rc_data.ipp" add_data(ellint_rc_data); @@ -40,12 +35,16 @@ int main() unsigned data_used = data.size(); std::string function = "ellint_rc[br](" + boost::lexical_cast(data_used) + "/" + boost::lexical_cast(data_total) + " tests selected)"; + std::string function_short = "ellint_rc"; double time; time = exec_timed_test([](const std::vector& v){ return boost::math::ellint_rc(v[0], v[1]); }); std::cout << time << std::endl; - report_execution_time(time, std::string("Library Comparison with ") + std::string(BOOST_COMPILER) + std::string(" on ") + BOOST_PLATFORM, function, boost_name()); +#if !defined(COMPILER_COMPARISON_TABLES) && !defined(TEST_GSL) && !defined(TEST_RMATH) + report_execution_time(time, std::string("Library Comparison with ") + std::string(compiler_name()) + std::string(" on ") + platform_name(), function, boost_name()); +#endif + report_execution_time(time, std::string("Compiler Comparison on ") + std::string(platform_name()), function_short, compiler_name() + std::string("[br]") + boost_name()); // // Boost again, but with promotion to long double turned off: // @@ -54,7 +53,10 @@ int main() { time = exec_timed_test([](const std::vector& v){ return boost::math::ellint_rc(v[0], v[1], boost::math::policies::make_policy(boost::math::policies::promote_double())); }); std::cout << time << std::endl; - report_execution_time(time, std::string("Library Comparison with ") + std::string(BOOST_COMPILER) + std::string(" on ") + BOOST_PLATFORM, function, boost_name() + "[br]promote_double"); +#if !defined(COMPILER_COMPARISON_TABLES) && !defined(TEST_GSL) && !defined(TEST_RMATH) + report_execution_time(time, std::string("Library Comparison with ") + std::string(compiler_name()) + std::string(" on ") + platform_name(), function, boost_name() + "[br]promote_double"); +#endif + report_execution_time(time, std::string("Compiler Comparison on ") + std::string(platform_name()), function_short, compiler_name() + std::string("[br]") + boost_name() + "[br]promote_double"); } #endif @@ -62,7 +64,7 @@ int main() #if defined(TEST_GSL) && !defined(COMPILER_COMPARISON_TABLES) time = exec_timed_test([](const std::vector& v){ return gsl_sf_ellint_RC(v[0], v[1], GSL_PREC_DOUBLE); }); std::cout << time << std::endl; - report_execution_time(time, std::string("Library Comparison with ") + std::string(BOOST_COMPILER) + std::string(" on ") + BOOST_PLATFORM, function, "GSL " GSL_VERSION); + report_execution_time(time, std::string("Library Comparison with ") + std::string(compiler_name()) + std::string(" on ") + platform_name(), function, "GSL " GSL_VERSION); #endif return 0; diff --git a/reporting/performance/test_ellint_rd.cpp b/reporting/performance/test_ellint_rd.cpp index f7b092f7b..9c91f4de9 100644 --- a/reporting/performance/test_ellint_rd.cpp +++ b/reporting/performance/test_ellint_rd.cpp @@ -20,11 +20,6 @@ typedef double T; int main() { -#if !defined(COMPILER_COMPARISON_TABLES) && !defined(TEST_GSL) - // we have nothing to compare against, just bail out: - return 0; -#endif - #include "ellint_rd_data.ipp" #include "ellint_rd_xyy.ipp" #include "ellint_rd_xxz.ipp" @@ -50,12 +45,16 @@ int main() unsigned data_used = data.size(); std::string function = "ellint_rd[br](" + boost::lexical_cast(data_used) + "/" + boost::lexical_cast(data_total) + " tests selected)"; + std::string function_short = "ellint_rd"; double time; time = exec_timed_test([](const std::vector& v){ return boost::math::ellint_rd(v[0], v[1], v[2]); }); std::cout << time << std::endl; - report_execution_time(time, std::string("Library Comparison with ") + std::string(BOOST_COMPILER) + std::string(" on ") + BOOST_PLATFORM, function, boost_name()); +#if !defined(COMPILER_COMPARISON_TABLES) && !defined(TEST_GSL) && !defined(TEST_RMATH) + report_execution_time(time, std::string("Library Comparison with ") + std::string(compiler_name()) + std::string(" on ") + platform_name(), function, boost_name()); +#endif + report_execution_time(time, std::string("Compiler Comparison on ") + std::string(platform_name()), function_short, compiler_name() + std::string("[br]") + boost_name()); // // Boost again, but with promotion to long double turned off: // @@ -64,7 +63,10 @@ int main() { time = exec_timed_test([](const std::vector& v){ return boost::math::ellint_rd(v[0], v[1], v[2], boost::math::policies::make_policy(boost::math::policies::promote_double())); }); std::cout << time << std::endl; - report_execution_time(time, std::string("Library Comparison with ") + std::string(BOOST_COMPILER) + std::string(" on ") + BOOST_PLATFORM, function, boost_name() + "[br]promote_double"); +#if !defined(COMPILER_COMPARISON_TABLES) && !defined(TEST_GSL) && !defined(TEST_RMATH) + report_execution_time(time, std::string("Library Comparison with ") + std::string(compiler_name()) + std::string(" on ") + platform_name(), function, boost_name() + "[br]promote_double"); +#endif + report_execution_time(time, std::string("Compiler Comparison on ") + std::string(platform_name()), function_short, compiler_name() + std::string("[br]") + boost_name() + "[br]promote_double"); } #endif @@ -72,7 +74,7 @@ int main() #if defined(TEST_GSL) && !defined(COMPILER_COMPARISON_TABLES) time = exec_timed_test([](const std::vector& v){ return gsl_sf_ellint_RD(v[0], v[1], v[2], GSL_PREC_DOUBLE); }); std::cout << time << std::endl; - report_execution_time(time, std::string("Library Comparison with ") + std::string(BOOST_COMPILER) + std::string(" on ") + BOOST_PLATFORM, function, "GSL " GSL_VERSION); + report_execution_time(time, std::string("Library Comparison with ") + std::string(compiler_name()) + std::string(" on ") + platform_name(), function, "GSL " GSL_VERSION); #endif return 0; diff --git a/reporting/performance/test_ellint_rf.cpp b/reporting/performance/test_ellint_rf.cpp index 3b1d638bf..6971f511a 100644 --- a/reporting/performance/test_ellint_rf.cpp +++ b/reporting/performance/test_ellint_rf.cpp @@ -20,11 +20,6 @@ typedef double T; int main() { -#if !defined(COMPILER_COMPARISON_TABLES) && !defined(TEST_GSL) - // we have nothing to compare against, just bail out: - return 0; -#endif - #include "ellint_rf_data.ipp" #include "ellint_rf_xxx.ipp" #include "ellint_rf_xyy.ipp" @@ -48,12 +43,16 @@ int main() unsigned data_used = data.size(); std::string function = "ellint_rf[br](" + boost::lexical_cast(data_used) + "/" + boost::lexical_cast(data_total) + " tests selected)"; + std::string function_short = "ellint_rf"; double time; time = exec_timed_test([](const std::vector& v){ return boost::math::ellint_rf(v[0], v[1], v[2]); }); std::cout << time << std::endl; - report_execution_time(time, std::string("Library Comparison with ") + std::string(BOOST_COMPILER) + std::string(" on ") + BOOST_PLATFORM, function, boost_name()); +#if !defined(COMPILER_COMPARISON_TABLES) && !defined(TEST_GSL) && !defined(TEST_RMATH) + report_execution_time(time, std::string("Library Comparison with ") + std::string(compiler_name()) + std::string(" on ") + platform_name(), function, boost_name()); +#endif + report_execution_time(time, std::string("Compiler Comparison on ") + std::string(platform_name()), function_short, compiler_name() + std::string("[br]") + boost_name()); // // Boost again, but with promotion to long double turned off: // @@ -62,7 +61,10 @@ int main() { time = exec_timed_test([](const std::vector& v){ return boost::math::ellint_rf(v[0], v[1], v[2], boost::math::policies::make_policy(boost::math::policies::promote_double())); }); std::cout << time << std::endl; - report_execution_time(time, std::string("Library Comparison with ") + std::string(BOOST_COMPILER) + std::string(" on ") + BOOST_PLATFORM, function, boost_name() + "[br]promote_double"); +#if !defined(COMPILER_COMPARISON_TABLES) && !defined(TEST_GSL) && !defined(TEST_RMATH) + report_execution_time(time, std::string("Library Comparison with ") + std::string(compiler_name()) + std::string(" on ") + platform_name(), function, boost_name() + "[br]promote_double"); +#endif + report_execution_time(time, std::string("Compiler Comparison on ") + std::string(platform_name()), function_short, compiler_name() + std::string("[br]") + boost_name() + "[br]promote_double"); } #endif @@ -70,7 +72,7 @@ int main() #if defined(TEST_GSL) && !defined(COMPILER_COMPARISON_TABLES) time = exec_timed_test([](const std::vector& v){ return gsl_sf_ellint_RF(v[0], v[1], v[2], GSL_PREC_DOUBLE); }); std::cout << time << std::endl; - report_execution_time(time, std::string("Library Comparison with ") + std::string(BOOST_COMPILER) + std::string(" on ") + BOOST_PLATFORM, function, "GSL " GSL_VERSION); + report_execution_time(time, std::string("Library Comparison with ") + std::string(compiler_name()) + std::string(" on ") + platform_name(), function, "GSL " GSL_VERSION); #endif return 0; diff --git a/reporting/performance/test_ellint_rj.cpp b/reporting/performance/test_ellint_rj.cpp index acae6b51b..845d8fa81 100644 --- a/reporting/performance/test_ellint_rj.cpp +++ b/reporting/performance/test_ellint_rj.cpp @@ -20,11 +20,6 @@ typedef double T; int main() { -#if !defined(COMPILER_COMPARISON_TABLES) && !defined(TEST_GSL) - // we have nothing to compare against, just bail out: - return 0; -#endif - #include "ellint_rj_data.ipp" #include "ellint_rj_e4.ipp" #include "ellint_rj_e3.ipp" @@ -48,12 +43,16 @@ int main() unsigned data_used = data.size(); std::string function = "ellint_rj[br](" + boost::lexical_cast(data_used) + "/" + boost::lexical_cast(data_total) + " tests selected)"; + std::string function_short = "ellint_rj"; double time; time = exec_timed_test([](const std::vector& v){ return boost::math::ellint_rj(v[0], v[1], v[2], v[3]); }); std::cout << time << std::endl; - report_execution_time(time, std::string("Library Comparison with ") + std::string(BOOST_COMPILER) + std::string(" on ") + BOOST_PLATFORM, function, boost_name()); +#if !defined(COMPILER_COMPARISON_TABLES) && !defined(TEST_GSL) && !defined(TEST_RMATH) + report_execution_time(time, std::string("Library Comparison with ") + std::string(compiler_name()) + std::string(" on ") + platform_name(), function, boost_name()); +#endif + report_execution_time(time, std::string("Compiler Comparison on ") + std::string(platform_name()), function_short, compiler_name() + std::string("[br]") + boost_name()); // // Boost again, but with promotion to long double turned off: // @@ -62,7 +61,10 @@ int main() { time = exec_timed_test([](const std::vector& v){ return boost::math::ellint_rj(v[0], v[1], v[2], v[3], boost::math::policies::make_policy(boost::math::policies::promote_double())); }); std::cout << time << std::endl; - report_execution_time(time, std::string("Library Comparison with ") + std::string(BOOST_COMPILER) + std::string(" on ") + BOOST_PLATFORM, function, boost_name() + "[br]promote_double"); +#if !defined(COMPILER_COMPARISON_TABLES) && !defined(TEST_GSL) && !defined(TEST_RMATH) + report_execution_time(time, std::string("Library Comparison with ") + std::string(compiler_name()) + std::string(" on ") + platform_name(), function, boost_name() + "[br]promote_double"); +#endif + report_execution_time(time, std::string("Compiler Comparison on ") + std::string(platform_name()), function_short, compiler_name() + std::string("[br]") + boost_name() + "[br]promote_double"); } #endif @@ -70,7 +72,7 @@ int main() #if defined(TEST_GSL) && !defined(COMPILER_COMPARISON_TABLES) time = exec_timed_test([](const std::vector& v){ return gsl_sf_ellint_RJ(v[0], v[1], v[2], v[3], GSL_PREC_DOUBLE); }); std::cout << time << std::endl; - report_execution_time(time, std::string("Library Comparison with ") + std::string(BOOST_COMPILER) + std::string(" on ") + BOOST_PLATFORM, function, "GSL " GSL_VERSION); + report_execution_time(time, std::string("Library Comparison with ") + std::string(compiler_name()) + std::string(" on ") + platform_name(), function, "GSL " GSL_VERSION); #endif return 0; diff --git a/reporting/performance/test_erf.cpp b/reporting/performance/test_erf.cpp index 1a6e8d116..01d7825f5 100644 --- a/reporting/performance/test_erf.cpp +++ b/reporting/performance/test_erf.cpp @@ -17,11 +17,6 @@ int main() { -#if !defined(COMPILER_COMPARISON_TABLES) && !defined(TEST_C99) && !defined(TEST_GSL) && !defined(TEST_LIBSTDCXX) - // we have nothing to compare against, just bail out: - return 0; -#endif - typedef double T; #define SC_(x) static_cast(x) # include "erf_small_data.ipp" @@ -48,10 +43,14 @@ int main() #endif unsigned data_used = data.size(); std::string function = "erf[br](" + boost::lexical_cast(data_used) + "/" + boost::lexical_cast(data_total) + " tests selected)"; + std::string function_short = "erf"; double time = exec_timed_test([](const std::vector& v){ return boost::math::erf(v[0]); }); std::cout << time << std::endl; - report_execution_time(time, std::string("Library Comparison with ") + std::string(BOOST_COMPILER) + std::string(" on ") + BOOST_PLATFORM, function, boost_name()); +#if !defined(COMPILER_COMPARISON_TABLES) && !defined(TEST_GSL) && !defined(TEST_RMATH) + report_execution_time(time, std::string("Library Comparison with ") + std::string(compiler_name()) + std::string(" on ") + platform_name(), function, boost_name()); +#endif + report_execution_time(time, std::string("Compiler Comparison on ") + std::string(platform_name()), function_short, compiler_name() + std::string("[br]") + boost_name()); // // Boost again, but with promotion to long double turned off: // @@ -60,7 +59,10 @@ int main() { double time = exec_timed_test([](const std::vector& v){ return boost::math::erf(v[0], boost::math::policies::make_policy(boost::math::policies::promote_double())); }); std::cout << time << std::endl; - report_execution_time(time, std::string("Library Comparison with ") + std::string(BOOST_COMPILER) + std::string(" on ") + BOOST_PLATFORM, function, boost_name() + "[br]promote_double"); +#if !defined(COMPILER_COMPARISON_TABLES) && !defined(TEST_GSL) && !defined(TEST_RMATH) + report_execution_time(time, std::string("Library Comparison with ") + std::string(compiler_name()) + std::string(" on ") + platform_name(), function, boost_name()); +#endif + report_execution_time(time, std::string("Compiler Comparison on ") + std::string(platform_name()), function_short, compiler_name() + std::string("[br]") + boost_name() + "[br]promote_double"); } #endif @@ -68,17 +70,17 @@ int main() #if defined(TEST_C99) && !defined(COMPILER_COMPARISON_TABLES) time = exec_timed_test([](const std::vector& v){ return ::erf(v[0]); }); std::cout << time << std::endl; - report_execution_time(time, std::string("Library Comparison with ") + std::string(BOOST_COMPILER) + std::string(" on ") + BOOST_PLATFORM, function, "math.h"); + report_execution_time(time, std::string("Library Comparison with ") + std::string(compiler_name()) + std::string(" on ") + platform_name(), function, "math.h"); #endif #if defined(TEST_LIBSTDCXX) && !defined(COMPILER_COMPARISON_TABLES) time = exec_timed_test([](const std::vector& v){ return std::tr1::erf(v[0]); }); std::cout << time << std::endl; - report_execution_time(time, std::string("Library Comparison with ") + std::string(BOOST_COMPILER) + std::string(" on ") + BOOST_PLATFORM, function, "tr1/cmath"); + report_execution_time(time, std::string("Library Comparison with ") + std::string(compiler_name()) + std::string(" on ") + platform_name(), function, "tr1/cmath"); #endif #if defined(TEST_GSL) && !defined(COMPILER_COMPARISON_TABLES) time = exec_timed_test([](const std::vector& v){ return gsl_sf_erf(v[0]); }); std::cout << time << std::endl; - report_execution_time(time, std::string("Library Comparison with ") + std::string(BOOST_COMPILER) + std::string(" on ") + BOOST_PLATFORM, function, "GSL " GSL_VERSION); + report_execution_time(time, std::string("Library Comparison with ") + std::string(compiler_name()) + std::string(" on ") + platform_name(), function, "GSL " GSL_VERSION); #endif diff --git a/reporting/performance/test_erfc.cpp b/reporting/performance/test_erfc.cpp index 5dc6397e2..4890b91dc 100644 --- a/reporting/performance/test_erfc.cpp +++ b/reporting/performance/test_erfc.cpp @@ -17,11 +17,6 @@ int main() { -#if !defined(COMPILER_COMPARISON_TABLES) && !defined(TEST_C99) && !defined(TEST_GSL) && !defined(TEST_LIBSTDCXX) - // we have nothing to compare against, just bail out: - return 0; -#endif - typedef double T; #define SC_(x) static_cast(x) # include "erf_small_data.ipp" @@ -49,10 +44,14 @@ int main() unsigned data_used = data.size(); std::string function = "erfc[br](" + boost::lexical_cast(data_used) + "/" + boost::lexical_cast(data_total) + " tests selected)"; + std::string function_short = "erfc"; double time = exec_timed_test([](const std::vector& v){ return boost::math::erfc(v[0]); }); std::cout << time << std::endl; - report_execution_time(time, std::string("Library Comparison with ") + std::string(BOOST_COMPILER) + std::string(" on ") + BOOST_PLATFORM, function, boost_name()); +#if !defined(COMPILER_COMPARISON_TABLES) && !defined(TEST_GSL) && !defined(TEST_RMATH) + report_execution_time(time, std::string("Library Comparison with ") + std::string(compiler_name()) + std::string(" on ") + platform_name(), function, boost_name()); +#endif + report_execution_time(time, std::string("Compiler Comparison on ") + std::string(platform_name()), function_short, compiler_name() + std::string("[br]") + boost_name()); // // Boost again, but with promotion to long double turned off: // @@ -61,7 +60,10 @@ int main() { double time = exec_timed_test([](const std::vector& v){ return boost::math::erfc(v[0], boost::math::policies::make_policy(boost::math::policies::promote_double())); }); std::cout << time << std::endl; - report_execution_time(time, std::string("Library Comparison with ") + std::string(BOOST_COMPILER) + std::string(" on ") + BOOST_PLATFORM, function, boost_name() + "[br]promote_double"); +#if !defined(COMPILER_COMPARISON_TABLES) && !defined(TEST_GSL) && !defined(TEST_RMATH) + report_execution_time(time, std::string("Library Comparison with ") + std::string(compiler_name()) + std::string(" on ") + platform_name(), function, boost_name() + "[br]promote_double"); +#endif + report_execution_time(time, std::string("Compiler Comparison on ") + std::string(platform_name()), function_short, compiler_name() + std::string("[br]") + boost_name() + "[br]promote_double"); } #endif @@ -69,18 +71,18 @@ int main() #if defined(TEST_C99) && !defined(COMPILER_COMPARISON_TABLES) time = exec_timed_test([](const std::vector& v){ return ::erfc(v[0]); }); std::cout << time << std::endl; - report_execution_time(time, std::string("Library Comparison with ") + std::string(BOOST_COMPILER) + std::string(" on ") + BOOST_PLATFORM, function, "math.h"); + report_execution_time(time, std::string("Library Comparison with ") + std::string(compiler_name()) + std::string(" on ") + platform_name(), function, "math.h"); #endif #if defined(TEST_LIBSTDCXX) && !defined(COMPILER_COMPARISON_TABLES) time = exec_timed_test([](const std::vector& v){ return std::tr1::erfc(v[0]); }); std::cout << time << std::endl; - report_execution_time(time, std::string("Library Comparison with ") + std::string(BOOST_COMPILER) + std::string(" on ") + BOOST_PLATFORM, function, "tr1/cmath"); + report_execution_time(time, std::string("Library Comparison with ") + std::string(compiler_name()) + std::string(" on ") + platform_name(), function, "tr1/cmath"); #endif #if defined(TEST_GSL) && !defined(COMPILER_COMPARISON_TABLES) time = exec_timed_test([](const std::vector& v){ return gsl_sf_erfc(v[0]); }); std::cout << time << std::endl; - report_execution_time(time, std::string("Library Comparison with ") + std::string(BOOST_COMPILER) + std::string(" on ") + BOOST_PLATFORM, function, "GSL " GSL_VERSION); + report_execution_time(time, std::string("Library Comparison with ") + std::string(compiler_name()) + std::string(" on ") + platform_name(), function, "GSL " GSL_VERSION); #endif diff --git a/reporting/performance/test_expint.cpp b/reporting/performance/test_expint.cpp index 0bd31ec7e..78fe33ea4 100644 --- a/reporting/performance/test_expint.cpp +++ b/reporting/performance/test_expint.cpp @@ -20,11 +20,6 @@ typedef double T; int main() { -#if !defined(COMPILER_COMPARISON_TABLES) && !defined(TEST_GSL) && !defined(TEST_LIBSTDCXX) - // we have nothing to compare against, just bail out: - return 0; -#endif - #include "expinti_data.ipp" #include "expinti_data_double.ipp" @@ -45,12 +40,16 @@ int main() unsigned data_used = data.size(); std::string function = "expint[br](" + boost::lexical_cast(data_used) + "/" + boost::lexical_cast(data_total) + " tests selected)"; + std::string function_short = "expint"; double time; time = exec_timed_test([](const std::vector& v){ return boost::math::expint(v[0]); }); std::cout << time << std::endl; - report_execution_time(time, std::string("Library Comparison with ") + std::string(BOOST_COMPILER) + std::string(" on ") + BOOST_PLATFORM, function, boost_name()); +#if !defined(COMPILER_COMPARISON_TABLES) && !defined(TEST_GSL) && !defined(TEST_RMATH) + report_execution_time(time, std::string("Library Comparison with ") + std::string(compiler_name()) + std::string(" on ") + platform_name(), function, boost_name()); +#endif + report_execution_time(time, std::string("Compiler Comparison on ") + std::string(platform_name()), function_short, compiler_name() + std::string("[br]") + boost_name()); // // Boost again, but with promotion to long double turned off: // @@ -59,7 +58,10 @@ int main() { time = exec_timed_test([](const std::vector& v){ return boost::math::expint(v[0], boost::math::policies::make_policy(boost::math::policies::promote_double())); }); std::cout << time << std::endl; - report_execution_time(time, std::string("Library Comparison with ") + std::string(BOOST_COMPILER) + std::string(" on ") + BOOST_PLATFORM, function, boost_name() + "[br]promote_double"); +#if !defined(COMPILER_COMPARISON_TABLES) && !defined(TEST_GSL) && !defined(TEST_RMATH) + report_execution_time(time, std::string("Library Comparison with ") + std::string(compiler_name()) + std::string(" on ") + platform_name(), function, boost_name() + "[br]promote_double"); +#endif + report_execution_time(time, std::string("Compiler Comparison on ") + std::string(platform_name()), function_short, compiler_name() + std::string("[br]") + boost_name() + "[br]promote_double"); } #endif @@ -67,12 +69,12 @@ int main() #if defined(TEST_LIBSTDCXX) && !defined(COMPILER_COMPARISON_TABLES) time = exec_timed_test([](const std::vector& v){ return std::tr1::expint(v[0]); }); std::cout << time << std::endl; - report_execution_time(time, std::string("Library Comparison with ") + std::string(BOOST_COMPILER) + std::string(" on ") + BOOST_PLATFORM, function, "tr1/cmath"); + report_execution_time(time, std::string("Library Comparison with ") + std::string(compiler_name()) + std::string(" on ") + platform_name(), function, "tr1/cmath"); #endif #if defined(TEST_GSL) && !defined(COMPILER_COMPARISON_TABLES) time = exec_timed_test([](const std::vector& v){ return gsl_sf_expint_Ei(v[0]); }); std::cout << time << std::endl; - report_execution_time(time, std::string("Library Comparison with ") + std::string(BOOST_COMPILER) + std::string(" on ") + BOOST_PLATFORM, function, "GSL " GSL_VERSION); + report_execution_time(time, std::string("Library Comparison with ") + std::string(compiler_name()) + std::string(" on ") + platform_name(), function, "GSL " GSL_VERSION); #endif return 0; diff --git a/reporting/performance/test_expint_n.cpp b/reporting/performance/test_expint_n.cpp index 9f9fed9c5..c52fa0bc7 100644 --- a/reporting/performance/test_expint_n.cpp +++ b/reporting/performance/test_expint_n.cpp @@ -20,10 +20,6 @@ typedef double T; int main() { -#if !defined(COMPILER_COMPARISON_TABLES) && !defined(TEST_GSL) - // we have nothing to compare against, just bail out: - return 0; -#endif #include "expint_data.ipp" #include "expint_small_data.ipp" #include "expint_1_data.ipp" @@ -43,12 +39,16 @@ int main() unsigned data_used = data.size(); std::string function = "expint (En)[br](" + boost::lexical_cast(data_used) + "/" + boost::lexical_cast(data_total) + " tests selected)"; + std::string function_short = "expint (En)"; double time; time = exec_timed_test([](const std::vector& v){ return boost::math::expint(static_cast(v[0]), v[1]); }); std::cout << time << std::endl; - report_execution_time(time, std::string("Library Comparison with ") + std::string(BOOST_COMPILER) + std::string(" on ") + BOOST_PLATFORM, function, boost_name()); +#if !defined(COMPILER_COMPARISON_TABLES) && !defined(TEST_GSL) && !defined(TEST_RMATH) + report_execution_time(time, std::string("Library Comparison with ") + std::string(compiler_name()) + std::string(" on ") + platform_name(), function, boost_name()); +#endif + report_execution_time(time, std::string("Compiler Comparison on ") + std::string(platform_name()), function_short, compiler_name() + std::string("[br]") + boost_name()); // // Boost again, but with promotion to long double turned off: // @@ -57,7 +57,10 @@ int main() { time = exec_timed_test([](const std::vector& v){ return boost::math::expint(static_cast(v[0]), v[1], boost::math::policies::make_policy(boost::math::policies::promote_double())); }); std::cout << time << std::endl; - report_execution_time(time, std::string("Library Comparison with ") + std::string(BOOST_COMPILER) + std::string(" on ") + BOOST_PLATFORM, function, boost_name() + "[br]promote_double"); +#if !defined(COMPILER_COMPARISON_TABLES) && !defined(TEST_GSL) && !defined(TEST_RMATH) + report_execution_time(time, std::string("Library Comparison with ") + std::string(compiler_name()) + std::string(" on ") + platform_name(), function, boost_name() + "[br]promote_double"); +#endif + report_execution_time(time, std::string("Compiler Comparison on ") + std::string(platform_name()), function_short, compiler_name() + std::string("[br]") + boost_name() + "[br]promote_double"); } #endif @@ -65,7 +68,7 @@ int main() #if defined(TEST_GSL) && !defined(COMPILER_COMPARISON_TABLES) time = exec_timed_test([](const std::vector& v){ return gsl_sf_expint_En(static_cast(v[0]), v[1]); }); std::cout << time << std::endl; - report_execution_time(time, std::string("Library Comparison with ") + std::string(BOOST_COMPILER) + std::string(" on ") + BOOST_PLATFORM, function, "GSL " GSL_VERSION); + report_execution_time(time, std::string("Library Comparison with ") + std::string(compiler_name()) + std::string(" on ") + platform_name(), function, "GSL " GSL_VERSION); #endif return 0; diff --git a/reporting/performance/test_expm1.cpp b/reporting/performance/test_expm1.cpp index aaa745e11..b62691c9b 100644 --- a/reporting/performance/test_expm1.cpp +++ b/reporting/performance/test_expm1.cpp @@ -17,10 +17,6 @@ int main() { -#if !defined(COMPILER_COMPARISON_TABLES) && !defined(TEST_C99) && !defined(TEST_LIBSTDCXX) - // we have nothing to compare against, just bail out: - return 0; -#endif typedef double T; #define SC_(x) static_cast(x) # include "../../test/log1p_expm1_data.ipp" @@ -41,10 +37,14 @@ int main() unsigned data_used = data.size(); std::string function = "expm1[br](" + boost::lexical_cast(data_used) + "/" + boost::lexical_cast(data_total) + " tests selected)"; + std::string function_short = "expm1"; double time = exec_timed_test([](const std::vector& v){ return boost::math::expm1(v[0]); }); std::cout << time << std::endl; - report_execution_time(time, std::string("Library Comparison with ") + std::string(BOOST_COMPILER) + std::string(" on ") + BOOST_PLATFORM, function, boost_name()); +#if !defined(COMPILER_COMPARISON_TABLES) && !defined(TEST_GSL) && !defined(TEST_RMATH) + report_execution_time(time, std::string("Library Comparison with ") + std::string(compiler_name()) + std::string(" on ") + platform_name(), function, boost_name()); +#endif + report_execution_time(time, std::string("Compiler Comparison on ") + std::string(platform_name()), function_short, compiler_name() + std::string("[br]") + boost_name()); // // Boost again, but with promotion to long double turned off: // @@ -53,7 +53,10 @@ int main() { double time = exec_timed_test([](const std::vector& v){ return boost::math::expm1(v[0], boost::math::policies::make_policy(boost::math::policies::promote_double())); }); std::cout << time << std::endl; - report_execution_time(time, std::string("Library Comparison with ") + std::string(BOOST_COMPILER) + std::string(" on ") + BOOST_PLATFORM, function, boost_name() + "[br]promote_double"); +#if !defined(COMPILER_COMPARISON_TABLES) && !defined(TEST_GSL) && !defined(TEST_RMATH) + report_execution_time(time, std::string("Library Comparison with ") + std::string(compiler_name()) + std::string(" on ") + platform_name(), function, boost_name() + "[br]promote_double"); +#endif + report_execution_time(time, std::string("Compiler Comparison on ") + std::string(platform_name()), function_short, compiler_name() + std::string("[br]") + boost_name() + "[br]promote_double"); } #endif @@ -61,12 +64,12 @@ int main() #if defined(TEST_C99) && !defined(COMPILER_COMPARISON_TABLES) time = exec_timed_test([](const std::vector& v){ return ::expm1(v[0]); }); std::cout << time << std::endl; - report_execution_time(time, std::string("Library Comparison with ") + std::string(BOOST_COMPILER) + std::string(" on ") + BOOST_PLATFORM, function, "math.h"); + report_execution_time(time, std::string("Library Comparison with ") + std::string(compiler_name()) + std::string(" on ") + platform_name(), function, "math.h"); #endif #if defined(TEST_LIBSTDCXX) && !defined(COMPILER_COMPARISON_TABLES) time = exec_timed_test([](const std::vector& v){ return std::tr1::expm1(v[0]); }); std::cout << time << std::endl; - report_execution_time(time, std::string("Library Comparison with ") + std::string(BOOST_COMPILER) + std::string(" on ") + BOOST_PLATFORM, function, "tr1/cmath"); + report_execution_time(time, std::string("Library Comparison with ") + std::string(compiler_name()) + std::string(" on ") + platform_name(), function, "tr1/cmath"); #endif diff --git a/reporting/performance/test_gamma_p.cpp b/reporting/performance/test_gamma_p.cpp index b55c2be1d..f7df82c41 100644 --- a/reporting/performance/test_gamma_p.cpp +++ b/reporting/performance/test_gamma_p.cpp @@ -20,11 +20,6 @@ typedef double T; int main() { -#if !defined(COMPILER_COMPARISON_TABLES) && !defined(TEST_GSL) && !defined(TEST_RMATH) - // we have nothing to compare against, just bail out: - return 0; -#endif - # include "igamma_med_data.ipp" # include "igamma_small_data.ipp" # include "igamma_big_data.ipp" @@ -49,12 +44,16 @@ int main() unsigned data_used = data.size(); std::string function = "gamma_p[br](" + boost::lexical_cast(data_used) + "/" + boost::lexical_cast(data_total) + " tests selected)"; + std::string function_short = "gamma_p"; double time; time = exec_timed_test([](const std::vector& v){ return boost::math::gamma_p(v[0], v[1]); }); std::cout << time << std::endl; - report_execution_time(time, std::string("Library Comparison with ") + std::string(BOOST_COMPILER) + std::string(" on ") + BOOST_PLATFORM, function, boost_name()); +#if !defined(COMPILER_COMPARISON_TABLES) && !defined(TEST_GSL) && !defined(TEST_RMATH) + report_execution_time(time, std::string("Library Comparison with ") + std::string(compiler_name()) + std::string(" on ") + platform_name(), function, boost_name()); +#endif + report_execution_time(time, std::string("Compiler Comparison on ") + std::string(platform_name()), function_short, compiler_name() + std::string("[br]") + boost_name()); // // Boost again, but with promotion to long double turned off: // @@ -63,7 +62,10 @@ int main() { time = exec_timed_test([](const std::vector& v){ return boost::math::gamma_p(v[0], v[1], boost::math::policies::make_policy(boost::math::policies::promote_double())); }); std::cout << time << std::endl; - report_execution_time(time, std::string("Library Comparison with ") + std::string(BOOST_COMPILER) + std::string(" on ") + BOOST_PLATFORM, function, boost_name() + "[br]promote_double"); +#if !defined(COMPILER_COMPARISON_TABLES) && !defined(TEST_GSL) && !defined(TEST_RMATH) + report_execution_time(time, std::string("Library Comparison with ") + std::string(compiler_name()) + std::string(" on ") + platform_name(), function, boost_name() + "[br]promote_double"); +#endif + report_execution_time(time, std::string("Compiler Comparison on ") + std::string(platform_name()), function_short, compiler_name() + std::string("[br]") + boost_name() + "[br]promote_double"); } #endif @@ -71,12 +73,12 @@ int main() #if defined(TEST_GSL) && !defined(COMPILER_COMPARISON_TABLES) time = exec_timed_test([](const std::vector& v){ return gsl_sf_gamma_inc_P(v[0], v[1]); }); std::cout << time << std::endl; - report_execution_time(time, std::string("Library Comparison with ") + std::string(BOOST_COMPILER) + std::string(" on ") + BOOST_PLATFORM, function, "GSL " GSL_VERSION); + report_execution_time(time, std::string("Library Comparison with ") + std::string(compiler_name()) + std::string(" on ") + platform_name(), function, "GSL " GSL_VERSION); #endif #if defined(TEST_RMATH) && !defined(COMPILER_COMPARISON_TABLES) time = exec_timed_test([](const std::vector& v){ return pgamma(v[1], v[0], 1.0, 1, 0); }); std::cout << time << std::endl; - report_execution_time(time, std::string("Library Comparison with ") + std::string(BOOST_COMPILER) + std::string(" on ") + BOOST_PLATFORM, function, "Rmath " R_VERSION_STRING); + report_execution_time(time, std::string("Library Comparison with ") + std::string(compiler_name()) + std::string(" on ") + platform_name(), function, "Rmath " R_VERSION_STRING); #endif return 0; diff --git a/reporting/performance/test_gamma_p_inv.cpp b/reporting/performance/test_gamma_p_inv.cpp index bf70f40d9..77e45c4be 100644 --- a/reporting/performance/test_gamma_p_inv.cpp +++ b/reporting/performance/test_gamma_p_inv.cpp @@ -20,11 +20,6 @@ typedef double T; int main() { -#if !defined(COMPILER_COMPARISON_TABLES) && !defined(TEST_RMATH) - // we have nothing to compare against, just bail out: - return 0; -#endif - # include "gamma_inv_data.ipp" # include "gamma_inv_big_data.ipp" # include "gamma_inv_small_data.ipp" @@ -46,12 +41,16 @@ int main() unsigned data_used = data.size(); std::string function = "gamma_p_inv[br](" + boost::lexical_cast(data_used) + "/" + boost::lexical_cast(data_total) + " tests selected)"; + std::string function_short = "gamma_p_inv"; double time; time = exec_timed_test([](const std::vector& v){ return boost::math::gamma_p_inv(v[0], v[1]); }); std::cout << time << std::endl; - report_execution_time(time, std::string("Library Comparison with ") + std::string(BOOST_COMPILER) + std::string(" on ") + BOOST_PLATFORM, function, boost_name()); +#if !defined(COMPILER_COMPARISON_TABLES) && !defined(TEST_GSL) && !defined(TEST_RMATH) + report_execution_time(time, std::string("Library Comparison with ") + std::string(compiler_name()) + std::string(" on ") + platform_name(), function, boost_name()); +#endif + report_execution_time(time, std::string("Compiler Comparison on ") + std::string(platform_name()), function_short, compiler_name() + std::string("[br]") + boost_name()); // // Boost again, but with promotion to long double turned off: // @@ -60,7 +59,10 @@ int main() { time = exec_timed_test([](const std::vector& v){ return boost::math::gamma_p_inv(v[0], v[1], boost::math::policies::make_policy(boost::math::policies::promote_double())); }); std::cout << time << std::endl; - report_execution_time(time, std::string("Library Comparison with ") + std::string(BOOST_COMPILER) + std::string(" on ") + BOOST_PLATFORM, function, boost_name() + "[br]promote_double"); +#if !defined(COMPILER_COMPARISON_TABLES) && !defined(TEST_GSL) && !defined(TEST_RMATH) + report_execution_time(time, std::string("Library Comparison with ") + std::string(compiler_name()) + std::string(" on ") + platform_name(), function, boost_name() + "[br]promote_double"); +#endif + report_execution_time(time, std::string("Compiler Comparison on ") + std::string(platform_name()), function_short, compiler_name() + std::string("[br]") + boost_name() + "[br]promote_double"); } #endif @@ -68,7 +70,7 @@ int main() #if defined(TEST_RMATH) && !defined(COMPILER_COMPARISON_TABLES) time = exec_timed_test([](const std::vector& v){ return qgamma(v[1], v[0], 1.0, 1, 0); }); std::cout << time << std::endl; - report_execution_time(time, std::string("Library Comparison with ") + std::string(BOOST_COMPILER) + std::string(" on ") + BOOST_PLATFORM, function, "Rmath " R_VERSION_STRING); + report_execution_time(time, std::string("Library Comparison with ") + std::string(compiler_name()) + std::string(" on ") + platform_name(), function, "Rmath " R_VERSION_STRING); #endif return 0; diff --git a/reporting/performance/test_gamma_q.cpp b/reporting/performance/test_gamma_q.cpp index 69d813133..778b9acda 100644 --- a/reporting/performance/test_gamma_q.cpp +++ b/reporting/performance/test_gamma_q.cpp @@ -20,11 +20,6 @@ typedef double T; int main() { -#if !defined(COMPILER_COMPARISON_TABLES) && !defined(TEST_GSL) && !defined(TEST_RMATH) - // we have nothing to compare against, just bail out: - return 0; -#endif - # include "igamma_med_data.ipp" # include "igamma_small_data.ipp" # include "igamma_big_data.ipp" @@ -53,12 +48,16 @@ int main() unsigned data_used = data.size(); std::string function = "gamma_q[br](" + boost::lexical_cast(data_used) + "/" + boost::lexical_cast(data_total) + " tests selected)"; + std::string function_short = "gamma_q"; double time; time = exec_timed_test([](const std::vector& v){ return boost::math::gamma_q(v[0], v[1]); }); std::cout << time << std::endl; - report_execution_time(time, std::string("Library Comparison with ") + std::string(BOOST_COMPILER) + std::string(" on ") + BOOST_PLATFORM, function, boost_name()); +#if !defined(COMPILER_COMPARISON_TABLES) && !defined(TEST_GSL) && !defined(TEST_RMATH) + report_execution_time(time, std::string("Library Comparison with ") + std::string(compiler_name()) + std::string(" on ") + platform_name(), function, boost_name()); +#endif + report_execution_time(time, std::string("Compiler Comparison on ") + std::string(platform_name()), function_short, compiler_name() + std::string("[br]") + boost_name()); // // Boost again, but with promotion to long double turned off: // @@ -67,7 +66,10 @@ int main() { time = exec_timed_test([](const std::vector& v){ return boost::math::gamma_q(v[0], v[1], boost::math::policies::make_policy(boost::math::policies::promote_double())); }); std::cout << time << std::endl; - report_execution_time(time, std::string("Library Comparison with ") + std::string(BOOST_COMPILER) + std::string(" on ") + BOOST_PLATFORM, function, boost_name() + "[br]promote_double"); +#if !defined(COMPILER_COMPARISON_TABLES) && !defined(TEST_GSL) && !defined(TEST_RMATH) + report_execution_time(time, std::string("Library Comparison with ") + std::string(compiler_name()) + std::string(" on ") + platform_name(), function, boost_name() + "[br]promote_double"); +#endif + report_execution_time(time, std::string("Compiler Comparison on ") + std::string(platform_name()), function_short, compiler_name() + std::string("[br]") + boost_name() + "[br]promote_double"); } #endif @@ -75,12 +77,12 @@ int main() #if defined(TEST_GSL) && !defined(COMPILER_COMPARISON_TABLES) time = exec_timed_test([](const std::vector& v){ return gsl_sf_gamma_inc_Q(v[0], v[1]); }); std::cout << time << std::endl; - report_execution_time(time, std::string("Library Comparison with ") + std::string(BOOST_COMPILER) + std::string(" on ") + BOOST_PLATFORM, function, "GSL " GSL_VERSION); + report_execution_time(time, std::string("Library Comparison with ") + std::string(compiler_name()) + std::string(" on ") + platform_name(), function, "GSL " GSL_VERSION); #endif #if defined(TEST_RMATH) && !defined(COMPILER_COMPARISON_TABLES) time = exec_timed_test([](const std::vector& v){ return pgamma(v[1], v[0], 1.0, 0, 0); }); std::cout << time << std::endl; - report_execution_time(time, std::string("Library Comparison with ") + std::string(BOOST_COMPILER) + std::string(" on ") + BOOST_PLATFORM, function, "Rmath " R_VERSION_STRING); + report_execution_time(time, std::string("Library Comparison with ") + std::string(compiler_name()) + std::string(" on ") + platform_name(), function, "Rmath " R_VERSION_STRING); #endif return 0; diff --git a/reporting/performance/test_gamma_q_inv.cpp b/reporting/performance/test_gamma_q_inv.cpp index 5123868a1..5f2aeef42 100644 --- a/reporting/performance/test_gamma_q_inv.cpp +++ b/reporting/performance/test_gamma_q_inv.cpp @@ -20,11 +20,6 @@ typedef double T; int main() { -#if !defined(COMPILER_COMPARISON_TABLES) && !defined(TEST_RMATH) - // we have nothing to compare against, just bail out: - return 0; -#endif - # include "gamma_inv_data.ipp" # include "gamma_inv_big_data.ipp" # include "gamma_inv_small_data.ipp" @@ -46,12 +41,16 @@ int main() unsigned data_used = data.size(); std::string function = "gamma_q_inv[br](" + boost::lexical_cast(data_used) + "/" + boost::lexical_cast(data_total) + " tests selected)"; + std::string function_short = "gamma_q_inv"; double time; time = exec_timed_test([](const std::vector& v){ return boost::math::gamma_q_inv(v[0], v[1]); }); std::cout << time << std::endl; - report_execution_time(time, std::string("Library Comparison with ") + std::string(BOOST_COMPILER) + std::string(" on ") + BOOST_PLATFORM, function, boost_name()); +#if !defined(COMPILER_COMPARISON_TABLES) && !defined(TEST_GSL) && !defined(TEST_RMATH) + report_execution_time(time, std::string("Library Comparison with ") + std::string(compiler_name()) + std::string(" on ") + platform_name(), function, boost_name()); +#endif + report_execution_time(time, std::string("Compiler Comparison on ") + std::string(platform_name()), function_short, compiler_name() + std::string("[br]") + boost_name()); // // Boost again, but with promotion to long double turned off: // @@ -60,7 +59,10 @@ int main() { time = exec_timed_test([](const std::vector& v){ return boost::math::gamma_q_inv(v[0], v[1], boost::math::policies::make_policy(boost::math::policies::promote_double())); }); std::cout << time << std::endl; - report_execution_time(time, std::string("Library Comparison with ") + std::string(BOOST_COMPILER) + std::string(" on ") + BOOST_PLATFORM, function, boost_name() + "[br]promote_double"); +#if !defined(COMPILER_COMPARISON_TABLES) && !defined(TEST_GSL) && !defined(TEST_RMATH) + report_execution_time(time, std::string("Library Comparison with ") + std::string(compiler_name()) + std::string(" on ") + platform_name(), function, boost_name() + "[br]promote_double"); +#endif + report_execution_time(time, std::string("Compiler Comparison on ") + std::string(platform_name()), function_short, compiler_name() + std::string("[br]") + boost_name() + "[br]promote_double"); } #endif @@ -68,7 +70,7 @@ int main() #if defined(TEST_RMATH) && !defined(COMPILER_COMPARISON_TABLES) time = exec_timed_test([](const std::vector& v){ return qgamma(v[1], v[0], 1.0, 0, 0); }); std::cout << time << std::endl; - report_execution_time(time, std::string("Library Comparison with ") + std::string(BOOST_COMPILER) + std::string(" on ") + BOOST_PLATFORM, function, "Rmath " R_VERSION_STRING); + report_execution_time(time, std::string("Library Comparison with ") + std::string(compiler_name()) + std::string(" on ") + platform_name(), function, "Rmath " R_VERSION_STRING); #endif return 0; diff --git a/reporting/performance/test_ibeta.cpp b/reporting/performance/test_ibeta.cpp index 0850dfec3..ebc26ef4e 100644 --- a/reporting/performance/test_ibeta.cpp +++ b/reporting/performance/test_ibeta.cpp @@ -21,11 +21,6 @@ typedef double T; int main() { -#if !defined(COMPILER_COMPARISON_TABLES) && !defined(TEST_RMATH) - // we have nothing to compare against, just bail out: - return 0; -#endif - # include "ibeta_small_data.ipp" # include "ibeta_data.ipp" # include "ibeta_large_data.ipp" @@ -49,12 +44,16 @@ int main() unsigned data_used = data.size(); std::string function = "ibeta[br](" + boost::lexical_cast(data_used) + "/" + boost::lexical_cast(data_total) + " tests selected)"; + std::string function_short = "ibeta"; double time; time = exec_timed_test([](const std::vector& v){ return boost::math::ibeta(v[0], v[1], v[2]); }); std::cout << time << std::endl; - report_execution_time(time, std::string("Library Comparison with ") + std::string(BOOST_COMPILER) + std::string(" on ") + BOOST_PLATFORM, function, boost_name()); +#if !defined(COMPILER_COMPARISON_TABLES) && !defined(TEST_GSL) && !defined(TEST_RMATH) + report_execution_time(time, std::string("Library Comparison with ") + std::string(compiler_name()) + std::string(" on ") + platform_name(), function, boost_name()); +#endif + report_execution_time(time, std::string("Compiler Comparison on ") + std::string(platform_name()), function_short, compiler_name() + std::string("[br]") + boost_name()); // // Boost again, but with promotion to long double turned off: // @@ -63,7 +62,10 @@ int main() { time = exec_timed_test([](const std::vector& v){ return boost::math::ibeta(v[0], v[1], v[2], boost::math::policies::make_policy(boost::math::policies::promote_double())); }); std::cout << time << std::endl; - report_execution_time(time, std::string("Library Comparison with ") + std::string(BOOST_COMPILER) + std::string(" on ") + BOOST_PLATFORM, function, boost_name() + "[br]promote_double"); +#if !defined(COMPILER_COMPARISON_TABLES) && !defined(TEST_GSL) && !defined(TEST_RMATH) + report_execution_time(time, std::string("Library Comparison with ") + std::string(compiler_name()) + std::string(" on ") + platform_name(), function, boost_name() + "[br]promote_double"); +#endif + report_execution_time(time, std::string("Compiler Comparison on ") + std::string(platform_name()), function_short, compiler_name() + std::string("[br]") + boost_name() + "[br]promote_double"); } #endif @@ -71,7 +73,7 @@ int main() #if defined(TEST_RMATH) && !defined(COMPILER_COMPARISON_TABLES) time = exec_timed_test([](const std::vector& v){ return ::pbeta(v[2], v[0], v[1], 1, 0); }); std::cout << time << std::endl; - report_execution_time(time, std::string("Library Comparison with ") + std::string(BOOST_COMPILER) + std::string(" on ") + BOOST_PLATFORM, function, "Rmath " R_VERSION_STRING); + report_execution_time(time, std::string("Library Comparison with ") + std::string(compiler_name()) + std::string(" on ") + platform_name(), function, "Rmath " R_VERSION_STRING); #endif return 0; diff --git a/reporting/performance/test_ibeta_inv.cpp b/reporting/performance/test_ibeta_inv.cpp index 11a403a85..805a98362 100644 --- a/reporting/performance/test_ibeta_inv.cpp +++ b/reporting/performance/test_ibeta_inv.cpp @@ -21,11 +21,6 @@ typedef double T; int main() { -#if !defined(COMPILER_COMPARISON_TABLES) && !defined(TEST_RMATH) - // we have nothing to compare against, just bail out: - return 0; -#endif - # include "ibeta_inv_data.ipp" add_data(ibeta_inv_data); @@ -43,15 +38,19 @@ int main() unsigned data_used = data.size(); std::string function = "ibeta_inv[br](" + boost::lexical_cast(data_used) + "/" + boost::lexical_cast(data_total) + " tests selected)"; + std::string function_short = "ibeta_inv"; double time; time = exec_timed_test([](const std::vector& v){ return boost::math::ibeta_inv(v[0], v[1], v[2]); }); std::cout << time << std::endl; #if defined(COMPILER_COMPARISON_TABLES) - report_execution_time(time, std::string("Compiler Option Comparison on ") + BOOST_PLATFORM, "boost::math::ibeta_inv", get_compiler_options_name()); + report_execution_time(time, std::string("Compiler Option Comparison on ") + platform_name(), "boost::math::ibeta_inv", get_compiler_options_name()); #else - report_execution_time(time, std::string("Library Comparison with ") + std::string(BOOST_COMPILER) + std::string(" on ") + BOOST_PLATFORM, function, boost_name()); +#if !defined(COMPILER_COMPARISON_TABLES) && !defined(TEST_GSL) && !defined(TEST_RMATH) + report_execution_time(time, std::string("Library Comparison with ") + std::string(compiler_name()) + std::string(" on ") + platform_name(), function, boost_name()); +#endif + report_execution_time(time, std::string("Compiler Comparison on ") + std::string(platform_name()), function_short, compiler_name() + std::string("[br]") + boost_name()); #endif // // Boost again, but with promotion to long double turned off: @@ -61,7 +60,10 @@ int main() { time = exec_timed_test([](const std::vector& v){ return boost::math::ibeta_inv(v[0], v[1], v[2], boost::math::policies::make_policy(boost::math::policies::promote_double())); }); std::cout << time << std::endl; - report_execution_time(time, std::string("Library Comparison with ") + std::string(BOOST_COMPILER) + std::string(" on ") + BOOST_PLATFORM, function, boost_name() + "[br]promote_double"); +#if !defined(COMPILER_COMPARISON_TABLES) && !defined(TEST_GSL) && !defined(TEST_RMATH) + report_execution_time(time, std::string("Library Comparison with ") + std::string(compiler_name()) + std::string(" on ") + platform_name(), function, boost_name() + "[br]promote_double"); +#endif + report_execution_time(time, std::string("Compiler Comparison on ") + std::string(platform_name()), function_short, compiler_name() + std::string("[br]") + boost_name() + "[br]promote_double"); } #endif @@ -69,7 +71,7 @@ int main() #if defined(TEST_RMATH) && !defined(COMPILER_COMPARISON_TABLES) time = exec_timed_test([](const std::vector& v){ return ::qbeta(v[2], v[0], v[1], 1, 0); }); std::cout << time << std::endl; - report_execution_time(time, std::string("Library Comparison with ") + std::string(BOOST_COMPILER) + std::string(" on ") + BOOST_PLATFORM, function, "Rmath " R_VERSION_STRING); + report_execution_time(time, std::string("Library Comparison with ") + std::string(compiler_name()) + std::string(" on ") + platform_name(), function, "Rmath " R_VERSION_STRING); #endif return 0; diff --git a/reporting/performance/test_ibetac.cpp b/reporting/performance/test_ibetac.cpp index 27a1a48b3..15e506df6 100644 --- a/reporting/performance/test_ibetac.cpp +++ b/reporting/performance/test_ibetac.cpp @@ -21,11 +21,6 @@ typedef double T; int main() { -#if !defined(COMPILER_COMPARISON_TABLES) && !defined(TEST_RMATH) - // we have nothing to compare against, just bail out: - return 0; -#endif - # include "ibeta_small_data.ipp" # include "ibeta_data.ipp" # include "ibeta_large_data.ipp" @@ -49,12 +44,16 @@ int main() unsigned data_used = data.size(); std::string function = "ibetac[br](" + boost::lexical_cast(data_used) + "/" + boost::lexical_cast(data_total) + " tests selected)"; + std::string function_short = "ibetac"; double time; time = exec_timed_test([](const std::vector& v){ return boost::math::ibetac(v[0], v[1], v[2]); }); std::cout << time << std::endl; - report_execution_time(time, std::string("Library Comparison with ") + std::string(BOOST_COMPILER) + std::string(" on ") + BOOST_PLATFORM, function, boost_name()); +#if !defined(COMPILER_COMPARISON_TABLES) && !defined(TEST_GSL) && !defined(TEST_RMATH) + report_execution_time(time, std::string("Library Comparison with ") + std::string(compiler_name()) + std::string(" on ") + platform_name(), function, boost_name()); +#endif + report_execution_time(time, std::string("Compiler Comparison on ") + std::string(platform_name()), function_short, compiler_name() + std::string("[br]") + boost_name()); // // Boost again, but with promotion to long double turned off: // @@ -63,7 +62,10 @@ int main() { time = exec_timed_test([](const std::vector& v){ return boost::math::ibetac(v[0], v[1], v[2], boost::math::policies::make_policy(boost::math::policies::promote_double())); }); std::cout << time << std::endl; - report_execution_time(time, std::string("Library Comparison with ") + std::string(BOOST_COMPILER) + std::string(" on ") + BOOST_PLATFORM, function, boost_name() + "[br]promote_double"); +#if !defined(COMPILER_COMPARISON_TABLES) && !defined(TEST_GSL) && !defined(TEST_RMATH) + report_execution_time(time, std::string("Library Comparison with ") + std::string(compiler_name()) + std::string(" on ") + platform_name(), function, boost_name() + "[br]promote_double"); +#endif + report_execution_time(time, std::string("Compiler Comparison on ") + std::string(platform_name()), function_short, compiler_name() + std::string("[br]") + boost_name() + "[br]promote_double"); } #endif @@ -71,7 +73,7 @@ int main() #if defined(TEST_RMATH) && !defined(COMPILER_COMPARISON_TABLES) time = exec_timed_test([](const std::vector& v){ return ::pbeta(v[2], v[0], v[1], 0, 0); }); std::cout << time << std::endl; - report_execution_time(time, std::string("Library Comparison with ") + std::string(BOOST_COMPILER) + std::string(" on ") + BOOST_PLATFORM, function, "Rmath " R_VERSION_STRING); + report_execution_time(time, std::string("Library Comparison with ") + std::string(compiler_name()) + std::string(" on ") + platform_name(), function, "Rmath " R_VERSION_STRING); #endif return 0; diff --git a/reporting/performance/test_ibetac_inv.cpp b/reporting/performance/test_ibetac_inv.cpp index a59338c2b..0a5842801 100644 --- a/reporting/performance/test_ibetac_inv.cpp +++ b/reporting/performance/test_ibetac_inv.cpp @@ -21,11 +21,6 @@ typedef double T; int main() { -#if !defined(COMPILER_COMPARISON_TABLES) && !defined(TEST_RMATH) - // we have nothing to compare against, just bail out: - return 0; -#endif - # include "ibeta_inv_data.ipp" add_data(ibeta_inv_data); @@ -43,12 +38,16 @@ int main() unsigned data_used = data.size(); std::string function = "ibetac_inv[br](" + boost::lexical_cast(data_used) + "/" + boost::lexical_cast(data_total) + " tests selected)"; + std::string function_short = "ibetac_inv"; double time; time = exec_timed_test([](const std::vector& v){ return boost::math::ibetac_inv(v[0], v[1], v[2]); }); std::cout << time << std::endl; - report_execution_time(time, std::string("Library Comparison with ") + std::string(BOOST_COMPILER) + std::string(" on ") + BOOST_PLATFORM, function, boost_name()); +#if !defined(COMPILER_COMPARISON_TABLES) && !defined(TEST_GSL) && !defined(TEST_RMATH) + report_execution_time(time, std::string("Library Comparison with ") + std::string(compiler_name()) + std::string(" on ") + platform_name(), function, boost_name()); +#endif + report_execution_time(time, std::string("Compiler Comparison on ") + std::string(platform_name()), function_short, compiler_name() + std::string("[br]") + boost_name()); // // Boost again, but with promotion to long double turned off: // @@ -57,7 +56,10 @@ int main() { time = exec_timed_test([](const std::vector& v){ return boost::math::ibetac_inv(v[0], v[1], v[2], boost::math::policies::make_policy(boost::math::policies::promote_double())); }); std::cout << time << std::endl; - report_execution_time(time, std::string("Library Comparison with ") + std::string(BOOST_COMPILER) + std::string(" on ") + BOOST_PLATFORM, function, boost_name() + "[br]promote_double"); +#if !defined(COMPILER_COMPARISON_TABLES) && !defined(TEST_GSL) && !defined(TEST_RMATH) + report_execution_time(time, std::string("Library Comparison with ") + std::string(compiler_name()) + std::string(" on ") + platform_name(), function, boost_name() + "[br]promote_double"); +#endif + report_execution_time(time, std::string("Compiler Comparison on ") + std::string(platform_name()), function_short, compiler_name() + std::string("[br]") + boost_name() + "[br]promote_double"); } #endif @@ -65,7 +67,7 @@ int main() #if defined(TEST_RMATH) && !defined(COMPILER_COMPARISON_TABLES) time = exec_timed_test([](const std::vector& v){ return ::qbeta(v[2], v[0], v[1], 0, 0); }); std::cout << time << std::endl; - report_execution_time(time, std::string("Library Comparison with ") + std::string(BOOST_COMPILER) + std::string(" on ") + BOOST_PLATFORM, function, "Rmath " R_VERSION_STRING); + report_execution_time(time, std::string("Library Comparison with ") + std::string(compiler_name()) + std::string(" on ") + platform_name(), function, "Rmath " R_VERSION_STRING); #endif return 0; diff --git a/reporting/performance/test_igamma.cpp b/reporting/performance/test_igamma.cpp index 48f7a23d6..404f8dcbc 100644 --- a/reporting/performance/test_igamma.cpp +++ b/reporting/performance/test_igamma.cpp @@ -20,11 +20,6 @@ typedef double T; int main() { -#if !defined(COMPILER_COMPARISON_TABLES) && !defined(TEST_GSL) - // we have nothing to compare against, just bail out: - return 0; -#endif - # include "igamma_med_data.ipp" # include "igamma_small_data.ipp" # include "igamma_big_data.ipp" @@ -46,12 +41,16 @@ int main() unsigned data_used = data.size(); std::string function = "tgamma (incomplete)[br](" + boost::lexical_cast(data_used) + "/" + boost::lexical_cast(data_total) + " tests selected)"; + std::string function_short = "tgamma (incomplete)"; double time; time = exec_timed_test([](const std::vector& v){ return boost::math::tgamma(v[0], v[1]); }); std::cout << time << std::endl; - report_execution_time(time, std::string("Library Comparison with ") + std::string(BOOST_COMPILER) + std::string(" on ") + BOOST_PLATFORM, function, boost_name()); +#if !defined(COMPILER_COMPARISON_TABLES) && !defined(TEST_GSL) && !defined(TEST_RMATH) + report_execution_time(time, std::string("Library Comparison with ") + std::string(compiler_name()) + std::string(" on ") + platform_name(), function, boost_name()); +#endif + report_execution_time(time, std::string("Compiler Comparison on ") + std::string(platform_name()), function_short, compiler_name() + std::string("[br]") + boost_name()); // // Boost again, but with promotion to long double turned off: // @@ -60,7 +59,10 @@ int main() { time = exec_timed_test([](const std::vector& v){ return boost::math::tgamma(v[0], v[1], boost::math::policies::make_policy(boost::math::policies::promote_double())); }); std::cout << time << std::endl; - report_execution_time(time, std::string("Library Comparison with ") + std::string(BOOST_COMPILER) + std::string(" on ") + BOOST_PLATFORM, function, boost_name() + "[br]promote_double"); +#if !defined(COMPILER_COMPARISON_TABLES) && !defined(TEST_GSL) && !defined(TEST_RMATH) + report_execution_time(time, std::string("Library Comparison with ") + std::string(compiler_name()) + std::string(" on ") + platform_name(), function, boost_name() + "[br]promote_double"); +#endif + report_execution_time(time, std::string("Compiler Comparison on ") + std::string(platform_name()), function_short, compiler_name() + std::string("[br]") + boost_name() + "[br]promote_double"); } #endif @@ -68,7 +70,7 @@ int main() #if defined(TEST_GSL) && !defined(COMPILER_COMPARISON_TABLES) time = exec_timed_test([](const std::vector& v){ return gsl_sf_gamma_inc(v[0], v[1]); }); std::cout << time << std::endl; - report_execution_time(time, std::string("Library Comparison with ") + std::string(BOOST_COMPILER) + std::string(" on ") + BOOST_PLATFORM, function, "GSL " GSL_VERSION); + report_execution_time(time, std::string("Library Comparison with ") + std::string(compiler_name()) + std::string(" on ") + platform_name(), function, "GSL " GSL_VERSION); #endif return 0; diff --git a/reporting/performance/test_in.cpp b/reporting/performance/test_in.cpp index 82692eae2..74a6bcec3 100644 --- a/reporting/performance/test_in.cpp +++ b/reporting/performance/test_in.cpp @@ -57,11 +57,6 @@ static const boost::array, 11> in_data = { { int main() { -#if !defined(COMPILER_COMPARISON_TABLES) && !defined(TEST_GSL) && !defined(TEST_LIBSTDCXX) && !defined(TEST_RMATH) - // we have nothing to compare against, just bail out: - return 0; -#endif - #include "bessel_i_int_data.ipp" add_data(i0_data); @@ -85,12 +80,16 @@ int main() unsigned data_used = data.size(); std::string function = "cyl_bessel_i (integer order)[br](" + boost::lexical_cast(data_used) + "/" + boost::lexical_cast(data_total) + " tests selected)"; + std::string function_short = "cyl_bessel_i (integer order)"; double time; time = exec_timed_test([](const std::vector& v){ return boost::math::cyl_bessel_i(static_cast(v[0]), v[1]); }); std::cout << time << std::endl; - report_execution_time(time, std::string("Library Comparison with ") + std::string(BOOST_COMPILER) + std::string(" on ") + BOOST_PLATFORM, function, boost_name()); +#if !defined(COMPILER_COMPARISON_TABLES) && !defined(TEST_GSL) && !defined(TEST_RMATH) + report_execution_time(time, std::string("Library Comparison with ") + std::string(compiler_name()) + std::string(" on ") + platform_name(), function, boost_name()); +#endif + report_execution_time(time, std::string("Compiler Comparison on ") + std::string(platform_name()), function_short, compiler_name() + std::string("[br]") + boost_name()); // // Boost again, but with promotion to long double turned off: // @@ -99,7 +98,10 @@ int main() { time = exec_timed_test([](const std::vector& v){ return boost::math::cyl_bessel_i(static_cast(v[0]), v[1], boost::math::policies::make_policy(boost::math::policies::promote_double())); }); std::cout << time << std::endl; - report_execution_time(time, std::string("Library Comparison with ") + std::string(BOOST_COMPILER) + std::string(" on ") + BOOST_PLATFORM, function, boost_name() + "[br]promote_double"); +#if !defined(COMPILER_COMPARISON_TABLES) && !defined(TEST_GSL) && !defined(TEST_RMATH) + report_execution_time(time, std::string("Library Comparison with ") + std::string(compiler_name()) + std::string(" on ") + platform_name(), function, boost_name() + "[br]promote_double"); +#endif + report_execution_time(time, std::string("Compiler Comparison on ") + std::string(platform_name()), function_short, compiler_name() + std::string("[br]") + boost_name() + "[br]promote_double"); } #endif @@ -107,17 +109,17 @@ int main() #if defined(TEST_LIBSTDCXX) && !defined(COMPILER_COMPARISON_TABLES) time = exec_timed_test([](const std::vector& v){ return std::tr1::cyl_bessel_i(static_cast(v[0]), v[1]); }); std::cout << time << std::endl; - report_execution_time(time, std::string("Library Comparison with ") + std::string(BOOST_COMPILER) + std::string(" on ") + BOOST_PLATFORM, function, "tr1/cmath"); + report_execution_time(time, std::string("Library Comparison with ") + std::string(compiler_name()) + std::string(" on ") + platform_name(), function, "tr1/cmath"); #endif #if defined(TEST_GSL) && !defined(COMPILER_COMPARISON_TABLES) time = exec_timed_test([](const std::vector& v){ return gsl_sf_bessel_In(static_cast(v[0]), v[1]); }); std::cout << time << std::endl; - report_execution_time(time, std::string("Library Comparison with ") + std::string(BOOST_COMPILER) + std::string(" on ") + BOOST_PLATFORM, function, "GSL " GSL_VERSION); + report_execution_time(time, std::string("Library Comparison with ") + std::string(compiler_name()) + std::string(" on ") + platform_name(), function, "GSL " GSL_VERSION); #endif #if defined(TEST_RMATH) && !defined(COMPILER_COMPARISON_TABLES) time = exec_timed_test([](const std::vector& v){ return bessel_i(v[1], static_cast(v[0]), 1); }); std::cout << time << std::endl; - report_execution_time(time, std::string("Library Comparison with ") + std::string(BOOST_COMPILER) + std::string(" on ") + BOOST_PLATFORM, function, "Rmath " R_VERSION_STRING); + report_execution_time(time, std::string("Library Comparison with ") + std::string(compiler_name()) + std::string(" on ") + platform_name(), function, "Rmath " R_VERSION_STRING); #endif return 0; diff --git a/reporting/performance/test_iv.cpp b/reporting/performance/test_iv.cpp index c077ace73..5ec25e962 100644 --- a/reporting/performance/test_iv.cpp +++ b/reporting/performance/test_iv.cpp @@ -40,11 +40,6 @@ static const boost::array, 5> iv_large_data = { { int main() { -#if !defined(COMPILER_COMPARISON_TABLES) && !defined(TEST_GSL) && !defined(TEST_LIBSTDCXX) && !defined(TEST_RMATH) - // we have nothing to compare against, just bail out: - return 0; -#endif - #include "bessel_i_data.ipp" add_data(iv_data); @@ -71,12 +66,16 @@ int main() unsigned data_used = data.size(); std::string function = "cyl_bessel_i[br](" + boost::lexical_cast(data_used) + "/" + boost::lexical_cast(data_total) + " tests selected)"; + std::string function_short = "cyl_bessel_i"; double time; time = exec_timed_test([](const std::vector& v){ return boost::math::cyl_bessel_i(v[0], v[1]); }); std::cout << time << std::endl; - report_execution_time(time, std::string("Library Comparison with ") + std::string(BOOST_COMPILER) + std::string(" on ") + BOOST_PLATFORM, function, boost_name()); +#if !defined(COMPILER_COMPARISON_TABLES) && !defined(TEST_GSL) && !defined(TEST_RMATH) + report_execution_time(time, std::string("Library Comparison with ") + std::string(compiler_name()) + std::string(" on ") + platform_name(), function, boost_name()); +#endif + report_execution_time(time, std::string("Compiler Comparison on ") + std::string(platform_name()), function_short, compiler_name() + std::string("[br]") + boost_name()); // // Boost again, but with promotion to long double turned off: // @@ -85,7 +84,10 @@ int main() { time = exec_timed_test([](const std::vector& v){ return boost::math::cyl_bessel_i(v[0], v[1], boost::math::policies::make_policy(boost::math::policies::promote_double())); }); std::cout << time << std::endl; - report_execution_time(time, std::string("Library Comparison with ") + std::string(BOOST_COMPILER) + std::string(" on ") + BOOST_PLATFORM, function, boost_name() + "[br]promote_double"); +#if !defined(COMPILER_COMPARISON_TABLES) && !defined(TEST_GSL) && !defined(TEST_RMATH) + report_execution_time(time, std::string("Library Comparison with ") + std::string(compiler_name()) + std::string(" on ") + platform_name(), function, boost_name() + "[br]promote_double"); +#endif + report_execution_time(time, std::string("Compiler Comparison on ") + std::string(platform_name()), function_short, compiler_name() + std::string("[br]") + boost_name() + "[br]promote_double"); } #endif @@ -93,17 +95,17 @@ int main() #if defined(TEST_LIBSTDCXX) && !defined(COMPILER_COMPARISON_TABLES) time = exec_timed_test([](const std::vector& v){ return std::tr1::cyl_bessel_i(v[0], v[1]); }); std::cout << time << std::endl; - report_execution_time(time, std::string("Library Comparison with ") + std::string(BOOST_COMPILER) + std::string(" on ") + BOOST_PLATFORM, function, "tr1/cmath"); + report_execution_time(time, std::string("Library Comparison with ") + std::string(compiler_name()) + std::string(" on ") + platform_name(), function, "tr1/cmath"); #endif #if defined(TEST_GSL) && !defined(COMPILER_COMPARISON_TABLES) time = exec_timed_test([](const std::vector& v){ return gsl_sf_bessel_Inu(v[0], v[1]); }); std::cout << time << std::endl; - report_execution_time(time, std::string("Library Comparison with ") + std::string(BOOST_COMPILER) + std::string(" on ") + BOOST_PLATFORM, function, "GSL " GSL_VERSION); + report_execution_time(time, std::string("Library Comparison with ") + std::string(compiler_name()) + std::string(" on ") + platform_name(), function, "GSL " GSL_VERSION); #endif #if defined(TEST_RMATH) && !defined(COMPILER_COMPARISON_TABLES) time = exec_timed_test([](const std::vector& v){ return bessel_i(v[1], v[0], 1); }); std::cout << time << std::endl; - report_execution_time(time, std::string("Library Comparison with ") + std::string(BOOST_COMPILER) + std::string(" on ") + BOOST_PLATFORM, function, "Rmath " R_VERSION_STRING); + report_execution_time(time, std::string("Library Comparison with ") + std::string(compiler_name()) + std::string(" on ") + platform_name(), function, "Rmath " R_VERSION_STRING); #endif return 0; diff --git a/reporting/performance/test_jn.cpp b/reporting/performance/test_jn.cpp index 29d9729d5..521945aa1 100644 --- a/reporting/performance/test_jn.cpp +++ b/reporting/performance/test_jn.cpp @@ -82,11 +82,6 @@ static const boost::array::type, 3>, 17> jn_ int main() { -#if !defined(COMPILER_COMPARISON_TABLES) && !defined(TEST_C99) && !defined(TEST_GSL) && !defined(TEST_LIBSTDCXX) && !defined(TEST_RMATH) - // we have nothing to compare against, just bail out: - return 0; -#endif - #include "bessel_j_int_data.ipp" add_data(j0_data); @@ -116,15 +111,19 @@ int main() unsigned data_used = data.size(); std::string function = "cyl_bessel_j (integer order)[br](" + boost::lexical_cast(data_used) + "/" + boost::lexical_cast(data_total) + " tests selected)"; + std::string function_short = "cyl_bessel_j (integer order)"; double time; time = exec_timed_test([](const std::vector& v){ return boost::math::cyl_bessel_j(static_cast(v[0]), v[1]); }); std::cout << time << std::endl; #if defined(COMPILER_COMPARISON_TABLES) - report_execution_time(time, std::string("Compiler Option Comparison on ") + BOOST_PLATFORM, "boost::math::cyl_bessel_j (integer orders)", get_compiler_options_name()); + report_execution_time(time, std::string("Compiler Option Comparison on ") + platform_name(), "boost::math::cyl_bessel_j (integer orders)", get_compiler_options_name()); #else - report_execution_time(time, std::string("Library Comparison with ") + std::string(BOOST_COMPILER) + std::string(" on ") + BOOST_PLATFORM, function, boost_name()); +#if !defined(COMPILER_COMPARISON_TABLES) && !defined(TEST_GSL) && !defined(TEST_RMATH) + report_execution_time(time, std::string("Library Comparison with ") + std::string(compiler_name()) + std::string(" on ") + platform_name(), function, boost_name()); +#endif + report_execution_time(time, std::string("Compiler Comparison on ") + std::string(platform_name()), function_short, compiler_name() + std::string("[br]") + boost_name()); #endif // // Boost again, but with promotion to long double turned off: @@ -134,7 +133,10 @@ int main() { time = exec_timed_test([](const std::vector& v){ return boost::math::cyl_bessel_j(static_cast(v[0]), v[1], boost::math::policies::make_policy(boost::math::policies::promote_double())); }); std::cout << time << std::endl; - report_execution_time(time, std::string("Library Comparison with ") + std::string(BOOST_COMPILER) + std::string(" on ") + BOOST_PLATFORM, function, boost_name() + "[br]promote_double"); +#if !defined(COMPILER_COMPARISON_TABLES) && !defined(TEST_GSL) && !defined(TEST_RMATH) + report_execution_time(time, std::string("Library Comparison with ") + std::string(compiler_name()) + std::string(" on ") + platform_name(), function, boost_name() + "[br]promote_double"); +#endif + report_execution_time(time, std::string("Compiler Comparison on ") + std::string(platform_name()), function_short, compiler_name() + std::string("[br]") + boost_name() + "[br]promote_double"); } #endif @@ -142,22 +144,22 @@ int main() #if defined(TEST_C99) && !defined(COMPILER_COMPARISON_TABLES) time = exec_timed_test([](const std::vector& v){ return ::jn(static_cast(v[0]), v[1]); }); std::cout << time << std::endl; - report_execution_time(time, std::string("Library Comparison with ") + std::string(BOOST_COMPILER) + std::string(" on ") + BOOST_PLATFORM, function, "math.h"); + report_execution_time(time, std::string("Library Comparison with ") + std::string(compiler_name()) + std::string(" on ") + platform_name(), function, "math.h"); #endif #if defined(TEST_LIBSTDCXX) && !defined(COMPILER_COMPARISON_TABLES) time = exec_timed_test([](const std::vector& v){ return std::tr1::cyl_bessel_j(static_cast(v[0]), v[1]); }); std::cout << time << std::endl; - report_execution_time(time, std::string("Library Comparison with ") + std::string(BOOST_COMPILER) + std::string(" on ") + BOOST_PLATFORM, function, "tr1/cmath"); + report_execution_time(time, std::string("Library Comparison with ") + std::string(compiler_name()) + std::string(" on ") + platform_name(), function, "tr1/cmath"); #endif #if defined(TEST_GSL) && !defined(COMPILER_COMPARISON_TABLES) time = exec_timed_test([](const std::vector& v){ return gsl_sf_bessel_Jn(static_cast(v[0]), v[1]); }); std::cout << time << std::endl; - report_execution_time(time, std::string("Library Comparison with ") + std::string(BOOST_COMPILER) + std::string(" on ") + BOOST_PLATFORM, function, "GSL " GSL_VERSION); + report_execution_time(time, std::string("Library Comparison with ") + std::string(compiler_name()) + std::string(" on ") + platform_name(), function, "GSL " GSL_VERSION); #endif #if defined(TEST_RMATH) && !defined(COMPILER_COMPARISON_TABLES) time = exec_timed_test([](const std::vector& v){ return bessel_j(v[1], static_cast(v[0])); }); std::cout << time << std::endl; - report_execution_time(time, std::string("Library Comparison with ") + std::string(BOOST_COMPILER) + std::string(" on ") + BOOST_PLATFORM, function, "Rmath " R_VERSION_STRING); + report_execution_time(time, std::string("Library Comparison with ") + std::string(compiler_name()) + std::string(" on ") + platform_name(), function, "Rmath " R_VERSION_STRING); #endif diff --git a/reporting/performance/test_js.cpp b/reporting/performance/test_js.cpp index c707ac0ac..e8d79e07f 100644 --- a/reporting/performance/test_js.cpp +++ b/reporting/performance/test_js.cpp @@ -20,11 +20,6 @@ typedef double T; int main() { -#if !defined(COMPILER_COMPARISON_TABLES) && !defined(TEST_GSL) && !defined(TEST_LIBSTDCXX) - // we have nothing to compare against, just bail out: - return 0; -#endif - #include "sph_bessel_data.ipp" add_data(sph_bessel_data); @@ -42,12 +37,16 @@ int main() unsigned data_used = data.size(); std::string function = "sph_bessel[br](" + boost::lexical_cast(data_used) + "/" + boost::lexical_cast(data_total) + " tests selected)"; + std::string function_short = "sph_bessel"; double time; time = exec_timed_test([](const std::vector& v){ return boost::math::sph_bessel(static_cast(v[0]), v[1]); }); std::cout << time << std::endl; - report_execution_time(time, std::string("Library Comparison with ") + std::string(BOOST_COMPILER) + std::string(" on ") + BOOST_PLATFORM, function, boost_name()); +#if !defined(COMPILER_COMPARISON_TABLES) && !defined(TEST_GSL) && !defined(TEST_RMATH) + report_execution_time(time, std::string("Library Comparison with ") + std::string(compiler_name()) + std::string(" on ") + platform_name(), function, boost_name()); +#endif + report_execution_time(time, std::string("Compiler Comparison on ") + std::string(platform_name()), function_short, compiler_name() + std::string("[br]") + boost_name()); // // Boost again, but with promotion to long double turned off: // @@ -56,7 +55,10 @@ int main() { time = exec_timed_test([](const std::vector& v){ return boost::math::sph_bessel(static_cast(v[0]), v[1], boost::math::policies::make_policy(boost::math::policies::promote_double())); }); std::cout << time << std::endl; - report_execution_time(time, std::string("Library Comparison with ") + std::string(BOOST_COMPILER) + std::string(" on ") + BOOST_PLATFORM, function, boost_name() + "[br]promote_double"); +#if !defined(COMPILER_COMPARISON_TABLES) && !defined(TEST_GSL) && !defined(TEST_RMATH) + report_execution_time(time, std::string("Library Comparison with ") + std::string(compiler_name()) + std::string(" on ") + platform_name(), function, boost_name() + "[br]promote_double"); +#endif + report_execution_time(time, std::string("Compiler Comparison on ") + std::string(platform_name()), function_short, compiler_name() + std::string("[br]") + boost_name() + "[br]promote_double"); } #endif @@ -64,12 +66,12 @@ int main() #if defined(TEST_LIBSTDCXX) && !defined(COMPILER_COMPARISON_TABLES) time = exec_timed_test([](const std::vector& v){ return std::tr1::sph_bessel(static_cast(v[0]), v[1]); }); std::cout << time << std::endl; - report_execution_time(time, std::string("Library Comparison with ") + std::string(BOOST_COMPILER) + std::string(" on ") + BOOST_PLATFORM, function, "tr1/cmath"); + report_execution_time(time, std::string("Library Comparison with ") + std::string(compiler_name()) + std::string(" on ") + platform_name(), function, "tr1/cmath"); #endif #if defined(TEST_GSL) && !defined(COMPILER_COMPARISON_TABLES) time = exec_timed_test([](const std::vector& v){ return gsl_sf_bessel_jl(static_cast(v[0]), v[1]); }); std::cout << time << std::endl; - report_execution_time(time, std::string("Library Comparison with ") + std::string(BOOST_COMPILER) + std::string(" on ") + BOOST_PLATFORM, function, "GSL " GSL_VERSION); + report_execution_time(time, std::string("Library Comparison with ") + std::string(compiler_name()) + std::string(" on ") + platform_name(), function, "GSL " GSL_VERSION); #endif diff --git a/reporting/performance/test_jv.cpp b/reporting/performance/test_jv.cpp index f3260cc8b..ea997dffa 100644 --- a/reporting/performance/test_jv.cpp +++ b/reporting/performance/test_jv.cpp @@ -45,11 +45,6 @@ static const boost::array, 21> jv_data = { { int main() { -#if !defined(COMPILER_COMPARISON_TABLES) && !defined(TEST_GSL) && !defined(TEST_LIBSTDCXX) && !defined(TEST_RMATH) - // we have nothing to compare against, just bail out: - return 0; -#endif - #include "bessel_j_data.ipp" #include "bessel_j_large_data.ipp" @@ -77,12 +72,16 @@ int main() unsigned data_used = data.size(); std::string function = "cyl_bessel_j[br](" + boost::lexical_cast(data_used) + "/" + boost::lexical_cast(data_total) + " tests selected)"; + std::string function_short = "cyl_bessel_j"; double time; time = exec_timed_test([](const std::vector& v){ return boost::math::cyl_bessel_j(v[0], v[1]); }); std::cout << time << std::endl; - report_execution_time(time, std::string("Library Comparison with ") + std::string(BOOST_COMPILER) + std::string(" on ") + BOOST_PLATFORM, function, boost_name()); +#if !defined(COMPILER_COMPARISON_TABLES) && !defined(TEST_GSL) && !defined(TEST_RMATH) + report_execution_time(time, std::string("Library Comparison with ") + std::string(compiler_name()) + std::string(" on ") + platform_name(), function, boost_name()); +#endif + report_execution_time(time, std::string("Compiler Comparison on ") + std::string(platform_name()), function_short, compiler_name() + std::string("[br]") + boost_name()); // // Boost again, but with promotion to long double turned off: // @@ -91,7 +90,10 @@ int main() { time = exec_timed_test([](const std::vector& v){ return boost::math::cyl_bessel_j(v[0], v[1], boost::math::policies::make_policy(boost::math::policies::promote_double())); }); std::cout << time << std::endl; - report_execution_time(time, std::string("Library Comparison with ") + std::string(BOOST_COMPILER) + std::string(" on ") + BOOST_PLATFORM, function, boost_name() + "[br]promote_double"); +#if !defined(COMPILER_COMPARISON_TABLES) && !defined(TEST_GSL) && !defined(TEST_RMATH) + report_execution_time(time, std::string("Library Comparison with ") + std::string(compiler_name()) + std::string(" on ") + platform_name(), function, boost_name() + "[br]promote_double"); +#endif + report_execution_time(time, std::string("Compiler Comparison on ") + std::string(platform_name()), function_short, compiler_name() + std::string("[br]") + boost_name() + "[br]promote_double"); } #endif @@ -99,17 +101,17 @@ int main() #if defined(TEST_LIBSTDCXX) && !defined(COMPILER_COMPARISON_TABLES) time = exec_timed_test([](const std::vector& v){ return std::tr1::cyl_bessel_j(v[0], v[1]); }); std::cout << time << std::endl; - report_execution_time(time, std::string("Library Comparison with ") + std::string(BOOST_COMPILER) + std::string(" on ") + BOOST_PLATFORM, function, "tr1/cmath"); + report_execution_time(time, std::string("Library Comparison with ") + std::string(compiler_name()) + std::string(" on ") + platform_name(), function, "tr1/cmath"); #endif #if defined(TEST_GSL) && !defined(COMPILER_COMPARISON_TABLES) time = exec_timed_test([](const std::vector& v){ return gsl_sf_bessel_Jnu(v[0], v[1]); }); std::cout << time << std::endl; - report_execution_time(time, std::string("Library Comparison with ") + std::string(BOOST_COMPILER) + std::string(" on ") + BOOST_PLATFORM, function, "GSL " GSL_VERSION); + report_execution_time(time, std::string("Library Comparison with ") + std::string(compiler_name()) + std::string(" on ") + platform_name(), function, "GSL " GSL_VERSION); #endif #if defined(TEST_RMATH) && !defined(COMPILER_COMPARISON_TABLES) time = exec_timed_test([](const std::vector& v){ return bessel_j(v[1], v[0]); }); std::cout << time << std::endl; - report_execution_time(time, std::string("Library Comparison with ") + std::string(BOOST_COMPILER) + std::string(" on ") + BOOST_PLATFORM, function, "Rmath " R_VERSION_STRING); + report_execution_time(time, std::string("Library Comparison with ") + std::string(compiler_name()) + std::string(" on ") + platform_name(), function, "Rmath " R_VERSION_STRING); #endif return 0; diff --git a/reporting/performance/test_kn.cpp b/reporting/performance/test_kn.cpp index f8e0e5a2d..5e49ace93 100644 --- a/reporting/performance/test_kn.cpp +++ b/reporting/performance/test_kn.cpp @@ -53,11 +53,6 @@ static const boost::array, 9> kn_data = { { int main() { -#if !defined(COMPILER_COMPARISON_TABLES) && !defined(TEST_GSL) && !defined(TEST_LIBSTDCXX) && !defined(TEST_RMATH) - // we have nothing to compare against, just bail out: - return 0; -#endif - #include "bessel_k_int_data.ipp" add_data(k0_data); @@ -81,12 +76,16 @@ int main() unsigned data_used = data.size(); std::string function = "cyl_bessel_k (integer order)[br](" + boost::lexical_cast(data_used) + "/" + boost::lexical_cast(data_total) + " tests selected)"; + std::string function_short = "cyl_bessel_k (integer order)"; double time; time = exec_timed_test([](const std::vector& v){ return boost::math::cyl_bessel_k(static_cast(v[0]), v[1]); }); std::cout << time << std::endl; - report_execution_time(time, std::string("Library Comparison with ") + std::string(BOOST_COMPILER) + std::string(" on ") + BOOST_PLATFORM, function, boost_name()); +#if !defined(COMPILER_COMPARISON_TABLES) && !defined(TEST_GSL) && !defined(TEST_RMATH) + report_execution_time(time, std::string("Library Comparison with ") + std::string(compiler_name()) + std::string(" on ") + platform_name(), function, boost_name()); +#endif + report_execution_time(time, std::string("Compiler Comparison on ") + std::string(platform_name()), function_short, compiler_name() + std::string("[br]") + boost_name()); // // Boost again, but with promotion to long double turned off: // @@ -95,7 +94,10 @@ int main() { time = exec_timed_test([](const std::vector& v){ return boost::math::cyl_bessel_k(static_cast(v[0]), v[1], boost::math::policies::make_policy(boost::math::policies::promote_double())); }); std::cout << time << std::endl; - report_execution_time(time, std::string("Library Comparison with ") + std::string(BOOST_COMPILER) + std::string(" on ") + BOOST_PLATFORM, function, boost_name() + "[br]promote_double"); +#if !defined(COMPILER_COMPARISON_TABLES) && !defined(TEST_GSL) && !defined(TEST_RMATH) + report_execution_time(time, std::string("Library Comparison with ") + std::string(compiler_name()) + std::string(" on ") + platform_name(), function, boost_name() + "[br]promote_double"); +#endif + report_execution_time(time, std::string("Compiler Comparison on ") + std::string(platform_name()), function_short, compiler_name() + std::string("[br]") + boost_name() + "[br]promote_double"); } #endif @@ -103,17 +105,17 @@ int main() #if defined(TEST_LIBSTDCXX) && !defined(COMPILER_COMPARISON_TABLES) time = exec_timed_test([](const std::vector& v){ return std::tr1::cyl_bessel_k(static_cast(v[0]), v[1]); }); std::cout << time << std::endl; - report_execution_time(time, std::string("Library Comparison with ") + std::string(BOOST_COMPILER) + std::string(" on ") + BOOST_PLATFORM, function, "tr1/cmath"); + report_execution_time(time, std::string("Library Comparison with ") + std::string(compiler_name()) + std::string(" on ") + platform_name(), function, "tr1/cmath"); #endif #if defined(TEST_GSL) && !defined(COMPILER_COMPARISON_TABLES) time = exec_timed_test([](const std::vector& v){ return gsl_sf_bessel_Kn(static_cast(v[0]), v[1]); }); std::cout << time << std::endl; - report_execution_time(time, std::string("Library Comparison with ") + std::string(BOOST_COMPILER) + std::string(" on ") + BOOST_PLATFORM, function, "GSL " GSL_VERSION); + report_execution_time(time, std::string("Library Comparison with ") + std::string(compiler_name()) + std::string(" on ") + platform_name(), function, "GSL " GSL_VERSION); #endif #if defined(TEST_RMATH) && !defined(COMPILER_COMPARISON_TABLES) time = exec_timed_test([](const std::vector& v){ return bessel_k(v[1], static_cast(v[0]), 1); }); std::cout << time << std::endl; - report_execution_time(time, std::string("Library Comparison with ") + std::string(BOOST_COMPILER) + std::string(" on ") + BOOST_PLATFORM, function, "Rmath " R_VERSION_STRING); + report_execution_time(time, std::string("Library Comparison with ") + std::string(compiler_name()) + std::string(" on ") + platform_name(), function, "Rmath " R_VERSION_STRING); #endif return 0; diff --git a/reporting/performance/test_kv.cpp b/reporting/performance/test_kv.cpp index a820d652f..974fc17ea 100644 --- a/reporting/performance/test_kv.cpp +++ b/reporting/performance/test_kv.cpp @@ -41,11 +41,6 @@ static const boost::array, 5> kv_large_data = { { int main() { -#if !defined(COMPILER_COMPARISON_TABLES) && !defined(TEST_GSL) && !defined(TEST_LIBSTDCXX) && !defined(TEST_RMATH) - // we have nothing to compare against, just bail out: - return 0; -#endif - #include "bessel_k_data.ipp" add_data(kv_data); @@ -72,12 +67,16 @@ int main() unsigned data_used = data.size(); std::string function = "cyl_bessel_k[br](" + boost::lexical_cast(data_used) + "/" + boost::lexical_cast(data_total) + " tests selected)"; + std::string function_short = "cyl_bessel_k"; double time; time = exec_timed_test([](const std::vector& v){ return boost::math::cyl_bessel_k(v[0], v[1]); }); std::cout << time << std::endl; - report_execution_time(time, std::string("Library Comparison with ") + std::string(BOOST_COMPILER) + std::string(" on ") + BOOST_PLATFORM, function, boost_name()); +#if !defined(COMPILER_COMPARISON_TABLES) && !defined(TEST_GSL) && !defined(TEST_RMATH) + report_execution_time(time, std::string("Library Comparison with ") + std::string(compiler_name()) + std::string(" on ") + platform_name(), function, boost_name()); +#endif + report_execution_time(time, std::string("Compiler Comparison on ") + std::string(platform_name()), function_short, compiler_name() + std::string("[br]") + boost_name()); // // Boost again, but with promotion to long double turned off: // @@ -86,7 +85,10 @@ int main() { time = exec_timed_test([](const std::vector& v){ return boost::math::cyl_bessel_k(v[0], v[1], boost::math::policies::make_policy(boost::math::policies::promote_double())); }); std::cout << time << std::endl; - report_execution_time(time, std::string("Library Comparison with ") + std::string(BOOST_COMPILER) + std::string(" on ") + BOOST_PLATFORM, function, boost_name() + "[br]promote_double"); +#if !defined(COMPILER_COMPARISON_TABLES) && !defined(TEST_GSL) && !defined(TEST_RMATH) + report_execution_time(time, std::string("Library Comparison with ") + std::string(compiler_name()) + std::string(" on ") + platform_name(), function, boost_name() + "[br]promote_double"); +#endif + report_execution_time(time, std::string("Compiler Comparison on ") + std::string(platform_name()), function_short, compiler_name() + std::string("[br]") + boost_name() + "[br]promote_double"); } #endif @@ -94,17 +96,17 @@ int main() #if defined(TEST_LIBSTDCXX) && !defined(COMPILER_COMPARISON_TABLES) time = exec_timed_test([](const std::vector& v){ return std::tr1::cyl_bessel_k(v[0], v[1]); }); std::cout << time << std::endl; - report_execution_time(time, std::string("Library Comparison with ") + std::string(BOOST_COMPILER) + std::string(" on ") + BOOST_PLATFORM, function, "tr1/cmath"); + report_execution_time(time, std::string("Library Comparison with ") + std::string(compiler_name()) + std::string(" on ") + platform_name(), function, "tr1/cmath"); #endif #if defined(TEST_GSL) && !defined(COMPILER_COMPARISON_TABLES) time = exec_timed_test([](const std::vector& v){ return gsl_sf_bessel_Knu(v[0], v[1]); }); std::cout << time << std::endl; - report_execution_time(time, std::string("Library Comparison with ") + std::string(BOOST_COMPILER) + std::string(" on ") + BOOST_PLATFORM, function, "GSL " GSL_VERSION); + report_execution_time(time, std::string("Library Comparison with ") + std::string(compiler_name()) + std::string(" on ") + platform_name(), function, "GSL " GSL_VERSION); #endif #if defined(TEST_RMATH) && !defined(COMPILER_COMPARISON_TABLES) time = exec_timed_test([](const std::vector& v){ return bessel_k(v[1], v[0], 1); }); std::cout << time << std::endl; - report_execution_time(time, std::string("Library Comparison with ") + std::string(BOOST_COMPILER) + std::string(" on ") + BOOST_PLATFORM, function, "Rmath " R_VERSION_STRING); + report_execution_time(time, std::string("Library Comparison with ") + std::string(compiler_name()) + std::string(" on ") + platform_name(), function, "Rmath " R_VERSION_STRING); #endif return 0; diff --git a/reporting/performance/test_laguerre.cpp b/reporting/performance/test_laguerre.cpp index 3c48fa1e3..582914c79 100644 --- a/reporting/performance/test_laguerre.cpp +++ b/reporting/performance/test_laguerre.cpp @@ -20,11 +20,6 @@ typedef double T; int main() { -#if !defined(COMPILER_COMPARISON_TABLES) && !defined(TEST_GSL) && !defined(TEST_LIBSTDCXX) - // we have nothing to compare against, just bail out: - return 0; -#endif - # include "laguerre2.ipp" add_data(laguerre2); @@ -43,12 +38,16 @@ int main() unsigned data_used = data.size(); std::string function = "laguerre[br](" + boost::lexical_cast(data_used) + "/" + boost::lexical_cast(data_total) + " tests selected)"; + std::string function_short = "laguerre"; double time; time = exec_timed_test([](const std::vector& v){ return boost::math::laguerre(v[0], v[1]); }); std::cout << time << std::endl; - report_execution_time(time, std::string("Library Comparison with ") + std::string(BOOST_COMPILER) + std::string(" on ") + BOOST_PLATFORM, function, boost_name()); +#if !defined(COMPILER_COMPARISON_TABLES) && !defined(TEST_GSL) && !defined(TEST_RMATH) + report_execution_time(time, std::string("Library Comparison with ") + std::string(compiler_name()) + std::string(" on ") + platform_name(), function, boost_name()); +#endif + report_execution_time(time, std::string("Compiler Comparison on ") + std::string(platform_name()), function_short, compiler_name() + std::string("[br]") + boost_name()); // // Boost again, but with promotion to long double turned off: // @@ -57,7 +56,10 @@ int main() { time = exec_timed_test([](const std::vector& v){ return boost::math::laguerre(v[0], v[1], boost::math::policies::make_policy(boost::math::policies::promote_double())); }); std::cout << time << std::endl; - report_execution_time(time, std::string("Library Comparison with ") + std::string(BOOST_COMPILER) + std::string(" on ") + BOOST_PLATFORM, function, boost_name() + "[br]promote_double"); +#if !defined(COMPILER_COMPARISON_TABLES) && !defined(TEST_GSL) && !defined(TEST_RMATH) + report_execution_time(time, std::string("Library Comparison with ") + std::string(compiler_name()) + std::string(" on ") + platform_name(), function, boost_name() + "[br]promote_double"); +#endif + report_execution_time(time, std::string("Compiler Comparison on ") + std::string(platform_name()), function_short, compiler_name() + std::string("[br]") + boost_name() + "[br]promote_double"); } #endif @@ -65,12 +67,12 @@ int main() #if defined(TEST_LIBSTDCXX) && !defined(COMPILER_COMPARISON_TABLES) time = exec_timed_test([](const std::vector& v){ return std::tr1::laguerre(v[0], v[1]); }); std::cout << time << std::endl; - report_execution_time(time, std::string("Library Comparison with ") + std::string(BOOST_COMPILER) + std::string(" on ") + BOOST_PLATFORM, function, "tr1/cmath"); + report_execution_time(time, std::string("Library Comparison with ") + std::string(compiler_name()) + std::string(" on ") + platform_name(), function, "tr1/cmath"); #endif #if defined(TEST_GSL) && !defined(COMPILER_COMPARISON_TABLES) time = exec_timed_test([](const std::vector& v){ return gsl_sf_laguerre_n(v[0], 0, v[1]); }); std::cout << time << std::endl; - report_execution_time(time, std::string("Library Comparison with ") + std::string(BOOST_COMPILER) + std::string(" on ") + BOOST_PLATFORM, function, "GSL " GSL_VERSION); + report_execution_time(time, std::string("Library Comparison with ") + std::string(compiler_name()) + std::string(" on ") + platform_name(), function, "GSL " GSL_VERSION); #endif diff --git a/reporting/performance/test_legendre.cpp b/reporting/performance/test_legendre.cpp index 03c734252..e24010f48 100644 --- a/reporting/performance/test_legendre.cpp +++ b/reporting/performance/test_legendre.cpp @@ -20,11 +20,6 @@ typedef double T; int main() { -#if !defined(COMPILER_COMPARISON_TABLES) && !defined(TEST_GSL) && !defined(TEST_LIBSTDCXX) - // we have nothing to compare against, just bail out: - return 0; -#endif - # include "legendre_p.ipp" # include "legendre_p_large.ipp" @@ -45,12 +40,16 @@ int main() unsigned data_used = data.size(); std::string function = "legendre[br](" + boost::lexical_cast(data_used) + "/" + boost::lexical_cast(data_total) + " tests selected)"; + std::string function_short = "legendre"; double time; time = exec_timed_test([](const std::vector& v){ return boost::math::legendre_p(v[0], v[1]); }); std::cout << time << std::endl; - report_execution_time(time, std::string("Library Comparison with ") + std::string(BOOST_COMPILER) + std::string(" on ") + BOOST_PLATFORM, function, boost_name()); +#if !defined(COMPILER_COMPARISON_TABLES) && !defined(TEST_GSL) && !defined(TEST_RMATH) + report_execution_time(time, std::string("Library Comparison with ") + std::string(compiler_name()) + std::string(" on ") + platform_name(), function, boost_name()); +#endif + report_execution_time(time, std::string("Compiler Comparison on ") + std::string(platform_name()), function_short, compiler_name() + std::string("[br]") + boost_name()); // // Boost again, but with promotion to long double turned off: // @@ -59,7 +58,10 @@ int main() { time = exec_timed_test([](const std::vector& v){ return boost::math::legendre_p(v[0], v[1], boost::math::policies::make_policy(boost::math::policies::promote_double())); }); std::cout << time << std::endl; - report_execution_time(time, std::string("Library Comparison with ") + std::string(BOOST_COMPILER) + std::string(" on ") + BOOST_PLATFORM, function, boost_name() + "[br]promote_double"); +#if !defined(COMPILER_COMPARISON_TABLES) && !defined(TEST_GSL) && !defined(TEST_RMATH) + report_execution_time(time, std::string("Library Comparison with ") + std::string(compiler_name()) + std::string(" on ") + platform_name(), function, boost_name() + "[br]promote_double"); +#endif + report_execution_time(time, std::string("Compiler Comparison on ") + std::string(platform_name()), function_short, compiler_name() + std::string("[br]") + boost_name() + "[br]promote_double"); } #endif @@ -67,12 +69,12 @@ int main() #if defined(TEST_LIBSTDCXX) && !defined(COMPILER_COMPARISON_TABLES) time = exec_timed_test([](const std::vector& v){ return std::tr1::legendre(v[0], v[1]); }); std::cout << time << std::endl; - report_execution_time(time, std::string("Library Comparison with ") + std::string(BOOST_COMPILER) + std::string(" on ") + BOOST_PLATFORM, function, "tr1/cmath"); + report_execution_time(time, std::string("Library Comparison with ") + std::string(compiler_name()) + std::string(" on ") + platform_name(), function, "tr1/cmath"); #endif #if defined(TEST_GSL) && !defined(COMPILER_COMPARISON_TABLES) time = exec_timed_test([](const std::vector& v){ return gsl_sf_legendre_Pl(v[0], v[1]); }); std::cout << time << std::endl; - report_execution_time(time, std::string("Library Comparison with ") + std::string(BOOST_COMPILER) + std::string(" on ") + BOOST_PLATFORM, function, "GSL " GSL_VERSION); + report_execution_time(time, std::string("Library Comparison with ") + std::string(compiler_name()) + std::string(" on ") + platform_name(), function, "GSL " GSL_VERSION); #endif return 0; diff --git a/reporting/performance/test_legendre_q.cpp b/reporting/performance/test_legendre_q.cpp index b4b86a9d3..50f81a9ac 100644 --- a/reporting/performance/test_legendre_q.cpp +++ b/reporting/performance/test_legendre_q.cpp @@ -20,11 +20,6 @@ typedef double T; int main() { -#if !defined(COMPILER_COMPARISON_TABLES) && !defined(TEST_GSL) - // we have nothing to compare against, just bail out: - return 0; -#endif - # include "legendre_p.ipp" # include "legendre_p_large.ipp" @@ -42,12 +37,16 @@ int main() unsigned data_used = data.size(); std::string function = "legendre Q[br](" + boost::lexical_cast(data_used) + "/" + boost::lexical_cast(data_total) + " tests selected)"; + std::string function_short = "legendre Q"; double time; time = exec_timed_test([](const std::vector& v){ return boost::math::legendre_q(v[0], v[1]); }); std::cout << time << std::endl; - report_execution_time(time, std::string("Library Comparison with ") + std::string(BOOST_COMPILER) + std::string(" on ") + BOOST_PLATFORM, function, boost_name()); +#if !defined(COMPILER_COMPARISON_TABLES) && !defined(TEST_GSL) && !defined(TEST_RMATH) + report_execution_time(time, std::string("Library Comparison with ") + std::string(compiler_name()) + std::string(" on ") + platform_name(), function, boost_name()); +#endif + report_execution_time(time, std::string("Compiler Comparison on ") + std::string(platform_name()), function_short, compiler_name() + std::string("[br]") + boost_name()); // // Boost again, but with promotion to long double turned off: // @@ -56,7 +55,10 @@ int main() { time = exec_timed_test([](const std::vector& v){ return boost::math::legendre_q(v[0], v[1], boost::math::policies::make_policy(boost::math::policies::promote_double())); }); std::cout << time << std::endl; - report_execution_time(time, std::string("Library Comparison with ") + std::string(BOOST_COMPILER) + std::string(" on ") + BOOST_PLATFORM, function, boost_name() + "[br]promote_double"); +#if !defined(COMPILER_COMPARISON_TABLES) && !defined(TEST_GSL) && !defined(TEST_RMATH) + report_execution_time(time, std::string("Library Comparison with ") + std::string(compiler_name()) + std::string(" on ") + platform_name(), function, boost_name() + "[br]promote_double"); +#endif + report_execution_time(time, std::string("Compiler Comparison on ") + std::string(platform_name()), function_short, compiler_name() + std::string("[br]") + boost_name() + "[br]promote_double"); } #endif @@ -64,7 +66,7 @@ int main() #if defined(TEST_GSL) && !defined(COMPILER_COMPARISON_TABLES) time = exec_timed_test([](const std::vector& v){ return gsl_sf_legendre_Ql(v[0], v[1]); }); std::cout << time << std::endl; - report_execution_time(time, std::string("Library Comparison with ") + std::string(BOOST_COMPILER) + std::string(" on ") + BOOST_PLATFORM, function, "GSL " GSL_VERSION); + report_execution_time(time, std::string("Library Comparison with ") + std::string(compiler_name()) + std::string(" on ") + platform_name(), function, "GSL " GSL_VERSION); #endif return 0; diff --git a/reporting/performance/test_lgamma.cpp b/reporting/performance/test_lgamma.cpp index 2d0a6279a..90128afbe 100644 --- a/reporting/performance/test_lgamma.cpp +++ b/reporting/performance/test_lgamma.cpp @@ -17,11 +17,6 @@ int main() { -#if !defined(COMPILER_COMPARISON_TABLES) && !defined(TEST_C99) && !defined(TEST_GSL) && !defined(TEST_LIBSTDCXX) && !defined(TEST_RMATH) - // we have nothing to compare against, just bail out: - return 0; -#endif - typedef double T; #define SC_(x) static_cast(x) # include "test_gamma_data.ipp" @@ -53,10 +48,14 @@ int main() unsigned data_used = data.size(); std::string function = "lgamma[br](" + boost::lexical_cast(data_used) + "/" + boost::lexical_cast(data_total) + " tests selected)"; + std::string function_short = "lgamma"; double time = exec_timed_test([](const std::vector& v){ return boost::math::lgamma(v[0]); }); std::cout << time << std::endl; - report_execution_time(time, std::string("Library Comparison with ") + std::string(BOOST_COMPILER) + std::string(" on ") + BOOST_PLATFORM, function, boost_name()); +#if !defined(COMPILER_COMPARISON_TABLES) && !defined(TEST_GSL) && !defined(TEST_RMATH) + report_execution_time(time, std::string("Library Comparison with ") + std::string(compiler_name()) + std::string(" on ") + platform_name(), function, boost_name()); +#endif + report_execution_time(time, std::string("Compiler Comparison on ") + std::string(platform_name()), function_short, compiler_name() + std::string("[br]") + boost_name()); // // Boost again, but with promotion to long double turned off: // @@ -65,7 +64,10 @@ int main() { double time = exec_timed_test([](const std::vector& v){ return boost::math::lgamma(v[0], boost::math::policies::make_policy(boost::math::policies::promote_double())); }); std::cout << time << std::endl; - report_execution_time(time, std::string("Library Comparison with ") + std::string(BOOST_COMPILER) + std::string(" on ") + BOOST_PLATFORM, function, boost_name() + "[br]promote_double"); +#if !defined(COMPILER_COMPARISON_TABLES) && !defined(TEST_GSL) && !defined(TEST_RMATH) + report_execution_time(time, std::string("Library Comparison with ") + std::string(compiler_name()) + std::string(" on ") + platform_name(), function, boost_name() + "[br]promote_double"); +#endif + report_execution_time(time, std::string("Compiler Comparison on ") + std::string(platform_name()), function_short, compiler_name() + std::string("[br]") + boost_name() + "[br]promote_double"); } #endif @@ -73,22 +75,22 @@ int main() #if defined(TEST_C99) && !defined(COMPILER_COMPARISON_TABLES) time = exec_timed_test([](const std::vector& v){ return ::lgamma(v[0]); }); std::cout << time << std::endl; - report_execution_time(time, std::string("Library Comparison with ") + std::string(BOOST_COMPILER) + std::string(" on ") + BOOST_PLATFORM, function, "math.h"); + report_execution_time(time, std::string("Library Comparison with ") + std::string(compiler_name()) + std::string(" on ") + platform_name(), function, "math.h"); #endif #if defined(TEST_LIBSTDCXX) && !defined(COMPILER_COMPARISON_TABLES) time = exec_timed_test([](const std::vector& v){ return std::tr1::lgamma(v[0]); }); std::cout << time << std::endl; - report_execution_time(time, std::string("Library Comparison with ") + std::string(BOOST_COMPILER) + std::string(" on ") + BOOST_PLATFORM, function, "tr1/cmath"); + report_execution_time(time, std::string("Library Comparison with ") + std::string(compiler_name()) + std::string(" on ") + platform_name(), function, "tr1/cmath"); #endif #if defined(TEST_GSL) && !defined(COMPILER_COMPARISON_TABLES) time = exec_timed_test([](const std::vector& v){ return gsl_sf_lngamma(v[0]); }); std::cout << time << std::endl; - report_execution_time(time, std::string("Library Comparison with ") + std::string(BOOST_COMPILER) + std::string(" on ") + BOOST_PLATFORM, function, "GSL " GSL_VERSION); + report_execution_time(time, std::string("Library Comparison with ") + std::string(compiler_name()) + std::string(" on ") + platform_name(), function, "GSL " GSL_VERSION); #endif #if defined(TEST_RMATH) && !defined(COMPILER_COMPARISON_TABLES) time = exec_timed_test([](const std::vector& v){ return lgammafn(v[0]); }); std::cout << time << std::endl; - report_execution_time(time, std::string("Library Comparison with ") + std::string(BOOST_COMPILER) + std::string(" on ") + BOOST_PLATFORM, function, "Rmath " R_VERSION_STRING); + report_execution_time(time, std::string("Library Comparison with ") + std::string(compiler_name()) + std::string(" on ") + platform_name(), function, "Rmath " R_VERSION_STRING); #endif return 0; diff --git a/reporting/performance/test_log1p.cpp b/reporting/performance/test_log1p.cpp index c71879ac7..e62e843af 100644 --- a/reporting/performance/test_log1p.cpp +++ b/reporting/performance/test_log1p.cpp @@ -17,11 +17,6 @@ int main() { -#if !defined(COMPILER_COMPARISON_TABLES) && !defined(TEST_C99) && !defined(TEST_LIBSTDCXX) - // we have nothing to compare against, just bail out: - return 0; -#endif - typedef double T; #define SC_(x) static_cast(x) # include "../../test/log1p_expm1_data.ipp" @@ -41,10 +36,14 @@ int main() unsigned data_used = data.size(); std::string function = "log1p[br](" + boost::lexical_cast(data_used)+"/" + boost::lexical_cast(data_total)+" tests selected)"; + std::string function_short = "log1p"; double time = exec_timed_test([](const std::vector& v){ return boost::math::log1p(v[0]); }); std::cout << time << std::endl; - report_execution_time(time, std::string("Library Comparison with ") + std::string(BOOST_COMPILER) + std::string(" on ") + BOOST_PLATFORM, function, boost_name()); +#if !defined(COMPILER_COMPARISON_TABLES) && !defined(TEST_GSL) && !defined(TEST_RMATH) + report_execution_time(time, std::string("Library Comparison with ") + std::string(compiler_name()) + std::string(" on ") + platform_name(), function, boost_name()); +#endif + report_execution_time(time, std::string("Compiler Comparison on ") + std::string(platform_name()), function_short, compiler_name() + std::string("[br]") + boost_name()); // // Boost again, but with promotion to long double turned off: // @@ -53,7 +52,10 @@ int main() { double time = exec_timed_test([](const std::vector& v){ return boost::math::log1p(v[0], boost::math::policies::make_policy(boost::math::policies::promote_double())); }); std::cout << time << std::endl; - report_execution_time(time, std::string("Library Comparison with ") + std::string(BOOST_COMPILER) + std::string(" on ") + BOOST_PLATFORM, function, boost_name() + "[br]promote_double"); +#if !defined(COMPILER_COMPARISON_TABLES) && !defined(TEST_GSL) && !defined(TEST_RMATH) + report_execution_time(time, std::string("Library Comparison with ") + std::string(compiler_name()) + std::string(" on ") + platform_name(), function, boost_name() + "[br]promote_double"); +#endif + report_execution_time(time, std::string("Compiler Comparison on ") + std::string(platform_name()), function_short, compiler_name() + std::string("[br]") + boost_name() + "[br]promote_double"); } #endif @@ -61,12 +63,12 @@ int main() #if defined(TEST_C99) && !defined(COMPILER_COMPARISON_TABLES) time = exec_timed_test([](const std::vector& v){ return ::log1p(v[0]); }); std::cout << time << std::endl; - report_execution_time(time, std::string("Library Comparison with ") + std::string(BOOST_COMPILER) + std::string(" on ") + BOOST_PLATFORM, function, "math.h"); + report_execution_time(time, std::string("Library Comparison with ") + std::string(compiler_name()) + std::string(" on ") + platform_name(), function, "math.h"); #endif #if defined(TEST_LIBSTDCXX) && !defined(COMPILER_COMPARISON_TABLES) time = exec_timed_test([](const std::vector& v){ return std::tr1::log1p(v[0]); }); std::cout << time << std::endl; - report_execution_time(time, std::string("Library Comparison with ") + std::string(BOOST_COMPILER) + std::string(" on ") + BOOST_PLATFORM, function, "tr1/cmath"); + report_execution_time(time, std::string("Library Comparison with ") + std::string(compiler_name()) + std::string(" on ") + platform_name(), function, "tr1/cmath"); #endif diff --git a/reporting/performance/test_poly_method.cpp b/reporting/performance/test_poly_method.cpp index eb798466d..0f4c003f6 100644 --- a/reporting/performance/test_poly_method.cpp +++ b/reporting/performance/test_poly_method.cpp @@ -112,7 +112,7 @@ void test_poly_1(const boost::mpl::int_&) result += boost::math::tools::detail::evaluate_polynomial_c_imp_1(denom, v[0] + i, static_cast*>(0)); return result; }); - report_execution_time(time, std::string("Polynomial Method Comparison on ") + BOOST_PLATFORM, "Order " + make_order_string(N), "Method 1[br](Double Coefficients)"); + report_execution_time(time, std::string("Polynomial Method Comparison with ") + compiler_name() + std::string(" on ") + platform_name(), "Order " + make_order_string(N), "Method 1[br](Double Coefficients)"); time = exec_timed_test([](const std::vector& v) { @@ -121,7 +121,7 @@ void test_poly_1(const boost::mpl::int_&) result += boost::math::tools::detail::evaluate_polynomial_c_imp_1(denom_int, v[0] + i, static_cast*>(0)); return result; }); - report_execution_time(time, std::string("Polynomial Method Comparison on ") + BOOST_PLATFORM, "Order " + make_order_string(N), "Method 1[br](Integer Coefficients)"); + report_execution_time(time, std::string("Polynomial Method Comparison with ") + compiler_name() + std::string(" on ") + platform_name(), "Order " + make_order_string(N), "Method 1[br](Integer Coefficients)"); } @@ -141,7 +141,7 @@ void test_poly_2(const boost::mpl::int_&) result += boost::math::tools::detail::evaluate_polynomial_c_imp_2(denom, v[0] + i, static_cast*>(0)); return result; }); - report_execution_time(time, std::string("Polynomial Method Comparison on ") + BOOST_PLATFORM, "Order " + make_order_string(N), "Method 2[br](Double Coefficients)"); + report_execution_time(time, std::string("Polynomial Method Comparison with ") + compiler_name() + std::string(" on ") + platform_name(), "Order " + make_order_string(N), "Method 2[br](Double Coefficients)"); time = exec_timed_test([](const std::vector& v) { @@ -150,7 +150,7 @@ void test_poly_2(const boost::mpl::int_&) result += boost::math::tools::detail::evaluate_polynomial_c_imp_2(denom_int, v[0] + i, static_cast*>(0)); return result; }); - report_execution_time(time, std::string("Polynomial Method Comparison on ") + BOOST_PLATFORM, "Order " + make_order_string(N), "Method 2[br](Integer Coefficients)"); + report_execution_time(time, std::string("Polynomial Method Comparison with ") + compiler_name() + std::string(" on ") + platform_name(), "Order " + make_order_string(N), "Method 2[br](Integer Coefficients)"); } void test_poly_3(const boost::mpl::int_<1>&) @@ -167,14 +167,14 @@ void test_poly_3(const boost::mpl::int_&) result += boost::math::tools::detail::evaluate_polynomial_c_imp_3(denom, v[0] + i, static_cast*>(0)); return result; }); - report_execution_time(time, std::string("Polynomial Method Comparison on ") + BOOST_PLATFORM, "Order " + make_order_string(N), "Method 3[br](Double Coefficients)"); + report_execution_time(time, std::string("Polynomial Method Comparison with ") + compiler_name() + std::string(" on ") + platform_name(), "Order " + make_order_string(N), "Method 3[br](Double Coefficients)"); time = exec_timed_test([](const std::vector& v) { double result = 0; for (unsigned i = 0; i < 10; ++i) result += boost::math::tools::detail::evaluate_polynomial_c_imp_3(denom_int, v[0] + i, static_cast*>(0)); return result; }); - report_execution_time(time, std::string("Polynomial Method Comparison on ") + BOOST_PLATFORM, "Order " + make_order_string(N), "Method 3[br](Integer Coefficients)"); + report_execution_time(time, std::string("Polynomial Method Comparison with ") + compiler_name() + std::string(" on ") + platform_name(), "Order " + make_order_string(N), "Method 3[br](Integer Coefficients)"); } template @@ -205,7 +205,7 @@ void test_rat_1(const boost::mpl::int_&) result += boost::math::tools::detail::evaluate_rational_c_imp_1(num, denom, v[0] + i, static_cast*>(0)); return result; }); - report_execution_time(time, std::string("Rational Method Comparison on ") + BOOST_PLATFORM, "Order " + make_order_string(N), "Method 1[br](Double Coefficients)"); + report_execution_time(time, std::string("Rational Method Comparison with ") + compiler_name() + std::string(" on ") + platform_name(), "Order " + make_order_string(N), "Method 1[br](Double Coefficients)"); time = exec_timed_test([](const std::vector& v) { @@ -214,7 +214,7 @@ void test_rat_1(const boost::mpl::int_&) result += boost::math::tools::detail::evaluate_rational_c_imp_1(num, denom_int, v[0] + i, static_cast*>(0)); return result; }); - report_execution_time(time, std::string("Rational Method Comparison on ") + BOOST_PLATFORM, "Order " + make_order_string(N), "Method 1[br](Integer Coefficients)"); + report_execution_time(time, std::string("Rational Method Comparison with ") + compiler_name() + std::string(" on ") + platform_name(), "Order " + make_order_string(N), "Method 1[br](Integer Coefficients)"); } void test_rat_2(const boost::mpl::int_<1>&) @@ -233,7 +233,7 @@ void test_rat_2(const boost::mpl::int_&) result += boost::math::tools::detail::evaluate_rational_c_imp_2(num, denom, v[0] + i, static_cast*>(0)); return result; }); - report_execution_time(time, std::string("Rational Method Comparison on ") + BOOST_PLATFORM, "Order " + make_order_string(N), "Method 2[br](Double Coefficients)"); + report_execution_time(time, std::string("Rational Method Comparison with ") + compiler_name() + std::string(" on ") + platform_name(), "Order " + make_order_string(N), "Method 2[br](Double Coefficients)"); time = exec_timed_test([](const std::vector& v) { @@ -242,7 +242,7 @@ void test_rat_2(const boost::mpl::int_&) result += boost::math::tools::detail::evaluate_rational_c_imp_2(num, denom_int, v[0] + i, static_cast*>(0)); return result; }); - report_execution_time(time, std::string("Rational Method Comparison on ") + BOOST_PLATFORM, "Order " + make_order_string(N), "Method 2[br](Integer Coefficients)"); + report_execution_time(time, std::string("Rational Method Comparison with ") + compiler_name() + std::string(" on ") + platform_name(), "Order " + make_order_string(N), "Method 2[br](Integer Coefficients)"); } void test_rat_3(const boost::mpl::int_<1>&) @@ -261,7 +261,7 @@ void test_rat_3(const boost::mpl::int_&) result += boost::math::tools::detail::evaluate_rational_c_imp_3(num, denom, v[0] + i, static_cast*>(0)); return result; }); - report_execution_time(time, std::string("Rational Method Comparison on ") + BOOST_PLATFORM, "Order " + make_order_string(N), "Method 3[br](Double Coefficients)"); + report_execution_time(time, std::string("Rational Method Comparison with ") + compiler_name() + std::string(" on ") + platform_name(), "Order " + make_order_string(N), "Method 3[br](Double Coefficients)"); time = exec_timed_test([](const std::vector& v) { @@ -270,7 +270,7 @@ void test_rat_3(const boost::mpl::int_&) result += boost::math::tools::detail::evaluate_rational_c_imp_3(num, denom_int, v[0] + i, static_cast*>(0)); return result; }); - report_execution_time(time, std::string("Rational Method Comparison on ") + BOOST_PLATFORM, "Order " + make_order_string(N), "Method 3[br](Integer Coefficients)"); + report_execution_time(time, std::string("Rational Method Comparison with ") + compiler_name() + std::string(" on ") + platform_name(), "Order " + make_order_string(N), "Method 3[br](Integer Coefficients)"); } template @@ -326,7 +326,7 @@ int main() result += evaluate_polynomial_0(denom, v[0] + j, i); return result; }); - report_execution_time(time, std::string("Polynomial Method Comparison on ") + BOOST_PLATFORM, "Order " + make_order_string(i), "Method 0[br](Double Coefficients)"); + report_execution_time(time, std::string("Polynomial Method Comparison with ") + compiler_name() + std::string(" on ") + platform_name(), "Order " + make_order_string(i), "Method 0[br](Double Coefficients)"); time = exec_timed_test([&](const std::vector& v) { double result = 0; @@ -334,7 +334,7 @@ int main() result += evaluate_polynomial_0(denom_int, v[0] + j, i); return result; }); - report_execution_time(time, std::string("Polynomial Method Comparison on ") + BOOST_PLATFORM, "Order " + make_order_string(i), "Method 0[br](Integer Coefficients)"); + report_execution_time(time, std::string("Polynomial Method Comparison with ") + compiler_name() + std::string(" on ") + platform_name(), "Order " + make_order_string(i), "Method 0[br](Integer Coefficients)"); } test_poly_1(boost::mpl::int_<20>()); @@ -349,7 +349,7 @@ int main() result += evaluate_rational_0(num, denom, v[0] + j, i); return result; }); - report_execution_time(time, std::string("Rational Method Comparison on ") + BOOST_PLATFORM, "Order " + make_order_string(i), "Method 0[br](Double Coefficients)"); + report_execution_time(time, std::string("Rational Method Comparison with ") + compiler_name() + std::string(" on ") + platform_name(), "Order " + make_order_string(i), "Method 0[br](Double Coefficients)"); time = exec_timed_test([&](const std::vector& v) { double result = 0; @@ -357,7 +357,7 @@ int main() result += evaluate_rational_0(num, denom_int, v[0] + j, i); return result; }); - report_execution_time(time, std::string("Rational Method Comparison on ") + BOOST_PLATFORM, "Order " + make_order_string(i), "Method 0[br](Integer Coefficients)"); + report_execution_time(time, std::string("Rational Method Comparison with ") + compiler_name() + std::string(" on ") + platform_name(), "Order " + make_order_string(i), "Method 0[br](Integer Coefficients)"); } test_rat_1(boost::mpl::int_<20>()); diff --git a/reporting/performance/test_polygamma.cpp b/reporting/performance/test_polygamma.cpp index 5d3198d68..bf5d75166 100644 --- a/reporting/performance/test_polygamma.cpp +++ b/reporting/performance/test_polygamma.cpp @@ -154,11 +154,6 @@ typedef double value_type; int main() { -#if !defined(COMPILER_COMPARISON_TABLES) && !defined(TEST_GSL) && !defined(TEST_RMATH) - // we have nothing to compare against, just bail out: - return 0; -#endif - #include "expint_data.ipp" #include "expint_small_data.ipp" #include "expint_1_data.ipp" @@ -184,12 +179,16 @@ int main() unsigned data_used = data.size(); std::string function = "polygamma[br](" + boost::lexical_cast(data_used) + "/" + boost::lexical_cast(data_total) + " tests selected)"; + std::string function_short = "polygamma"; double time; time = exec_timed_test([](const std::vector& v){ return boost::math::polygamma(static_cast(v[0]), v[1]); }); std::cout << time << std::endl; - report_execution_time(time, std::string("Library Comparison with ") + std::string(BOOST_COMPILER) + std::string(" on ") + BOOST_PLATFORM, function, boost_name()); +#if !defined(COMPILER_COMPARISON_TABLES) && !defined(TEST_GSL) && !defined(TEST_RMATH) + report_execution_time(time, std::string("Library Comparison with ") + std::string(compiler_name()) + std::string(" on ") + platform_name(), function, boost_name()); +#endif + report_execution_time(time, std::string("Compiler Comparison on ") + std::string(platform_name()), function_short, compiler_name() + std::string("[br]") + boost_name()); // // Boost again, but with promotion to long double turned off: // @@ -198,7 +197,10 @@ int main() { time = exec_timed_test([](const std::vector& v){ return boost::math::polygamma(static_cast(v[0]), v[1], boost::math::policies::make_policy(boost::math::policies::promote_double())); }); std::cout << time << std::endl; - report_execution_time(time, std::string("Library Comparison with ") + std::string(BOOST_COMPILER) + std::string(" on ") + BOOST_PLATFORM, function, boost_name() + "[br]promote_double"); +#if !defined(COMPILER_COMPARISON_TABLES) && !defined(TEST_GSL) && !defined(TEST_RMATH) + report_execution_time(time, std::string("Library Comparison with ") + std::string(compiler_name()) + std::string(" on ") + platform_name(), function, boost_name() + "[br]promote_double"); +#endif + report_execution_time(time, std::string("Compiler Comparison on ") + std::string(platform_name()), function_short, compiler_name() + std::string("[br]") + boost_name() + "[br]promote_double"); } #endif @@ -206,12 +208,12 @@ int main() #if defined(TEST_GSL) && !defined(COMPILER_COMPARISON_TABLES) time = exec_timed_test([](const std::vector& v){ return gsl_sf_psi_n(static_cast(v[0]), v[1]); }); std::cout << time << std::endl; - report_execution_time(time, std::string("Library Comparison with ") + std::string(BOOST_COMPILER) + std::string(" on ") + BOOST_PLATFORM, function, "GSL " GSL_VERSION); + report_execution_time(time, std::string("Library Comparison with ") + std::string(compiler_name()) + std::string(" on ") + platform_name(), function, "GSL " GSL_VERSION); #endif #if defined(TEST_RMATH) && !defined(COMPILER_COMPARISON_TABLES) time = exec_timed_test([](const std::vector& v){ return ::psigamma(v[1], static_cast(v[0])); }); std::cout << time << std::endl; - report_execution_time(time, std::string("Library Comparison with ") + std::string(BOOST_COMPILER) + std::string(" on ") + BOOST_PLATFORM, function, "Rmath " R_VERSION_STRING); + report_execution_time(time, std::string("Library Comparison with ") + std::string(compiler_name()) + std::string(" on ") + platform_name(), function, "Rmath " R_VERSION_STRING); #endif return 0; diff --git a/reporting/performance/test_sn.cpp b/reporting/performance/test_sn.cpp index bb022515e..65b40e2ca 100644 --- a/reporting/performance/test_sn.cpp +++ b/reporting/performance/test_sn.cpp @@ -63,11 +63,6 @@ typedef double T; int main() { -#if !defined(COMPILER_COMPARISON_TABLES) && !defined(TEST_GSL) - // we have nothing to compare against, just bail out: - return 0; -#endif - #include "jacobi_elliptic.ipp" #include "jacobi_elliptic_small.ipp" #include "jacobi_near_1.ipp" @@ -98,12 +93,16 @@ int main() unsigned data_used = data.size(); std::string function = "jacobi_sn[br](" + boost::lexical_cast(data_used) + "/" + boost::lexical_cast(data_total) + " tests selected)"; + std::string function_short = "jacobi_sn"; double time; time = exec_timed_test([](const std::vector& v){ return boost::math::jacobi_sn(v[1], v[2]); }); std::cout << time << std::endl; - report_execution_time(time, std::string("Library Comparison with ") + std::string(BOOST_COMPILER) + std::string(" on ") + BOOST_PLATFORM, function, boost_name()); +#if !defined(COMPILER_COMPARISON_TABLES) && !defined(TEST_GSL) && !defined(TEST_RMATH) + report_execution_time(time, std::string("Library Comparison with ") + std::string(compiler_name()) + std::string(" on ") + platform_name(), function, boost_name()); +#endif + report_execution_time(time, std::string("Compiler Comparison on ") + std::string(platform_name()), function_short, compiler_name() + std::string("[br]") + boost_name()); // // Boost again, but with promotion to long double turned off: // @@ -112,7 +111,10 @@ int main() { time = exec_timed_test([](const std::vector& v){ return boost::math::jacobi_sn(v[1], v[0], boost::math::policies::make_policy(boost::math::policies::promote_double())); }); std::cout << time << std::endl; - report_execution_time(time, std::string("Library Comparison with ") + std::string(BOOST_COMPILER) + std::string(" on ") + BOOST_PLATFORM, function, boost_name() + "[br]promote_double"); +#if !defined(COMPILER_COMPARISON_TABLES) && !defined(TEST_GSL) && !defined(TEST_RMATH) + report_execution_time(time, std::string("Library Comparison with ") + std::string(compiler_name()) + std::string(" on ") + platform_name(), function, boost_name() + "[br]promote_double"); +#endif + report_execution_time(time, std::string("Compiler Comparison on ") + std::string(platform_name()), function_short, compiler_name() + std::string("[br]") + boost_name() + "[br]promote_double"); } #endif @@ -125,7 +127,7 @@ int main() return s; }); std::cout << time << std::endl; - report_execution_time(time, std::string("Library Comparison with ") + std::string(BOOST_COMPILER) + std::string(" on ") + BOOST_PLATFORM, function, "GSL " GSL_VERSION); + report_execution_time(time, std::string("Library Comparison with ") + std::string(compiler_name()) + std::string(" on ") + platform_name(), function, "GSL " GSL_VERSION); #endif return 0; diff --git a/reporting/performance/test_tgamma.cpp b/reporting/performance/test_tgamma.cpp index f55bc72b7..a10fe8077 100644 --- a/reporting/performance/test_tgamma.cpp +++ b/reporting/performance/test_tgamma.cpp @@ -17,11 +17,6 @@ int main() { -#if !defined(COMPILER_COMPARISON_TABLES) && !defined(TEST_C99) && !defined(TEST_GSL) && !defined(TEST_LIBSTDCXX) && !defined(TEST_RMATH) - // we have nothing to compare against, just bail out: - return 0; -#endif - typedef double T; #define SC_(x) static_cast(x) # include "test_gamma_data.ipp" @@ -53,10 +48,14 @@ int main() unsigned data_used = data.size(); std::string function = "tgamma[br](" + boost::lexical_cast(data_used) + "/" + boost::lexical_cast(data_total) + " tests selected)"; + std::string function_short = "tgamma"; double time = exec_timed_test([](const std::vector& v){ return boost::math::tgamma(v[0]); }); std::cout << time << std::endl; - report_execution_time(time, std::string("Library Comparison with ") + std::string(BOOST_COMPILER) + std::string(" on ") + BOOST_PLATFORM, function, boost_name()); +#if !defined(COMPILER_COMPARISON_TABLES) && !defined(TEST_GSL) && !defined(TEST_RMATH) + report_execution_time(time, std::string("Library Comparison with ") + std::string(compiler_name()) + std::string(" on ") + platform_name(), function, boost_name()); +#endif + report_execution_time(time, std::string("Compiler Comparison on ") + std::string(platform_name()), function_short, compiler_name() + std::string("[br]") + boost_name()); // // Boost again, but with promotion to long double turned off: // @@ -65,7 +64,10 @@ int main() { double time = exec_timed_test([](const std::vector& v){ return boost::math::tgamma(v[0], boost::math::policies::make_policy(boost::math::policies::promote_double())); }); std::cout << time << std::endl; - report_execution_time(time, std::string("Library Comparison with ") + std::string(BOOST_COMPILER) + std::string(" on ") + BOOST_PLATFORM, function, boost_name() + "[br]promote_double"); +#if !defined(COMPILER_COMPARISON_TABLES) && !defined(TEST_GSL) && !defined(TEST_RMATH) + report_execution_time(time, std::string("Library Comparison with ") + std::string(compiler_name()) + std::string(" on ") + platform_name(), function, boost_name() + "[br]promote_double"); +#endif + report_execution_time(time, std::string("Compiler Comparison on ") + std::string(platform_name()), function_short, compiler_name() + std::string("[br]") + boost_name() + "[br]promote_double"); } #endif @@ -73,22 +75,22 @@ int main() #if defined(TEST_C99) && !defined(COMPILER_COMPARISON_TABLES) time = exec_timed_test([](const std::vector& v){ return ::tgamma(v[0]); }); std::cout << time << std::endl; - report_execution_time(time, std::string("Library Comparison with ") + std::string(BOOST_COMPILER) + std::string(" on ") + BOOST_PLATFORM, function, "math.h"); + report_execution_time(time, std::string("Library Comparison with ") + std::string(compiler_name()) + std::string(" on ") + platform_name(), function, "math.h"); #endif #if defined(TEST_LIBSTDCXX) && !defined(COMPILER_COMPARISON_TABLES) time = exec_timed_test([](const std::vector& v){ return std::tr1::tgamma(v[0]); }); std::cout << time << std::endl; - report_execution_time(time, std::string("Library Comparison with ") + std::string(BOOST_COMPILER) + std::string(" on ") + BOOST_PLATFORM, function, "tr1/cmath"); + report_execution_time(time, std::string("Library Comparison with ") + std::string(compiler_name()) + std::string(" on ") + platform_name(), function, "tr1/cmath"); #endif #if defined(TEST_GSL) && !defined(COMPILER_COMPARISON_TABLES) time = exec_timed_test([](const std::vector& v){ return gsl_sf_gamma(v[0]); }); std::cout << time << std::endl; - report_execution_time(time, std::string("Library Comparison with ") + std::string(BOOST_COMPILER) + std::string(" on ") + BOOST_PLATFORM, function, "GSL " GSL_VERSION); + report_execution_time(time, std::string("Library Comparison with ") + std::string(compiler_name()) + std::string(" on ") + platform_name(), function, "GSL " GSL_VERSION); #endif #if defined(TEST_RMATH) && !defined(COMPILER_COMPARISON_TABLES) time = exec_timed_test([](const std::vector& v){ return gammafn(v[0]); }); std::cout << time << std::endl; - report_execution_time(time, std::string("Library Comparison with ") + std::string(BOOST_COMPILER) + std::string(" on ") + BOOST_PLATFORM, function, "Rmath " R_VERSION_STRING); + report_execution_time(time, std::string("Library Comparison with ") + std::string(compiler_name()) + std::string(" on ") + platform_name(), function, "Rmath " R_VERSION_STRING); #endif return 0; diff --git a/reporting/performance/test_trigamma.cpp b/reporting/performance/test_trigamma.cpp index 841f786e0..659846daa 100644 --- a/reporting/performance/test_trigamma.cpp +++ b/reporting/performance/test_trigamma.cpp @@ -17,11 +17,6 @@ int main() { -#if !defined(COMPILER_COMPARISON_TABLES) && !defined(TEST_GSL) && !defined(TEST_RMATH) - // we have nothing to compare against, just bail out: - return 0; -#endif - typedef double T; #define SC_(x) static_cast(x) boost::array, 659> data = @@ -49,10 +44,14 @@ int main() unsigned data_used = data.size(); std::string function = "trigamma[br](" + boost::lexical_cast(data_used) + "/" + boost::lexical_cast(data_total) + " tests selected)"; + std::string function_short = "trigamma"; double time = exec_timed_test([](const std::vector& v){ return boost::math::trigamma(v[0]); }); std::cout << time << std::endl; - report_execution_time(time, std::string("Library Comparison with ") + std::string(BOOST_COMPILER) + std::string(" on ") + BOOST_PLATFORM, function, boost_name()); +#if !defined(COMPILER_COMPARISON_TABLES) && !defined(TEST_GSL) && !defined(TEST_RMATH) + report_execution_time(time, std::string("Library Comparison with ") + std::string(compiler_name()) + std::string(" on ") + platform_name(), function, boost_name()); +#endif + report_execution_time(time, std::string("Compiler Comparison on ") + std::string(platform_name()), function_short, compiler_name() + std::string("[br]") + boost_name()); // // Boost again, but with promotion to long double turned off: // @@ -61,7 +60,10 @@ int main() { double time = exec_timed_test([](const std::vector& v){ return boost::math::trigamma(v[0], boost::math::policies::make_policy(boost::math::policies::promote_double())); }); std::cout << time << std::endl; - report_execution_time(time, std::string("Library Comparison with ") + std::string(BOOST_COMPILER) + std::string(" on ") + BOOST_PLATFORM, function, boost_name() + "[br]promote_double"); +#if !defined(COMPILER_COMPARISON_TABLES) && !defined(TEST_GSL) && !defined(TEST_RMATH) + report_execution_time(time, std::string("Library Comparison with ") + std::string(compiler_name()) + std::string(" on ") + platform_name(), function, boost_name() + "[br]promote_double"); +#endif + report_execution_time(time, std::string("Compiler Comparison on ") + std::string(platform_name()), function_short, compiler_name() + std::string("[br]") + boost_name() + "[br]promote_double"); } #endif @@ -69,12 +71,12 @@ int main() #if defined(TEST_GSL) && !defined(COMPILER_COMPARISON_TABLES) time = exec_timed_test([](const std::vector& v){ return gsl_sf_psi_1(v[0]); }); std::cout << time << std::endl; - report_execution_time(time, std::string("Library Comparison with ") + std::string(BOOST_COMPILER) + std::string(" on ") + BOOST_PLATFORM, function, "GSL " GSL_VERSION); + report_execution_time(time, std::string("Library Comparison with ") + std::string(compiler_name()) + std::string(" on ") + platform_name(), function, "GSL " GSL_VERSION); #endif #if defined(TEST_RMATH) && !defined(COMPILER_COMPARISON_TABLES) time = exec_timed_test([](const std::vector& v){ return ::trigamma(v[0]); }); std::cout << time << std::endl; - report_execution_time(time, std::string("Library Comparison with ") + std::string(BOOST_COMPILER) + std::string(" on ") + BOOST_PLATFORM, function, "Rmath " R_VERSION_STRING); + report_execution_time(time, std::string("Library Comparison with ") + std::string(compiler_name()) + std::string(" on ") + platform_name(), function, "Rmath " R_VERSION_STRING); #endif return 0; diff --git a/reporting/performance/test_yn.cpp b/reporting/performance/test_yn.cpp index a57772fd7..811cda156 100644 --- a/reporting/performance/test_yn.cpp +++ b/reporting/performance/test_yn.cpp @@ -54,11 +54,6 @@ static const boost::array::type, 3>, 10> yn_ int main() { -#if !defined(COMPILER_COMPARISON_TABLES) && !defined(TEST_C99) && !defined(TEST_GSL) && !defined(TEST_LIBSTDCXX) && !defined(TEST_RMATH) - // we have nothing to compare against, just bail out: - return 0; -#endif - #include "bessel_y01_data.ipp" #include "bessel_yn_data.ipp" @@ -88,12 +83,16 @@ int main() unsigned data_used = data.size(); std::string function = "cyl_neumann (integer order)[br](" + boost::lexical_cast(data_used) + "/" + boost::lexical_cast(data_total) + " tests selected)"; + std::string function_short = "cyl_neumann (integer order)"; double time; time = exec_timed_test([](const std::vector& v){ return boost::math::cyl_neumann(static_cast(v[0]), v[1]); }); std::cout << time << std::endl; - report_execution_time(time, std::string("Library Comparison with ") + std::string(BOOST_COMPILER) + std::string(" on ") + BOOST_PLATFORM, function, boost_name()); +#if !defined(COMPILER_COMPARISON_TABLES) && !defined(TEST_GSL) && !defined(TEST_RMATH) + report_execution_time(time, std::string("Library Comparison with ") + std::string(compiler_name()) + std::string(" on ") + platform_name(), function, boost_name()); +#endif + report_execution_time(time, std::string("Compiler Comparison on ") + std::string(platform_name()), function_short, compiler_name() + std::string("[br]") + boost_name()); // // Boost again, but with promotion to long double turned off: // @@ -102,7 +101,10 @@ int main() { time = exec_timed_test([](const std::vector& v){ return boost::math::cyl_neumann(static_cast(v[0]), v[1], boost::math::policies::make_policy(boost::math::policies::promote_double())); }); std::cout << time << std::endl; - report_execution_time(time, std::string("Library Comparison with ") + std::string(BOOST_COMPILER) + std::string(" on ") + BOOST_PLATFORM, function, boost_name() + "[br]promote_double"); +#if !defined(COMPILER_COMPARISON_TABLES) && !defined(TEST_GSL) && !defined(TEST_RMATH) + report_execution_time(time, std::string("Library Comparison with ") + std::string(compiler_name()) + std::string(" on ") + platform_name(), function, boost_name() + "[br]promote_double"); +#endif + report_execution_time(time, std::string("Compiler Comparison on ") + std::string(platform_name()), function_short, compiler_name() + std::string("[br]") + boost_name() + "[br]promote_double"); } #endif @@ -110,22 +112,22 @@ int main() #if defined(TEST_C99) && !defined(COMPILER_COMPARISON_TABLES) time = exec_timed_test([](const std::vector& v){ return ::yn(static_cast(v[0]), v[1]); }); std::cout << time << std::endl; - report_execution_time(time, std::string("Library Comparison with ") + std::string(BOOST_COMPILER) + std::string(" on ") + BOOST_PLATFORM, function, "math.h"); + report_execution_time(time, std::string("Library Comparison with ") + std::string(compiler_name()) + std::string(" on ") + platform_name(), function, "math.h"); #endif #if defined(TEST_LIBSTDCXX) && !defined(COMPILER_COMPARISON_TABLES) time = exec_timed_test([](const std::vector& v){ return std::tr1::cyl_neumann(static_cast(v[0]), v[1]); }); std::cout << time << std::endl; - report_execution_time(time, std::string("Library Comparison with ") + std::string(BOOST_COMPILER) + std::string(" on ") + BOOST_PLATFORM, function, "tr1/cmath"); + report_execution_time(time, std::string("Library Comparison with ") + std::string(compiler_name()) + std::string(" on ") + platform_name(), function, "tr1/cmath"); #endif #if defined(TEST_GSL) && !defined(COMPILER_COMPARISON_TABLES) time = exec_timed_test([](const std::vector& v){ return gsl_sf_bessel_Yn(static_cast(v[0]), v[1]); }); std::cout << time << std::endl; - report_execution_time(time, std::string("Library Comparison with ") + std::string(BOOST_COMPILER) + std::string(" on ") + BOOST_PLATFORM, function, "GSL " GSL_VERSION); + report_execution_time(time, std::string("Library Comparison with ") + std::string(compiler_name()) + std::string(" on ") + platform_name(), function, "GSL " GSL_VERSION); #endif #if defined(TEST_RMATH) && !defined(COMPILER_COMPARISON_TABLES) time = exec_timed_test([](const std::vector& v){ return bessel_y(v[1], static_cast(v[0])); }); std::cout << time << std::endl; - report_execution_time(time, std::string("Library Comparison with ") + std::string(BOOST_COMPILER) + std::string(" on ") + BOOST_PLATFORM, function, "Rmath " R_VERSION_STRING); + report_execution_time(time, std::string("Library Comparison with ") + std::string(compiler_name()) + std::string(" on ") + platform_name(), function, "Rmath " R_VERSION_STRING); #endif return 0; diff --git a/reporting/performance/test_ys.cpp b/reporting/performance/test_ys.cpp index 96ffce43b..4ddadc67b 100644 --- a/reporting/performance/test_ys.cpp +++ b/reporting/performance/test_ys.cpp @@ -20,11 +20,6 @@ typedef double T; int main() { -#if !defined(COMPILER_COMPARISON_TABLES) && !defined(TEST_GSL) && !defined(TEST_LIBSTDCXX) - // we have nothing to compare against, just bail out: - return 0; -#endif - #include "sph_neumann_data.ipp" add_data(sph_neumann_data); @@ -43,12 +38,16 @@ int main() unsigned data_used = data.size(); std::string function = "sph_neumann[br](" + boost::lexical_cast(data_used) + "/" + boost::lexical_cast(data_total) + " tests selected)"; + std::string function_short = "sph_neumann"; double time; time = exec_timed_test([](const std::vector& v){ return boost::math::sph_neumann(static_cast(v[0]), v[1]); }); std::cout << time << std::endl; - report_execution_time(time, std::string("Library Comparison with ") + std::string(BOOST_COMPILER) + std::string(" on ") + BOOST_PLATFORM, function, boost_name()); +#if !defined(COMPILER_COMPARISON_TABLES) && !defined(TEST_GSL) && !defined(TEST_RMATH) + report_execution_time(time, std::string("Library Comparison with ") + std::string(compiler_name()) + std::string(" on ") + platform_name(), function, boost_name()); +#endif + report_execution_time(time, std::string("Compiler Comparison on ") + std::string(platform_name()), function_short, compiler_name() + std::string("[br]") + boost_name()); // // Boost again, but with promotion to long double turned off: // @@ -57,7 +56,10 @@ int main() { time = exec_timed_test([](const std::vector& v){ return boost::math::sph_neumann(static_cast(v[0]), v[1], boost::math::policies::make_policy(boost::math::policies::promote_double())); }); std::cout << time << std::endl; - report_execution_time(time, std::string("Library Comparison with ") + std::string(BOOST_COMPILER) + std::string(" on ") + BOOST_PLATFORM, function, boost_name() + "[br]promote_double"); +#if !defined(COMPILER_COMPARISON_TABLES) && !defined(TEST_GSL) && !defined(TEST_RMATH) + report_execution_time(time, std::string("Library Comparison with ") + std::string(compiler_name()) + std::string(" on ") + platform_name(), function, boost_name() + "[br]promote_double"); +#endif + report_execution_time(time, std::string("Compiler Comparison on ") + std::string(platform_name()), function_short, compiler_name() + std::string("[br]") + boost_name() + "[br]promote_double"); } #endif @@ -65,12 +67,12 @@ int main() #if defined(TEST_LIBSTDCXX) && !defined(COMPILER_COMPARISON_TABLES) time = exec_timed_test([](const std::vector& v){ return std::tr1::sph_neumann(static_cast(v[0]), v[1]); }); std::cout << time << std::endl; - report_execution_time(time, std::string("Library Comparison with ") + std::string(BOOST_COMPILER) + std::string(" on ") + BOOST_PLATFORM, function, "tr1/cmath"); + report_execution_time(time, std::string("Library Comparison with ") + std::string(compiler_name()) + std::string(" on ") + platform_name(), function, "tr1/cmath"); #endif #if defined(TEST_GSL) && !defined(COMPILER_COMPARISON_TABLES) time = exec_timed_test([](const std::vector& v){ return gsl_sf_bessel_yl(static_cast(v[0]), v[1]); }); std::cout << time << std::endl; - report_execution_time(time, std::string("Library Comparison with ") + std::string(BOOST_COMPILER) + std::string(" on ") + BOOST_PLATFORM, function, "GSL " GSL_VERSION); + report_execution_time(time, std::string("Library Comparison with ") + std::string(compiler_name()) + std::string(" on ") + platform_name(), function, "GSL " GSL_VERSION); #endif return 0; diff --git a/reporting/performance/test_yv.cpp b/reporting/performance/test_yv.cpp index 00847bfb9..52610362d 100644 --- a/reporting/performance/test_yv.cpp +++ b/reporting/performance/test_yv.cpp @@ -44,11 +44,6 @@ static const boost::array, 7> yv_large_data = { { int main() { -#if !defined(COMPILER_COMPARISON_TABLES) && !defined(TEST_GSL) && !defined(TEST_LIBSTDCXX) && !defined(TEST_RMATH) - // we have nothing to compare against, just bail out: - return 0; -#endif - #include "bessel_yv_data.ipp" add_data(yv_data); @@ -76,12 +71,16 @@ int main() unsigned data_used = data.size(); std::string function = "cyl_neumann[br](" + boost::lexical_cast(data_used) + "/" + boost::lexical_cast(data_total) + " tests selected)"; + std::string function_short = "cyl_neumann"; double time; time = exec_timed_test([](const std::vector& v){ return boost::math::cyl_neumann(v[0], v[1]); }); std::cout << time << std::endl; - report_execution_time(time, std::string("Library Comparison with ") + std::string(BOOST_COMPILER) + std::string(" on ") + BOOST_PLATFORM, function, boost_name()); +#if !defined(COMPILER_COMPARISON_TABLES) && !defined(TEST_GSL) && !defined(TEST_RMATH) + report_execution_time(time, std::string("Library Comparison with ") + std::string(compiler_name()) + std::string(" on ") + platform_name(), function, boost_name()); +#endif + report_execution_time(time, std::string("Compiler Comparison on ") + std::string(platform_name()), function_short, compiler_name() + std::string("[br]") + boost_name()); // // Boost again, but with promotion to long double turned off: // @@ -90,7 +89,10 @@ int main() { time = exec_timed_test([](const std::vector& v){ return boost::math::cyl_neumann(v[0], v[1], boost::math::policies::make_policy(boost::math::policies::promote_double())); }); std::cout << time << std::endl; - report_execution_time(time, std::string("Library Comparison with ") + std::string(BOOST_COMPILER) + std::string(" on ") + BOOST_PLATFORM, function, boost_name() + "[br]promote_double"); +#if !defined(COMPILER_COMPARISON_TABLES) && !defined(TEST_GSL) && !defined(TEST_RMATH) + report_execution_time(time, std::string("Library Comparison with ") + std::string(compiler_name()) + std::string(" on ") + platform_name(), function, boost_name() + "[br]promote_double"); +#endif + report_execution_time(time, std::string("Compiler Comparison on ") + std::string(platform_name()), function_short, compiler_name() + std::string("[br]") + boost_name() + "[br]promote_double"); } #endif @@ -98,17 +100,17 @@ int main() #if defined(TEST_LIBSTDCXX) && !defined(COMPILER_COMPARISON_TABLES) time = exec_timed_test([](const std::vector& v){ return std::tr1::cyl_neumann(v[0], v[1]); }); std::cout << time << std::endl; - report_execution_time(time, std::string("Library Comparison with ") + std::string(BOOST_COMPILER) + std::string(" on ") + BOOST_PLATFORM, function, "tr1/cmath"); + report_execution_time(time, std::string("Library Comparison with ") + std::string(compiler_name()) + std::string(" on ") + platform_name(), function, "tr1/cmath"); #endif #if defined(TEST_GSL) && !defined(COMPILER_COMPARISON_TABLES) time = exec_timed_test([](const std::vector& v){ return gsl_sf_bessel_Ynu(v[0], v[1]); }); std::cout << time << std::endl; - report_execution_time(time, std::string("Library Comparison with ") + std::string(BOOST_COMPILER) + std::string(" on ") + BOOST_PLATFORM, function, "GSL " GSL_VERSION); + report_execution_time(time, std::string("Library Comparison with ") + std::string(compiler_name()) + std::string(" on ") + platform_name(), function, "GSL " GSL_VERSION); #endif #if defined(TEST_RMATH) && !defined(COMPILER_COMPARISON_TABLES) time = exec_timed_test([](const std::vector& v){ return bessel_y(v[1], v[0]); }); std::cout << time << std::endl; - report_execution_time(time, std::string("Library Comparison with ") + std::string(BOOST_COMPILER) + std::string(" on ") + BOOST_PLATFORM, function, "Rmath " R_VERSION_STRING); + report_execution_time(time, std::string("Library Comparison with ") + std::string(compiler_name()) + std::string(" on ") + platform_name(), function, "Rmath " R_VERSION_STRING); #endif return 0; diff --git a/reporting/performance/test_zeta.cpp b/reporting/performance/test_zeta.cpp index dba7d464f..6b54ce711 100644 --- a/reporting/performance/test_zeta.cpp +++ b/reporting/performance/test_zeta.cpp @@ -17,11 +17,6 @@ int main() { -#if !defined(COMPILER_COMPARISON_TABLES) && !defined(TEST_GSL) && !defined(TEST_LIBSTDCXX) - // we have nothing to compare against, just bail out: - return 0; -#endif - typedef double T; #define SC_(x) static_cast(x) #include "zeta_data.ipp" @@ -47,10 +42,14 @@ int main() unsigned data_used = data.size(); std::string function = "zeta[br](" + boost::lexical_cast(data_used) + "/" + boost::lexical_cast(data_total) + " tests selected)"; + std::string function_short = "zeta"; double time = exec_timed_test([](const std::vector& v){ return boost::math::zeta(v[0]); }); std::cout << time << std::endl; - report_execution_time(time, std::string("Library Comparison with ") + std::string(BOOST_COMPILER) + std::string(" on ") + BOOST_PLATFORM, function, boost_name()); +#if !defined(COMPILER_COMPARISON_TABLES) && !defined(TEST_GSL) && !defined(TEST_RMATH) + report_execution_time(time, std::string("Library Comparison with ") + std::string(compiler_name()) + std::string(" on ") + platform_name(), function, boost_name()); +#endif + report_execution_time(time, std::string("Compiler Comparison on ") + std::string(platform_name()), function_short, compiler_name() + std::string("[br]") + boost_name()); // // Boost again, but with promotion to long double turned off: // @@ -59,7 +58,10 @@ int main() { double time = exec_timed_test([](const std::vector& v){ return boost::math::zeta(v[0], boost::math::policies::make_policy(boost::math::policies::promote_double())); }); std::cout << time << std::endl; - report_execution_time(time, std::string("Library Comparison with ") + std::string(BOOST_COMPILER) + std::string(" on ") + BOOST_PLATFORM, function, boost_name() + "[br]promote_double"); +#if !defined(COMPILER_COMPARISON_TABLES) && !defined(TEST_GSL) && !defined(TEST_RMATH) + report_execution_time(time, std::string("Library Comparison with ") + std::string(compiler_name()) + std::string(" on ") + platform_name(), function, boost_name() + "[br]promote_double"); +#endif + report_execution_time(time, std::string("Compiler Comparison on ") + std::string(platform_name()), function_short, compiler_name() + std::string("[br]") + boost_name() + "[br]promote_double"); } #endif @@ -67,12 +69,12 @@ int main() #if defined(TEST_LIBSTDCXX) && !defined(COMPILER_COMPARISON_TABLES) time = exec_timed_test([](const std::vector& v){ return std::tr1::riemann_zeta(v[0]); }); std::cout << time << std::endl; - report_execution_time(time, std::string("Library Comparison with ") + std::string(BOOST_COMPILER) + std::string(" on ") + BOOST_PLATFORM, function, "tr1/cmath"); + report_execution_time(time, std::string("Library Comparison with ") + std::string(compiler_name()) + std::string(" on ") + platform_name(), function, "tr1/cmath"); #endif #if defined(TEST_GSL) && !defined(COMPILER_COMPARISON_TABLES) time = exec_timed_test([](const std::vector& v){ return gsl_sf_zeta(v[0]); }); std::cout << time << std::endl; - report_execution_time(time, std::string("Library Comparison with ") + std::string(BOOST_COMPILER) + std::string(" on ") + BOOST_PLATFORM, function, "GSL " GSL_VERSION); + report_execution_time(time, std::string("Library Comparison with ") + std::string(compiler_name()) + std::string(" on ") + platform_name(), function, "GSL " GSL_VERSION); #endif return 0;