From 1afbce8b3105b92a74caa3a10b4e3e8e8e3b981a Mon Sep 17 00:00:00 2001 From: Christopher Kormanyos Date: Sun, 6 Sep 2020 15:51:53 +0200 Subject: [PATCH 01/17] [CI SKIP] Try fix min Bn arg for recur. --- include/boost/math/special_functions/gamma.hpp | 18 ++++++++++++++---- 1 file changed, 14 insertions(+), 4 deletions(-) diff --git a/include/boost/math/special_functions/gamma.hpp b/include/boost/math/special_functions/gamma.hpp index 86716d0ae..1797f5cbb 100644 --- a/include/boost/math/special_functions/gamma.hpp +++ b/include/boost/math/special_functions/gamma.hpp @@ -366,11 +366,21 @@ std::size_t highest_bernoulli_index() template int minimum_argument_for_bernoulli_recursion() { - const float digits10_of_type = (std::numeric_limits::is_specialized - ? static_cast(std::numeric_limits::digits10) - : static_cast(boost::math::tools::digits() * 0.301F)); + using std::ceil; + using std::ldexp; + using std::pow; - const float limit = std::ceil(std::pow(1.0f / std::ldexp(1.0f, 1-boost::math::tools::digits()), 1.0f / 20.0f)); + BOOST_CONSTEXPR_OR_CONST float digits10_of_type = + (std::numeric_limits::is_specialized + ? static_cast(std::numeric_limits::digits10) + : static_cast(float(boost::math::tools::digits()) * 0.301F)); + + BOOST_CONSTEXPR_OR_CONST int argn_of_ldexp = + (std::numeric_limits::is_specialized + ? 1 - std::numeric_limits::digits10 + : 1 - (int) ((long long) ((long long) boost::math::tools::digits() * 301LL) / 1000LL)); + + const float limit = ceil(pow(1.0f / ldexp(1.0f, argn_of_ldexp), 1.0f / 20.0f)); return (int)((std::min)(digits10_of_type * 1.7F, limit)); } From cb2bab6fd1b7d2fb4639b3d82d357d6b889208a3 Mon Sep 17 00:00:00 2001 From: Christopher Kormanyos Date: Tue, 8 Sep 2020 07:50:56 +0200 Subject: [PATCH 02/17] Fix min arg Bernoulli recur (TBD notes in PR) --- .../boost/math/special_functions/gamma.hpp | 27 ++++++++++--------- 1 file changed, 14 insertions(+), 13 deletions(-) diff --git a/include/boost/math/special_functions/gamma.hpp b/include/boost/math/special_functions/gamma.hpp index 1797f5cbb..1fd8e37d4 100644 --- a/include/boost/math/special_functions/gamma.hpp +++ b/include/boost/math/special_functions/gamma.hpp @@ -366,23 +366,24 @@ std::size_t highest_bernoulli_index() template int minimum_argument_for_bernoulli_recursion() { - using std::ceil; - using std::ldexp; - using std::pow; - - BOOST_CONSTEXPR_OR_CONST float digits10_of_type = + BOOST_CONSTEXPR_OR_CONST boost::uint32_t digits10_of_type = (std::numeric_limits::is_specialized - ? static_cast(std::numeric_limits::digits10) - : static_cast(float(boost::math::tools::digits()) * 0.301F)); + ? static_cast(std::numeric_limits::digits10) + : static_cast((long long) ((long long) boost::math::tools::digits() * 301LL) / 1000LL)); - BOOST_CONSTEXPR_OR_CONST int argn_of_ldexp = - (std::numeric_limits::is_specialized - ? 1 - std::numeric_limits::digits10 - : 1 - (int) ((long long) ((long long) boost::math::tools::digits() * 301LL) / 1000LL)); + BOOST_CONSTEXPR_OR_CONST boost::uint32_t digits2_of_type = boost::math::tools::digits(); - const float limit = ceil(pow(1.0f / ldexp(1.0f, argn_of_ldexp), 1.0f / 20.0f)); + float min_arg = (float) digits10_of_type * 1.7F; - return (int)((std::min)(digits10_of_type * 1.7F, limit)); + if(digits2_of_type <= 1261U) + { + const float check_min_arg_for_smaller_type = + (float) (boost::uint64_t(1ULL) << ((digits2_of_type - 1U) / 20U)); + + min_arg = (std::min)(min_arg, check_min_arg_for_smaller_type); + } + + return (int) min_arg; } template From b29157c7e1154fa95952cd171c8d822ad1548fa8 Mon Sep 17 00:00:00 2001 From: Christopher Kormanyos Date: Sun, 13 Dec 2020 15:00:40 +0100 Subject: [PATCH 03/17] Fixes #396 tests tgamma fix and original report --- test/Jamfile.v2 | 1 + test/test_tgamma_for_issue396.cpp | 156 ++++++++++++++++++++++++++++++ 2 files changed, 157 insertions(+) create mode 100644 test/test_tgamma_for_issue396.cpp diff --git a/test/Jamfile.v2 b/test/Jamfile.v2 index 60dc9c154..94f206322 100644 --- a/test/Jamfile.v2 +++ b/test/Jamfile.v2 @@ -487,6 +487,7 @@ test-suite special_fun : [ run test_round.cpp pch ../../test/build//boost_unit_test_framework ] [ run test_spherical_harmonic.cpp test_instances//test_instances pch_light ../../test/build//boost_unit_test_framework ] [ run test_sign.cpp ../../test/build//boost_unit_test_framework ] + [ run test_tgamma_for_issue396.cpp test_instances//test_instances pch_light ../../test/build//boost_unit_test_framework ] [ run test_tgamma_ratio.cpp test_instances//test_instances pch_light ../../test/build//boost_unit_test_framework ] [ run test_trig.cpp test_instances//test_instances pch_light ../../test/build//boost_unit_test_framework ] [ run test_zeta.cpp ../../test/build//boost_unit_test_framework test_instances//test_instances pch_light ] diff --git a/test/test_tgamma_for_issue396.cpp b/test/test_tgamma_for_issue396.cpp new file mode 100644 index 000000000..f5896452d --- /dev/null +++ b/test/test_tgamma_for_issue396.cpp @@ -0,0 +1,156 @@ +/////////////////////////////////////////////////////////////////// +// Copyright John Maddock 2020. +// Copyright Christopher Kormanyos 2020. +// Distributed under the Boost Software License, +// Version 1.0. (See accompanying file LICENSE_1_0.txt +// or copy at http://www.boost.org/LICENSE_1_0.txt) +// + +#include +#include +#include "boost/math/distributions/beta.hpp" +#include +#include +#include + +#define BOOST_TEST_MODULE test_tgamma_for_issue396 +#include + +// In issue 396, a bug regarding overflow was traced back to the tgamma function. +// This test file tests the fix in 433 and its corresponding original bug report code. + +namespace local { + +bool test_cdf____for_issue396_bug_report___() +{ + using b_dist_type = boost::math::beta_distribution; + + b_dist_type b_dist(1.0, 2.0); + + auto test = -boost::math::cdf(boost::math::complement(b_dist, 0.5)); + + using std::fabs; + + const boost::multiprecision::cpp_dec_float_100 control = boost::multiprecision::cpp_dec_float_100(-0.25F); + + const boost::multiprecision::cpp_dec_float_100 closeness = fabs(1 - fabs(test / control)); + + const bool result_is_ok = (closeness < std::numeric_limits::epsilon() * 10U); + + return result_is_ok; +} + +template +bool test_tgamma_for_issue396() +{ + using floating_point_type = BigFloatType; + + // Table[N[Gamma[(1/2) + (10^n)], 103], {n, 0, 3, 1}] + + const boost::array control = + {{ + floating_point_type("0.8862269254527580136490837416705725913987747280611935641069038949264556422955160906874753283692723327081"), + floating_point_type("1.133278388948785567334574165588892475560298308275159776608723414529483390056004153717630538727607290658E6"), + floating_point_type("9.320963104082716608349109809141910437906497038162361154016117519412076597761162355221807605383606022361E156"), + floating_point_type("1.272301195695055464182244180377444569506634709865527828393992983880480861838914363639331431733362215434E2566") + }}; + + boost::uint32_t ten_pow_n = UINT32_C(1); + + const floating_point_type tol = std::numeric_limits::epsilon() * UINT32_C(100000); + + bool result_is_ok = true; + + for(typename boost::array::size_type i = 0U; i < control.size(); ++i) + { + const floating_point_type g = boost::math::tgamma(boost::math::constants::half() + ten_pow_n); + + ten_pow_n *= UINT32_C(10); + + using std::fabs; + + const floating_point_type closeness = fabs(1 - (g / control[i])); + + result_is_ok &= (closeness < tol); + } + + return result_is_ok; +} + +bool test_tgamma_for_issue396_cpp_dec_float() +{ + using cpp_dec_float_type_37 = boost::multiprecision::number, boost::multiprecision::et_off>; + using cpp_dec_float_type_38 = boost::multiprecision::number, boost::multiprecision::et_off>; + using cpp_dec_float_type_39 = boost::multiprecision::number, boost::multiprecision::et_off>; + using cpp_dec_float_type_40 = boost::multiprecision::number, boost::multiprecision::et_off>; + using cpp_dec_float_type_41 = boost::multiprecision::number, boost::multiprecision::et_off>; + using cpp_dec_float_type_42 = boost::multiprecision::number, boost::multiprecision::et_off>; + using cpp_dec_float_type_43 = boost::multiprecision::number, boost::multiprecision::et_off>; + + const bool cpp_dec_float_37_is_ok = test_tgamma_for_issue396(); + const bool cpp_dec_float_38_is_ok = test_tgamma_for_issue396(); + const bool cpp_dec_float_39_is_ok = test_tgamma_for_issue396(); + const bool cpp_dec_float_40_is_ok = test_tgamma_for_issue396(); + const bool cpp_dec_float_41_is_ok = test_tgamma_for_issue396(); + const bool cpp_dec_float_42_is_ok = test_tgamma_for_issue396(); + const bool cpp_dec_float_43_is_ok = test_tgamma_for_issue396(); + + const bool cpp_dec_float_is_ok = cpp_dec_float_37_is_ok + && cpp_dec_float_38_is_ok + && cpp_dec_float_39_is_ok + && cpp_dec_float_40_is_ok + && cpp_dec_float_41_is_ok + && cpp_dec_float_42_is_ok + && cpp_dec_float_43_is_ok; + + return cpp_dec_float_is_ok; +} + +bool test_tgamma_for_issue396_cpp_bin_float() +{ + using cpp_bin_float_type_37 = boost::multiprecision::number, boost::multiprecision::et_off>; + using cpp_bin_float_type_38 = boost::multiprecision::number, boost::multiprecision::et_off>; + using cpp_bin_float_type_39 = boost::multiprecision::number, boost::multiprecision::et_off>; + using cpp_bin_float_type_40 = boost::multiprecision::number, boost::multiprecision::et_off>; + using cpp_bin_float_type_41 = boost::multiprecision::number, boost::multiprecision::et_off>; + using cpp_bin_float_type_42 = boost::multiprecision::number, boost::multiprecision::et_off>; + using cpp_bin_float_type_43 = boost::multiprecision::number, boost::multiprecision::et_off>; + + const bool cpp_bin_float_37_is_ok = test_tgamma_for_issue396(); + const bool cpp_bin_float_38_is_ok = test_tgamma_for_issue396(); + const bool cpp_bin_float_39_is_ok = test_tgamma_for_issue396(); + const bool cpp_bin_float_40_is_ok = test_tgamma_for_issue396(); + const bool cpp_bin_float_41_is_ok = test_tgamma_for_issue396(); + const bool cpp_bin_float_42_is_ok = test_tgamma_for_issue396(); + const bool cpp_bin_float_43_is_ok = test_tgamma_for_issue396(); + + const bool cpp_bin_float_is_ok = cpp_bin_float_37_is_ok + && cpp_bin_float_38_is_ok + && cpp_bin_float_39_is_ok + && cpp_bin_float_40_is_ok + && cpp_bin_float_41_is_ok + && cpp_bin_float_42_is_ok + && cpp_bin_float_43_is_ok; + + return cpp_bin_float_is_ok; +} + +} // namespace local + +BOOST_AUTO_TEST_CASE(test_cdf____for_issue396_bug_report____tag) +{ + const bool cpp_bug_report_is_ok = local::test_cdf____for_issue396_bug_report___(); + BOOST_CHECK(cpp_bug_report_is_ok); +} + +BOOST_AUTO_TEST_CASE(test_tgamma_for_issue396_cpp_dec_float_tag) +{ + const bool cpp_dec_float_is_ok = local::test_tgamma_for_issue396_cpp_dec_float(); + BOOST_CHECK(cpp_dec_float_is_ok); +} + +BOOST_AUTO_TEST_CASE(test_tgamma_for_issue396_cpp_bin_float_tag) +{ + const bool cpp_bin_float_is_ok = local::test_tgamma_for_issue396_cpp_bin_float(); + BOOST_CHECK(cpp_bin_float_is_ok); +} From 90ee0013e7ebd3e67771fa78b30db9590a731a38 Mon Sep 17 00:00:00 2001 From: Christopher Kormanyos Date: Sun, 13 Dec 2020 20:33:25 +0100 Subject: [PATCH 04/17] Fix the fix of 396 and expand its test case --- .../boost/math/special_functions/gamma.hpp | 32 +++--- test/test_tgamma_for_issue396.cpp | 100 ++++++++++-------- 2 files changed, 73 insertions(+), 59 deletions(-) diff --git a/include/boost/math/special_functions/gamma.hpp b/include/boost/math/special_functions/gamma.hpp index e0d812ac4..8cc4b390b 100644 --- a/include/boost/math/special_functions/gamma.hpp +++ b/include/boost/math/special_functions/gamma.hpp @@ -366,24 +366,32 @@ std::size_t highest_bernoulli_index() template int minimum_argument_for_bernoulli_recursion() { - BOOST_CONSTEXPR_OR_CONST boost::uint32_t digits10_of_type = - (std::numeric_limits::is_specialized - ? static_cast(std::numeric_limits::digits10) - : static_cast((long long) ((long long) boost::math::tools::digits() * 301LL) / 1000LL)); + const float digits10_of_type = (std::numeric_limits::is_specialized + ? static_cast(std::numeric_limits::digits10) + : static_cast(boost::math::tools::digits() * 0.301F)); - BOOST_CONSTEXPR_OR_CONST boost::uint32_t digits2_of_type = boost::math::tools::digits(); + float min_arg_as_float = (float) digits10_of_type * 1.7F; - float min_arg = (float) digits10_of_type * 1.7F; - - if(digits2_of_type <= 1261U) + if(digits10_of_type < 50.0F) { - const float check_min_arg_for_smaller_type = - (float) (boost::uint64_t(1ULL) << ((digits2_of_type - 1U) / 20U)); + // The following code sequence has been modified + // within the context of issue 396. - min_arg = (std::min)(min_arg, check_min_arg_for_smaller_type); + // The calculation of the test-variable limit has now been + // made more clearly safe regarding overflow/underflow dangers. + + // The previous line looked like this (and did underflow ldexp for multiprecision types): + // const float limit = std::ceil(std::pow(1.0f / std::ldexp(1.0f, 1-boost::math::tools::digits()), 1.0f / 20.0f)); + + // The new safe versoin of the limit check is now here. + const float limit = std::exp(((digits10_of_type / 0.301F) * std::log(2.0F)) / 20.0F); + + min_arg_as_float = (std::min)(min_arg_as_float, limit); } - return (int) min_arg; + const int min_arg = (int) std::ceil(min_arg_as_float); + + return min_arg; } template diff --git a/test/test_tgamma_for_issue396.cpp b/test/test_tgamma_for_issue396.cpp index f5896452d..e87c0cfa7 100644 --- a/test/test_tgamma_for_issue396.cpp +++ b/test/test_tgamma_for_issue396.cpp @@ -45,14 +45,14 @@ bool test_tgamma_for_issue396() { using floating_point_type = BigFloatType; - // Table[N[Gamma[(1/2) + (10^n)], 103], {n, 0, 3, 1}] + // Table[N[Gamma[(1/2) + (10^n)], 503], {n, 0, 3, 1}] const boost::array control = {{ - floating_point_type("0.8862269254527580136490837416705725913987747280611935641069038949264556422955160906874753283692723327081"), - floating_point_type("1.133278388948785567334574165588892475560298308275159776608723414529483390056004153717630538727607290658E6"), - floating_point_type("9.320963104082716608349109809141910437906497038162361154016117519412076597761162355221807605383606022361E156"), - floating_point_type("1.272301195695055464182244180377444569506634709865527828393992983880480861838914363639331431733362215434E2566") + floating_point_type("0.88622692545275801364908374167057259139877472806119356410690389492645564229551609068747532836927233270811341181214128533311807643286221130126254685480139353423101884932655256142496258651447541311446604768963398140008731950767573986025835009509261700929272348724745632015696088776295310820270966625045319920380686673873757671683399489468292591820439772558258086938002953369671589566640492742312409245102732742609780662578082373375752136938052805399806355360503018602224183618264830685404716174941583421211"), + floating_point_type("1.1332783889487855673345741655888924755602983082751597766087234145294833900560041537176305387276072906583502717008932373348895801731780765775979953796646009714415152490764416630481375706606053932396039541459764525989187023837695167161085523804417015113740063535865261183579508922972990386756543208549178543857406373798865630303794109491220205170302558277398183764099268751365861892723863412249690833216320407918186480305202146014474770321625907339955121137559264239090240758401696425720048012081453338360E6"), + floating_point_type("9.3209631040827166083491098091419104379064970381623611540161175194120765977611623552218076053836060223609993676387199220631835256331102029826429784793420637988460945604451237342972023988743201341318701614328454618664952897316247603329530308777063116667275003586843755354841307657702809317290363831151480295446074722690100652644579131609996151999119113967501099655433566352849645431012667388627160383486515144610582794470005796689975604764040892168183647321540427819244511610500074895473959438490375652158E156"), + floating_point_type("1.2723011956950554641822441803774445695066347098655278283939929838804808618389143636393314317333622154343715992535881414698586440455330620652019981627229614973177953241634213768203151670660953863412381880742653187501307209325406338924004280546485392703623101051957976224599412003938216329590158926122017907280168159527761842471509358725974702333390709735919152262756462872191402491961250987725812831155116532550035967994387094267848607390288008530653715254376729558412833771092612838971719786622446726968E2566") }}; boost::uint32_t ten_pow_n = UINT32_C(1); @@ -79,58 +79,64 @@ bool test_tgamma_for_issue396() bool test_tgamma_for_issue396_cpp_dec_float() { - using cpp_dec_float_type_37 = boost::multiprecision::number, boost::multiprecision::et_off>; - using cpp_dec_float_type_38 = boost::multiprecision::number, boost::multiprecision::et_off>; - using cpp_dec_float_type_39 = boost::multiprecision::number, boost::multiprecision::et_off>; - using cpp_dec_float_type_40 = boost::multiprecision::number, boost::multiprecision::et_off>; - using cpp_dec_float_type_41 = boost::multiprecision::number, boost::multiprecision::et_off>; - using cpp_dec_float_type_42 = boost::multiprecision::number, boost::multiprecision::et_off>; - using cpp_dec_float_type_43 = boost::multiprecision::number, boost::multiprecision::et_off>; + using cpp_dec_float_type_020 = boost::multiprecision::number, boost::multiprecision::et_off>; + using cpp_dec_float_type_030 = boost::multiprecision::number, boost::multiprecision::et_off>; + using cpp_dec_float_type_040 = boost::multiprecision::number, boost::multiprecision::et_off>; + using cpp_dec_float_type_049 = boost::multiprecision::number, boost::multiprecision::et_off>; + using cpp_dec_float_type_050 = boost::multiprecision::number, boost::multiprecision::et_off>; + using cpp_dec_float_type_051 = boost::multiprecision::number, boost::multiprecision::et_off>; + using cpp_dec_float_type_101 = boost::multiprecision::number, boost::multiprecision::et_off>; + using cpp_dec_float_type_501 = boost::multiprecision::number, boost::multiprecision::et_off>; - const bool cpp_dec_float_37_is_ok = test_tgamma_for_issue396(); - const bool cpp_dec_float_38_is_ok = test_tgamma_for_issue396(); - const bool cpp_dec_float_39_is_ok = test_tgamma_for_issue396(); - const bool cpp_dec_float_40_is_ok = test_tgamma_for_issue396(); - const bool cpp_dec_float_41_is_ok = test_tgamma_for_issue396(); - const bool cpp_dec_float_42_is_ok = test_tgamma_for_issue396(); - const bool cpp_dec_float_43_is_ok = test_tgamma_for_issue396(); + const bool cpp_dec_float_020_is_ok = test_tgamma_for_issue396(); + const bool cpp_dec_float_030_is_ok = test_tgamma_for_issue396(); + const bool cpp_dec_float_040_is_ok = test_tgamma_for_issue396(); + const bool cpp_dec_float_049_is_ok = test_tgamma_for_issue396(); + const bool cpp_dec_float_050_is_ok = test_tgamma_for_issue396(); + const bool cpp_dec_float_051_is_ok = test_tgamma_for_issue396(); + const bool cpp_dec_float_101_is_ok = test_tgamma_for_issue396(); + const bool cpp_dec_float_501_is_ok = test_tgamma_for_issue396(); - const bool cpp_dec_float_is_ok = cpp_dec_float_37_is_ok - && cpp_dec_float_38_is_ok - && cpp_dec_float_39_is_ok - && cpp_dec_float_40_is_ok - && cpp_dec_float_41_is_ok - && cpp_dec_float_42_is_ok - && cpp_dec_float_43_is_ok; + const bool cpp_dec_float_is_ok = cpp_dec_float_020_is_ok + && cpp_dec_float_030_is_ok + && cpp_dec_float_040_is_ok + && cpp_dec_float_049_is_ok + && cpp_dec_float_050_is_ok + && cpp_dec_float_051_is_ok + && cpp_dec_float_101_is_ok + && cpp_dec_float_501_is_ok; return cpp_dec_float_is_ok; } bool test_tgamma_for_issue396_cpp_bin_float() { - using cpp_bin_float_type_37 = boost::multiprecision::number, boost::multiprecision::et_off>; - using cpp_bin_float_type_38 = boost::multiprecision::number, boost::multiprecision::et_off>; - using cpp_bin_float_type_39 = boost::multiprecision::number, boost::multiprecision::et_off>; - using cpp_bin_float_type_40 = boost::multiprecision::number, boost::multiprecision::et_off>; - using cpp_bin_float_type_41 = boost::multiprecision::number, boost::multiprecision::et_off>; - using cpp_bin_float_type_42 = boost::multiprecision::number, boost::multiprecision::et_off>; - using cpp_bin_float_type_43 = boost::multiprecision::number, boost::multiprecision::et_off>; + using cpp_bin_float_type_020 = boost::multiprecision::number, boost::multiprecision::et_off>; + using cpp_bin_float_type_030 = boost::multiprecision::number, boost::multiprecision::et_off>; + using cpp_bin_float_type_040 = boost::multiprecision::number, boost::multiprecision::et_off>; + using cpp_bin_float_type_049 = boost::multiprecision::number, boost::multiprecision::et_off>; + using cpp_bin_float_type_050 = boost::multiprecision::number, boost::multiprecision::et_off>; + using cpp_bin_float_type_051 = boost::multiprecision::number, boost::multiprecision::et_off>; + using cpp_bin_float_type_101 = boost::multiprecision::number, boost::multiprecision::et_off>; + using cpp_bin_float_type_501 = boost::multiprecision::number, boost::multiprecision::et_off>; - const bool cpp_bin_float_37_is_ok = test_tgamma_for_issue396(); - const bool cpp_bin_float_38_is_ok = test_tgamma_for_issue396(); - const bool cpp_bin_float_39_is_ok = test_tgamma_for_issue396(); - const bool cpp_bin_float_40_is_ok = test_tgamma_for_issue396(); - const bool cpp_bin_float_41_is_ok = test_tgamma_for_issue396(); - const bool cpp_bin_float_42_is_ok = test_tgamma_for_issue396(); - const bool cpp_bin_float_43_is_ok = test_tgamma_for_issue396(); + const bool cpp_bin_float_020_is_ok = test_tgamma_for_issue396(); + const bool cpp_bin_float_030_is_ok = test_tgamma_for_issue396(); + const bool cpp_bin_float_040_is_ok = test_tgamma_for_issue396(); + const bool cpp_bin_float_049_is_ok = test_tgamma_for_issue396(); + const bool cpp_bin_float_050_is_ok = test_tgamma_for_issue396(); + const bool cpp_bin_float_051_is_ok = test_tgamma_for_issue396(); + const bool cpp_bin_float_101_is_ok = test_tgamma_for_issue396(); + const bool cpp_bin_float_501_is_ok = test_tgamma_for_issue396(); - const bool cpp_bin_float_is_ok = cpp_bin_float_37_is_ok - && cpp_bin_float_38_is_ok - && cpp_bin_float_39_is_ok - && cpp_bin_float_40_is_ok - && cpp_bin_float_41_is_ok - && cpp_bin_float_42_is_ok - && cpp_bin_float_43_is_ok; + const bool cpp_bin_float_is_ok = cpp_bin_float_020_is_ok + && cpp_bin_float_030_is_ok + && cpp_bin_float_040_is_ok + && cpp_bin_float_049_is_ok + && cpp_bin_float_050_is_ok + && cpp_bin_float_051_is_ok + && cpp_bin_float_101_is_ok + && cpp_bin_float_501_is_ok; return cpp_bin_float_is_ok; } From 1e61cea5df00a320dc730d645ee339338c4e8672 Mon Sep 17 00:00:00 2001 From: Christopher Kormanyos Date: Mon, 14 Dec 2020 07:21:52 +0100 Subject: [PATCH 05/17] Improve fix, no pch, test spec fun locally --- .../boost/math/special_functions/gamma.hpp | 19 ++- test/Jamfile.v2 | 2 +- test/test_tgamma_for_issue396.cpp | 159 +++++++++--------- 3 files changed, 95 insertions(+), 85 deletions(-) diff --git a/include/boost/math/special_functions/gamma.hpp b/include/boost/math/special_functions/gamma.hpp index 8cc4b390b..c1b92f139 100644 --- a/include/boost/math/special_functions/gamma.hpp +++ b/include/boost/math/special_functions/gamma.hpp @@ -366,9 +366,9 @@ std::size_t highest_bernoulli_index() template int minimum_argument_for_bernoulli_recursion() { - const float digits10_of_type = (std::numeric_limits::is_specialized - ? static_cast(std::numeric_limits::digits10) - : static_cast(boost::math::tools::digits() * 0.301F)); + BOOST_CONSTEXPR_OR_CONST float digits10_of_type = + (std::numeric_limits::is_specialized ? (float) std::numeric_limits::digits10 + : (float) boost::math::tools::digits() * 0.301F); float min_arg_as_float = (float) digits10_of_type * 1.7F; @@ -377,14 +377,17 @@ int minimum_argument_for_bernoulli_recursion() // The following code sequence has been modified // within the context of issue 396. - // The calculation of the test-variable limit has now been - // made more clearly safe regarding overflow/underflow dangers. + // The calculation of the test-variable limit has now + // been protected against overflow/underflow dangers. + + // The previous line looked like this and did, in fact, + // underflow ldexp when using certain multiprecision types. - // The previous line looked like this (and did underflow ldexp for multiprecision types): // const float limit = std::ceil(std::pow(1.0f / std::ldexp(1.0f, 1-boost::math::tools::digits()), 1.0f / 20.0f)); - // The new safe versoin of the limit check is now here. - const float limit = std::exp(((digits10_of_type / 0.301F) * std::log(2.0F)) / 20.0F); + // The new safe version of the limit check is now here. + const float digits2_of_type = (digits10_of_type + 1.0F) / 0.301F; + const float limit = std::exp((digits2_of_type * std::log(2.0F)) / 20.0F); min_arg_as_float = (std::min)(min_arg_as_float, limit); } diff --git a/test/Jamfile.v2 b/test/Jamfile.v2 index 94f206322..1f6edfd11 100644 --- a/test/Jamfile.v2 +++ b/test/Jamfile.v2 @@ -487,7 +487,7 @@ test-suite special_fun : [ run test_round.cpp pch ../../test/build//boost_unit_test_framework ] [ run test_spherical_harmonic.cpp test_instances//test_instances pch_light ../../test/build//boost_unit_test_framework ] [ run test_sign.cpp ../../test/build//boost_unit_test_framework ] - [ run test_tgamma_for_issue396.cpp test_instances//test_instances pch_light ../../test/build//boost_unit_test_framework ] + [ run test_tgamma_for_issue396.cpp ../../test/build//boost_unit_test_framework ] [ run test_tgamma_ratio.cpp test_instances//test_instances pch_light ../../test/build//boost_unit_test_framework ] [ run test_trig.cpp test_instances//test_instances pch_light ../../test/build//boost_unit_test_framework ] [ run test_zeta.cpp ../../test/build//boost_unit_test_framework test_instances//test_instances pch_light ] diff --git a/test/test_tgamma_for_issue396.cpp b/test/test_tgamma_for_issue396.cpp index e87c0cfa7..579126550 100644 --- a/test/test_tgamma_for_issue396.cpp +++ b/test/test_tgamma_for_issue396.cpp @@ -1,26 +1,67 @@ /////////////////////////////////////////////////////////////////// -// Copyright John Maddock 2020. // Copyright Christopher Kormanyos 2020. +// Copyright John Maddock 2020. // Distributed under the Boost Software License, // Version 1.0. (See accompanying file LICENSE_1_0.txt // or copy at http://www.boost.org/LICENSE_1_0.txt) // +#define BOOST_TEST_MAIN +#include // Boost.Test + #include #include -#include "boost/math/distributions/beta.hpp" +#include #include #include #include -#define BOOST_TEST_MODULE test_tgamma_for_issue396 -#include - // In issue 396, a bug regarding overflow was traced back to the tgamma function. // This test file tests the fix in 433 and its corresponding original bug report code. namespace local { +namespace detail { + +template +bool test_tgamma_for_issue396_value_checker() +{ + using floating_point_type = BigFloatType; + + // Table[N[Gamma[(1/2) + (10^n)], 503], {n, 0, 3, 1}] + + const boost::array control = + {{ + floating_point_type("0.88622692545275801364908374167057259139877472806119356410690389492645564229551609068747532836927233270811341181214128533311807643286221130126254685480139353423101884932655256142496258651447541311446604768963398140008731950767573986025835009509261700929272348724745632015696088776295310820270966625045319920380686673873757671683399489468292591820439772558258086938002953369671589566640492742312409245102732742609780662578082373375752136938052805399806355360503018602224183618264830685404716174941583421211"), + floating_point_type("1.1332783889487855673345741655888924755602983082751597766087234145294833900560041537176305387276072906583502717008932373348895801731780765775979953796646009714415152490764416630481375706606053932396039541459764525989187023837695167161085523804417015113740063535865261183579508922972990386756543208549178543857406373798865630303794109491220205170302558277398183764099268751365861892723863412249690833216320407918186480305202146014474770321625907339955121137559264239090240758401696425720048012081453338360E6"), + floating_point_type("9.3209631040827166083491098091419104379064970381623611540161175194120765977611623552218076053836060223609993676387199220631835256331102029826429784793420637988460945604451237342972023988743201341318701614328454618664952897316247603329530308777063116667275003586843755354841307657702809317290363831151480295446074722690100652644579131609996151999119113967501099655433566352849645431012667388627160383486515144610582794470005796689975604764040892168183647321540427819244511610500074895473959438490375652158E156"), + floating_point_type("1.2723011956950554641822441803774445695066347098655278283939929838804808618389143636393314317333622154343715992535881414698586440455330620652019981627229614973177953241634213768203151670660953863412381880742653187501307209325406338924004280546485392703623101051957976224599412003938216329590158926122017907280168159527761842471509358725974702333390709735919152262756462872191402491961250987725812831155116532550035967994387094267848607390288008530653715254376729558412833771092612838971719786622446726968E2566") + }}; + + boost::uint32_t ten_pow_n = UINT32_C(1); + + const floating_point_type tol = std::numeric_limits::epsilon() * UINT32_C(5000); + + bool result_is_ok = true; + + for(typename boost::array::size_type i = 0U; i < control.size(); ++i) + { + const floating_point_type g = boost::math::tgamma(boost::math::constants::half() + ten_pow_n); + + ten_pow_n *= UINT32_C(10); + + using std::fabs; + + const floating_point_type closeness = fabs(1 - (g / control[i])); + + result_is_ok &= (closeness < tol); + } + + return result_is_ok; +} + +} // namespace detail + bool test_cdf____for_issue396_bug_report___() { using b_dist_type = boost::math::beta_distribution; @@ -40,43 +81,6 @@ bool test_cdf____for_issue396_bug_report___() return result_is_ok; } -template -bool test_tgamma_for_issue396() -{ - using floating_point_type = BigFloatType; - - // Table[N[Gamma[(1/2) + (10^n)], 503], {n, 0, 3, 1}] - - const boost::array control = - {{ - floating_point_type("0.88622692545275801364908374167057259139877472806119356410690389492645564229551609068747532836927233270811341181214128533311807643286221130126254685480139353423101884932655256142496258651447541311446604768963398140008731950767573986025835009509261700929272348724745632015696088776295310820270966625045319920380686673873757671683399489468292591820439772558258086938002953369671589566640492742312409245102732742609780662578082373375752136938052805399806355360503018602224183618264830685404716174941583421211"), - floating_point_type("1.1332783889487855673345741655888924755602983082751597766087234145294833900560041537176305387276072906583502717008932373348895801731780765775979953796646009714415152490764416630481375706606053932396039541459764525989187023837695167161085523804417015113740063535865261183579508922972990386756543208549178543857406373798865630303794109491220205170302558277398183764099268751365861892723863412249690833216320407918186480305202146014474770321625907339955121137559264239090240758401696425720048012081453338360E6"), - floating_point_type("9.3209631040827166083491098091419104379064970381623611540161175194120765977611623552218076053836060223609993676387199220631835256331102029826429784793420637988460945604451237342972023988743201341318701614328454618664952897316247603329530308777063116667275003586843755354841307657702809317290363831151480295446074722690100652644579131609996151999119113967501099655433566352849645431012667388627160383486515144610582794470005796689975604764040892168183647321540427819244511610500074895473959438490375652158E156"), - floating_point_type("1.2723011956950554641822441803774445695066347098655278283939929838804808618389143636393314317333622154343715992535881414698586440455330620652019981627229614973177953241634213768203151670660953863412381880742653187501307209325406338924004280546485392703623101051957976224599412003938216329590158926122017907280168159527761842471509358725974702333390709735919152262756462872191402491961250987725812831155116532550035967994387094267848607390288008530653715254376729558412833771092612838971719786622446726968E2566") - }}; - - boost::uint32_t ten_pow_n = UINT32_C(1); - - const floating_point_type tol = std::numeric_limits::epsilon() * UINT32_C(100000); - - bool result_is_ok = true; - - for(typename boost::array::size_type i = 0U; i < control.size(); ++i) - { - const floating_point_type g = boost::math::tgamma(boost::math::constants::half() + ten_pow_n); - - ten_pow_n *= UINT32_C(10); - - using std::fabs; - - const floating_point_type closeness = fabs(1 - (g / control[i])); - - result_is_ok &= (closeness < tol); - } - - return result_is_ok; -} - bool test_tgamma_for_issue396_cpp_dec_float() { using cpp_dec_float_type_020 = boost::multiprecision::number, boost::multiprecision::et_off>; @@ -88,23 +92,23 @@ bool test_tgamma_for_issue396_cpp_dec_float() using cpp_dec_float_type_101 = boost::multiprecision::number, boost::multiprecision::et_off>; using cpp_dec_float_type_501 = boost::multiprecision::number, boost::multiprecision::et_off>; - const bool cpp_dec_float_020_is_ok = test_tgamma_for_issue396(); - const bool cpp_dec_float_030_is_ok = test_tgamma_for_issue396(); - const bool cpp_dec_float_040_is_ok = test_tgamma_for_issue396(); - const bool cpp_dec_float_049_is_ok = test_tgamma_for_issue396(); - const bool cpp_dec_float_050_is_ok = test_tgamma_for_issue396(); - const bool cpp_dec_float_051_is_ok = test_tgamma_for_issue396(); - const bool cpp_dec_float_101_is_ok = test_tgamma_for_issue396(); - const bool cpp_dec_float_501_is_ok = test_tgamma_for_issue396(); + const bool cpp_dec_float_020_is_ok = detail::test_tgamma_for_issue396_value_checker(); + const bool cpp_dec_float_030_is_ok = detail::test_tgamma_for_issue396_value_checker(); + const bool cpp_dec_float_040_is_ok = detail::test_tgamma_for_issue396_value_checker(); + const bool cpp_dec_float_049_is_ok = detail::test_tgamma_for_issue396_value_checker(); + const bool cpp_dec_float_050_is_ok = detail::test_tgamma_for_issue396_value_checker(); + const bool cpp_dec_float_051_is_ok = detail::test_tgamma_for_issue396_value_checker(); + const bool cpp_dec_float_101_is_ok = detail::test_tgamma_for_issue396_value_checker(); + const bool cpp_dec_float_501_is_ok = detail::test_tgamma_for_issue396_value_checker(); - const bool cpp_dec_float_is_ok = cpp_dec_float_020_is_ok - && cpp_dec_float_030_is_ok - && cpp_dec_float_040_is_ok - && cpp_dec_float_049_is_ok - && cpp_dec_float_050_is_ok - && cpp_dec_float_051_is_ok - && cpp_dec_float_101_is_ok - && cpp_dec_float_501_is_ok; + const bool cpp_dec_float_is_ok = ( cpp_dec_float_020_is_ok + && cpp_dec_float_030_is_ok + && cpp_dec_float_040_is_ok + && cpp_dec_float_049_is_ok + && cpp_dec_float_050_is_ok + && cpp_dec_float_051_is_ok + && cpp_dec_float_101_is_ok + && cpp_dec_float_501_is_ok); return cpp_dec_float_is_ok; } @@ -120,23 +124,23 @@ bool test_tgamma_for_issue396_cpp_bin_float() using cpp_bin_float_type_101 = boost::multiprecision::number, boost::multiprecision::et_off>; using cpp_bin_float_type_501 = boost::multiprecision::number, boost::multiprecision::et_off>; - const bool cpp_bin_float_020_is_ok = test_tgamma_for_issue396(); - const bool cpp_bin_float_030_is_ok = test_tgamma_for_issue396(); - const bool cpp_bin_float_040_is_ok = test_tgamma_for_issue396(); - const bool cpp_bin_float_049_is_ok = test_tgamma_for_issue396(); - const bool cpp_bin_float_050_is_ok = test_tgamma_for_issue396(); - const bool cpp_bin_float_051_is_ok = test_tgamma_for_issue396(); - const bool cpp_bin_float_101_is_ok = test_tgamma_for_issue396(); - const bool cpp_bin_float_501_is_ok = test_tgamma_for_issue396(); + const bool cpp_bin_float_020_is_ok = detail::test_tgamma_for_issue396_value_checker(); + const bool cpp_bin_float_030_is_ok = detail::test_tgamma_for_issue396_value_checker(); + const bool cpp_bin_float_040_is_ok = detail::test_tgamma_for_issue396_value_checker(); + const bool cpp_bin_float_049_is_ok = detail::test_tgamma_for_issue396_value_checker(); + const bool cpp_bin_float_050_is_ok = detail::test_tgamma_for_issue396_value_checker(); + const bool cpp_bin_float_051_is_ok = detail::test_tgamma_for_issue396_value_checker(); + const bool cpp_bin_float_101_is_ok = detail::test_tgamma_for_issue396_value_checker(); + const bool cpp_bin_float_501_is_ok = detail::test_tgamma_for_issue396_value_checker(); - const bool cpp_bin_float_is_ok = cpp_bin_float_020_is_ok - && cpp_bin_float_030_is_ok - && cpp_bin_float_040_is_ok - && cpp_bin_float_049_is_ok - && cpp_bin_float_050_is_ok - && cpp_bin_float_051_is_ok - && cpp_bin_float_101_is_ok - && cpp_bin_float_501_is_ok; + const bool cpp_bin_float_is_ok = ( cpp_bin_float_020_is_ok + && cpp_bin_float_030_is_ok + && cpp_bin_float_040_is_ok + && cpp_bin_float_049_is_ok + && cpp_bin_float_050_is_ok + && cpp_bin_float_051_is_ok + && cpp_bin_float_101_is_ok + && cpp_bin_float_501_is_ok); return cpp_bin_float_is_ok; } @@ -145,18 +149,21 @@ bool test_tgamma_for_issue396_cpp_bin_float() BOOST_AUTO_TEST_CASE(test_cdf____for_issue396_bug_report____tag) { - const bool cpp_bug_report_is_ok = local::test_cdf____for_issue396_bug_report___(); - BOOST_CHECK(cpp_bug_report_is_ok); + const bool cpp_bug_check_is_ok = local::test_cdf____for_issue396_bug_report___(); + + BOOST_CHECK(cpp_bug_check_is_ok); } BOOST_AUTO_TEST_CASE(test_tgamma_for_issue396_cpp_dec_float_tag) { const bool cpp_dec_float_is_ok = local::test_tgamma_for_issue396_cpp_dec_float(); + BOOST_CHECK(cpp_dec_float_is_ok); } BOOST_AUTO_TEST_CASE(test_tgamma_for_issue396_cpp_bin_float_tag) { const bool cpp_bin_float_is_ok = local::test_tgamma_for_issue396_cpp_bin_float(); + BOOST_CHECK(cpp_bin_float_is_ok); } From 0db73891e5a3fdb07df6fce6241bf13fd6905f95 Mon Sep 17 00:00:00 2001 From: Christopher Kormanyos Date: Mon, 14 Dec 2020 20:30:38 +0100 Subject: [PATCH 06/17] i396 code now C++03 and bigobj MSVC and gcc-mingw --- test/Jamfile.v2 | 2 +- test/test_tgamma_for_issue396.cpp | 38 +++++++++++++++---------------- 2 files changed, 20 insertions(+), 20 deletions(-) diff --git a/test/Jamfile.v2 b/test/Jamfile.v2 index 1f6edfd11..654653429 100644 --- a/test/Jamfile.v2 +++ b/test/Jamfile.v2 @@ -487,7 +487,7 @@ test-suite special_fun : [ run test_round.cpp pch ../../test/build//boost_unit_test_framework ] [ run test_spherical_harmonic.cpp test_instances//test_instances pch_light ../../test/build//boost_unit_test_framework ] [ run test_sign.cpp ../../test/build//boost_unit_test_framework ] - [ run test_tgamma_for_issue396.cpp ../../test/build//boost_unit_test_framework ] + [ run test_tgamma_for_issue396.cpp ../../test/build//boost_unit_test_framework : : : gcc-mingw:-Wa,-mbig-obj off msvc:/bigobj ] [ run test_tgamma_ratio.cpp test_instances//test_instances pch_light ../../test/build//boost_unit_test_framework ] [ run test_trig.cpp test_instances//test_instances pch_light ../../test/build//boost_unit_test_framework ] [ run test_zeta.cpp ../../test/build//boost_unit_test_framework test_instances//test_instances pch_light ] diff --git a/test/test_tgamma_for_issue396.cpp b/test/test_tgamma_for_issue396.cpp index 579126550..24181b8ad 100644 --- a/test/test_tgamma_for_issue396.cpp +++ b/test/test_tgamma_for_issue396.cpp @@ -26,7 +26,7 @@ namespace detail { template bool test_tgamma_for_issue396_value_checker() { - using floating_point_type = BigFloatType; + typedef BigFloatType floating_point_type; // Table[N[Gamma[(1/2) + (10^n)], 503], {n, 0, 3, 1}] @@ -64,11 +64,11 @@ bool test_tgamma_for_issue396_value_checker() bool test_cdf____for_issue396_bug_report___() { - using b_dist_type = boost::math::beta_distribution; + typedef boost::math::beta_distribution b_dist_type; b_dist_type b_dist(1.0, 2.0); - auto test = -boost::math::cdf(boost::math::complement(b_dist, 0.5)); + boost::multiprecision::cpp_dec_float_100 test = -boost::math::cdf(boost::math::complement(b_dist, 0.5)); using std::fabs; @@ -83,14 +83,14 @@ bool test_cdf____for_issue396_bug_report___() bool test_tgamma_for_issue396_cpp_dec_float() { - using cpp_dec_float_type_020 = boost::multiprecision::number, boost::multiprecision::et_off>; - using cpp_dec_float_type_030 = boost::multiprecision::number, boost::multiprecision::et_off>; - using cpp_dec_float_type_040 = boost::multiprecision::number, boost::multiprecision::et_off>; - using cpp_dec_float_type_049 = boost::multiprecision::number, boost::multiprecision::et_off>; - using cpp_dec_float_type_050 = boost::multiprecision::number, boost::multiprecision::et_off>; - using cpp_dec_float_type_051 = boost::multiprecision::number, boost::multiprecision::et_off>; - using cpp_dec_float_type_101 = boost::multiprecision::number, boost::multiprecision::et_off>; - using cpp_dec_float_type_501 = boost::multiprecision::number, boost::multiprecision::et_off>; + typedef boost::multiprecision::number, boost::multiprecision::et_off> cpp_dec_float_type_020; + typedef boost::multiprecision::number, boost::multiprecision::et_off> cpp_dec_float_type_030; + typedef boost::multiprecision::number, boost::multiprecision::et_off> cpp_dec_float_type_040; + typedef boost::multiprecision::number, boost::multiprecision::et_off> cpp_dec_float_type_049; + typedef boost::multiprecision::number, boost::multiprecision::et_off> cpp_dec_float_type_050; + typedef boost::multiprecision::number, boost::multiprecision::et_off> cpp_dec_float_type_051; + typedef boost::multiprecision::number, boost::multiprecision::et_off> cpp_dec_float_type_101; + typedef boost::multiprecision::number, boost::multiprecision::et_off> cpp_dec_float_type_501; const bool cpp_dec_float_020_is_ok = detail::test_tgamma_for_issue396_value_checker(); const bool cpp_dec_float_030_is_ok = detail::test_tgamma_for_issue396_value_checker(); @@ -115,14 +115,14 @@ bool test_tgamma_for_issue396_cpp_dec_float() bool test_tgamma_for_issue396_cpp_bin_float() { - using cpp_bin_float_type_020 = boost::multiprecision::number, boost::multiprecision::et_off>; - using cpp_bin_float_type_030 = boost::multiprecision::number, boost::multiprecision::et_off>; - using cpp_bin_float_type_040 = boost::multiprecision::number, boost::multiprecision::et_off>; - using cpp_bin_float_type_049 = boost::multiprecision::number, boost::multiprecision::et_off>; - using cpp_bin_float_type_050 = boost::multiprecision::number, boost::multiprecision::et_off>; - using cpp_bin_float_type_051 = boost::multiprecision::number, boost::multiprecision::et_off>; - using cpp_bin_float_type_101 = boost::multiprecision::number, boost::multiprecision::et_off>; - using cpp_bin_float_type_501 = boost::multiprecision::number, boost::multiprecision::et_off>; + typedef boost::multiprecision::number, boost::multiprecision::et_off> cpp_bin_float_type_020; + typedef boost::multiprecision::number, boost::multiprecision::et_off> cpp_bin_float_type_030; + typedef boost::multiprecision::number, boost::multiprecision::et_off> cpp_bin_float_type_040; + typedef boost::multiprecision::number, boost::multiprecision::et_off> cpp_bin_float_type_049; + typedef boost::multiprecision::number, boost::multiprecision::et_off> cpp_bin_float_type_050; + typedef boost::multiprecision::number, boost::multiprecision::et_off> cpp_bin_float_type_051; + typedef boost::multiprecision::number, boost::multiprecision::et_off> cpp_bin_float_type_101; + typedef boost::multiprecision::number, boost::multiprecision::et_off> cpp_bin_float_type_501; const bool cpp_bin_float_020_is_ok = detail::test_tgamma_for_issue396_value_checker(); const bool cpp_bin_float_030_is_ok = detail::test_tgamma_for_issue396_value_checker(); From 603a37534ef813d105e2707bd6c57eca590409fb Mon Sep 17 00:00:00 2001 From: Christopher Kormanyos Date: Wed, 16 Dec 2020 11:02:08 +0100 Subject: [PATCH 07/17] Issue396 gets better tests and fix of Bn recur --- .../boost/math/special_functions/gamma.hpp | 17 +- test/Jamfile.v2 | 4 +- test/Jamfile_.v2 | 1390 +++++++++++++++++ test/test_issue396_cpp_bin_float.cpp | 62 + test/test_issue396_cpp_dec_float.cpp | 62 + test/test_issue396_data_and_checker.ipp | 58 + test/test_issue396_original_issue.cpp | 46 + test/test_tgamma_for_issue396.cpp | 169 -- 8 files changed, 1629 insertions(+), 179 deletions(-) create mode 100644 test/Jamfile_.v2 create mode 100644 test/test_issue396_cpp_bin_float.cpp create mode 100644 test/test_issue396_cpp_dec_float.cpp create mode 100644 test/test_issue396_data_and_checker.ipp create mode 100644 test/test_issue396_original_issue.cpp delete mode 100644 test/test_tgamma_for_issue396.cpp diff --git a/include/boost/math/special_functions/gamma.hpp b/include/boost/math/special_functions/gamma.hpp index c1b92f139..9e43c23e4 100644 --- a/include/boost/math/special_functions/gamma.hpp +++ b/include/boost/math/special_functions/gamma.hpp @@ -367,12 +367,13 @@ template int minimum_argument_for_bernoulli_recursion() { BOOST_CONSTEXPR_OR_CONST float digits10_of_type = - (std::numeric_limits::is_specialized ? (float) std::numeric_limits::digits10 - : (float) boost::math::tools::digits() * 0.301F); + (std::numeric_limits::is_specialized + ? static_cast(std::numeric_limits::digits10) + : static_cast(boost::math::tools::digits() * 0.301F)); - float min_arg_as_float = (float) digits10_of_type * 1.7F; + int min_arg = (int) (digits10_of_type * 1.7F); - if(digits10_of_type < 50.0F) + if(digits10_of_type < 50) { // The following code sequence has been modified // within the context of issue 396. @@ -386,14 +387,12 @@ int minimum_argument_for_bernoulli_recursion() // const float limit = std::ceil(std::pow(1.0f / std::ldexp(1.0f, 1-boost::math::tools::digits()), 1.0f / 20.0f)); // The new safe version of the limit check is now here. - const float digits2_of_type = (digits10_of_type + 1.0F) / 0.301F; - const float limit = std::exp((digits2_of_type * std::log(2.0F)) / 20.0F); + const float d2_minus_one = (float) (boost::math::tools::digits() - 1); + const float limit = std::ceil(std::exp((d2_minus_one * std::log(2.0F)) / 20.0F)); - min_arg_as_float = (std::min)(min_arg_as_float, limit); + min_arg = (int) ((std::min)(digits10_of_type * 1.7F, limit)); } - const int min_arg = (int) std::ceil(min_arg_as_float); - return min_arg; } diff --git a/test/Jamfile.v2 b/test/Jamfile.v2 index 654653429..482eaa393 100644 --- a/test/Jamfile.v2 +++ b/test/Jamfile.v2 @@ -477,6 +477,9 @@ test-suite special_fun : [ run cardinal_trigonometric_test.cpp ../config//fftw3q ../config//quadmath : : : TEST4 [ requires cxx11_auto_declarations cxx11_range_based_for ] [ check-target-builds ../config//has_fftw3 "libfftw3" : : no ] [ check-target-builds ../config//has_float128 "__float128" : : no ] : cardinal_trigonometric_test_4 ] + [ run test_issue396_cpp_dec_float.cpp ../../test/build//boost_unit_test_framework : : : gcc-mingw:-Wa,-mbig-obj off msvc:/bigobj ] + [ run test_issue396_cpp_bin_float.cpp ../../test/build//boost_unit_test_framework : : : gcc-mingw:-Wa,-mbig-obj off msvc:/bigobj ] + [ run test_issue396_original_issue.cpp ../../test/build//boost_unit_test_framework ] [ run test_ldouble_simple.cpp ../../test/build//boost_unit_test_framework ] # Needs to run in release mode, as it's rather slow: [ run test_next.cpp pch ../../test/build//boost_unit_test_framework : : : release ] @@ -487,7 +490,6 @@ test-suite special_fun : [ run test_round.cpp pch ../../test/build//boost_unit_test_framework ] [ run test_spherical_harmonic.cpp test_instances//test_instances pch_light ../../test/build//boost_unit_test_framework ] [ run test_sign.cpp ../../test/build//boost_unit_test_framework ] - [ run test_tgamma_for_issue396.cpp ../../test/build//boost_unit_test_framework : : : gcc-mingw:-Wa,-mbig-obj off msvc:/bigobj ] [ run test_tgamma_ratio.cpp test_instances//test_instances pch_light ../../test/build//boost_unit_test_framework ] [ run test_trig.cpp test_instances//test_instances pch_light ../../test/build//boost_unit_test_framework ] [ run test_zeta.cpp ../../test/build//boost_unit_test_framework test_instances//test_instances pch_light ] diff --git a/test/Jamfile_.v2 b/test/Jamfile_.v2 new file mode 100644 index 000000000..5227dbe59 --- /dev/null +++ b/test/Jamfile_.v2 @@ -0,0 +1,1390 @@ +# Copyright Daryle Walker, Hubert Holin, John Maddock 2006 - 2007 +# copyright Paul A. Bristow 2006 - 2010 +# Distributed under the Boost Software License, Version 1.0. +# (See accompanying file LICENSE_1_0.txt or copy at +# http://www.boost.org/LICENSE_1_0.txt. +# \math_toolkit\libs\math\test\jamfile.v2 +# Runs all math toolkit tests, functions & distributions, +# and build math examples. + +# bring in the rules for testing +import testing ; +import modules ; +import path ; +import pch ; +import ../../config/checks/config : requires ; + +local ntl-path = [ modules.peek : NTL_PATH ] ; +local gmp_path = [ modules.peek : GMP_PATH ] ; +local e_float_path = [ modules.peek : E_FLOAT_PATH ] ; + +# +# PCH support is broken when --remove-test-targets is specified on the command +# line. Disable it until someone fixes this. +# +local remove-test-targets = [ MATCH (--remove-test-targets) : [ modules.peek : ARGV ] ] ; + +if $(remove-test-targets) +{ + OBJ_REMOVAL_OPTIONS = off ; +} + +obj no_eh : noeh_support.cpp ; + + +project + : requirements + $(OBJ_REMOVAL_OPTIONS) + acc:+W2068,2461,2236,4070,4069 + intel-win:-nologo + intel-win:-nologo + #intel-linux:off + intel-darwin:off + msvc:all + msvc:on + msvc:/wd4996 + msvc:/wd4511 # copy constructor could not be generated + msvc:/wd4512 + msvc:/wd4610 + msvc:/wd4510 + msvc:/wd4127 + msvc:/wd4459 + msvc:/wd4701 # needed for lexical cast - temporary. + msvc:/wd4189 # local variable is initialized but not referenced + msvc-7.1:../vc71_fix//vc_fix + msvc-7.1:off + clang-6.0.0:off # added to see effect. + gcc,windows:off + borland:static + # msvc:/wd4506 has no effect? + # suppress xstring(237) : warning C4506: no definition for inline function + ../../.. + ../../regex/build//boost_regex + off:no_eh + shared:BOOST_REGEX_DYN_LINK=1 + # For simplicities sake, make everything a static lib: + static + BOOST_ALL_NO_LIB=1 + BOOST_UBLAS_UNSUPPORTED_COMPILER=0 + . + ../include_private + $(ntl-path)/include + $(e_float_path) + $(gmp_path) $(gmp_path)/mpfr $(gmp_path)/gmpfrxx $(gmp_path)/mpfrc++ + $(gmp_path) + $(mpfr_path) + $(mpfr_path)/build.vc10/lib/Win32/Debug + ; + +if $(ntl-path) +{ + lib ntl : [ GLOB $(ntl-path)/src : *.cpp ] ; +} +else +{ + lib ntl ; +} + +explicit ntl ; + +cpp-pch pch : pch.hpp : ../../test/build//boost_unit_test_framework ; +cpp-pch pch_light : pch_light.hpp : ../../test/build//boost_unit_test_framework ; +lib compile_test_main : compile_test/main.cpp ; + +test-suite special_one : + [ run test_beta.cpp test_instances//test_instances pch_light ../../test/build//boost_unit_test_framework ] +; + +test-suite special_fun : + [ run test_1F0.cpp ../../test/build//boost_unit_test_framework : : : [ requires cxx11_auto_declarations cxx11_lambdas cxx11_unified_initialization_syntax cxx11_smart_ptr ] ] # hypergeometric_pFq_checked_series.hpp uses auto, the rest are from quadrature tests. + [ run test_2F0.cpp ../../test/build//boost_unit_test_framework : : : [ requires cxx11_auto_declarations cxx11_lambdas cxx11_unified_initialization_syntax cxx11_smart_ptr ] [ check-target-builds ../config//has_float128 "GCC libquadmath and __float128 support" : BOOST_MATH_TEST_FLOAT128 "-Bstatic -lquadmath -Bdynamic" ] ] + + [ run test_0F1.cpp ../../test/build//boost_unit_test_framework : : : [ requires cxx11_auto_declarations cxx11_lambdas cxx11_unified_initialization_syntax cxx11_smart_ptr ] TEST=1 : test_0F1_1 ] + [ run test_0F1.cpp ../../test/build//boost_unit_test_framework : : : [ requires cxx11_auto_declarations cxx11_lambdas cxx11_unified_initialization_syntax cxx11_smart_ptr ] TEST=2 : test_0F1_2 ] + + [ run test_1F1.cpp ../../test/build//boost_unit_test_framework : : : [ requires cxx11_auto_declarations cxx11_lambdas cxx11_unified_initialization_syntax cxx11_smart_ptr ] TEST=1 clang:-Wno-literal-range : test_1F1_integrals ] + [ run test_1F1.cpp ../../test/build//boost_unit_test_framework : : : [ requires cxx11_auto_declarations cxx11_lambdas cxx11_unified_initialization_syntax cxx11_smart_ptr ] TEST=2 clang:-Wno-literal-range : test_1F1_float ] + [ run test_1F1.cpp ../../test/build//boost_unit_test_framework : : : [ requires cxx11_auto_declarations cxx11_lambdas cxx11_unified_initialization_syntax cxx11_smart_ptr ] TEST=3 clang:-Wno-literal-range : test_1F1_double ] + [ run test_1F1.cpp ../../test/build//boost_unit_test_framework : : : [ requires cxx11_auto_declarations cxx11_lambdas cxx11_unified_initialization_syntax cxx11_smart_ptr ] TEST=4 release clang:-Wno-literal-range : test_1F1_long_double ] + + [ run test_1F1_regularized.cpp ../../test/build//boost_unit_test_framework : : : [ requires cxx11_auto_declarations cxx11_lambdas cxx11_unified_initialization_syntax cxx11_smart_ptr ] TEST=2 clang:-Wno-literal-range : test_1F1_regularized_float ] + [ run test_1F1_regularized.cpp ../../test/build//boost_unit_test_framework : : : [ requires cxx11_auto_declarations cxx11_lambdas cxx11_unified_initialization_syntax cxx11_smart_ptr ] TEST=3 clang:-Wno-literal-range : test_1F1_regularized_double ] + [ run test_1F1_regularized.cpp ../../test/build//boost_unit_test_framework : : : [ requires cxx11_auto_declarations cxx11_lambdas cxx11_unified_initialization_syntax cxx11_smart_ptr ] TEST=4 release clang:-Wno-literal-range : test_1F1_regularized_long_double ] + [ run test_1F1_regularized.cpp ../../test/build//boost_unit_test_framework : : : [ requires cxx11_auto_declarations cxx11_lambdas cxx11_unified_initialization_syntax cxx11_smart_ptr ] TEST=5 clang:-Wno-literal-range : test_1F1_regularized_real_concept ] + # These are slow... + [ run test_1F1_log.cpp ../../test/build//boost_unit_test_framework : : : release [ requires cxx11_auto_declarations cxx11_lambdas cxx11_unified_initialization_syntax cxx11_smart_ptr ] TEST=2 clang:-Wno-literal-range : test_1F1_log_float ] + [ run test_1F1_log.cpp ../../test/build//boost_unit_test_framework : : : release [ requires cxx11_auto_declarations cxx11_lambdas cxx11_unified_initialization_syntax cxx11_smart_ptr ] TEST=3 clang:-Wno-literal-range : test_1F1_log_double ] + [ run test_1F1_log.cpp ../../test/build//boost_unit_test_framework : : : release [ requires cxx11_auto_declarations cxx11_lambdas cxx11_unified_initialization_syntax cxx11_smart_ptr ] TEST=4 release clang:-Wno-literal-range : test_1F1_log_long_double ] + [ run test_1F1_log.cpp ../../test/build//boost_unit_test_framework : : : release [ requires cxx11_auto_declarations cxx11_lambdas cxx11_unified_initialization_syntax cxx11_smart_ptr ] TEST=5 clang:-Wno-literal-range : test_1F1_log_real_concept ] + # pFq: + [ run test_pFq.cpp ../../test/build//boost_unit_test_framework : : : [ requires cxx11_hdr_initializer_list cxx11_auto_declarations cxx11_lambdas cxx11_unified_initialization_syntax cxx11_smart_ptr ] TEST=2 release clang:-Wno-literal-range : test_pFq_float ] + [ run test_pFq.cpp ../../test/build//boost_unit_test_framework : : : [ requires cxx11_hdr_initializer_list cxx11_auto_declarations cxx11_lambdas cxx11_unified_initialization_syntax cxx11_smart_ptr ] TEST=3 release clang:-Wno-literal-range : test_pFq_double ] + [ run test_pFq.cpp ../../test/build//boost_unit_test_framework : : : [ requires cxx11_hdr_initializer_list cxx11_auto_declarations cxx11_lambdas cxx11_unified_initialization_syntax cxx11_smart_ptr ] TEST=4 release clang:-Wno-literal-range : test_pFq_long_double ] + [ run test_pFq.cpp ../../test/build//boost_unit_test_framework : : : [ requires cxx11_hdr_initializer_list cxx11_auto_declarations cxx11_lambdas cxx11_unified_initialization_syntax cxx11_smart_ptr ] TEST=5 release clang:-Wno-literal-range : test_pFq_real_concept ] + + + [ run hypot_test.cpp test_instances//test_instances pch_light ../../test/build//boost_unit_test_framework ] + [ run pow_test.cpp ../../test/build//boost_unit_test_framework ] + [ run log1p_expm1_test.cpp test_instances//test_instances pch_light ../../test/build//boost_unit_test_framework ] + [ run powm1_sqrtp1m1_test.cpp test_instances//test_instances pch_light ../../test/build//boost_unit_test_framework ] + [ run special_functions_test.cpp ../../test/build//boost_unit_test_framework ] + [ run test_airy.cpp test_instances//test_instances pch_light ../../test/build//boost_unit_test_framework ] + [ run test_bessel_j.cpp test_instances//test_instances pch_light ../../test/build//boost_unit_test_framework ] + [ run test_bessel_y.cpp test_instances//test_instances pch_light ../../test/build//boost_unit_test_framework ] + [ run test_bessel_i.cpp test_instances//test_instances pch_light ../../test/build//boost_unit_test_framework ] + [ run test_bessel_k.cpp test_instances//test_instances pch_light ../../test/build//boost_unit_test_framework ] + [ run test_bessel_j_prime.cpp test_instances//test_instances pch_light ../../test/build//boost_unit_test_framework ] + [ run test_bessel_y_prime.cpp test_instances//test_instances pch_light ../../test/build//boost_unit_test_framework ] + [ run test_bessel_i_prime.cpp test_instances//test_instances pch_light ../../test/build//boost_unit_test_framework ] + [ run test_bessel_k_prime.cpp test_instances//test_instances pch_light ../../test/build//boost_unit_test_framework ] +# [ run test_beta.cpp test_instances//test_instances pch_light ../../test/build//boost_unit_test_framework ] + [ run test_bessel_airy_zeros.cpp ../../test/build//boost_unit_test_framework ] + [ run test_bernoulli_constants.cpp ../../test/build//boost_unit_test_framework ] + [ run test_binomial_coeff.cpp pch ../../test/build//boost_unit_test_framework ] + [ run test_carlson.cpp test_instances//test_instances pch_light ../../test/build//boost_unit_test_framework + : # command line + : # input files + : # requirements + TEST1 + : test_carlson_1 ] + [ run test_carlson.cpp test_instances//test_instances pch_light ../../test/build//boost_unit_test_framework + : # command line + : # input files + : # requirements + TEST2 + : test_carlson_2 ] + [ run test_carlson.cpp test_instances//test_instances pch_light ../../test/build//boost_unit_test_framework + : # command line + : # input files + : # requirements + TEST3 + : test_carlson_3 ] + [ run test_carlson.cpp test_instances//test_instances pch_light ../../test/build//boost_unit_test_framework + : # command line + : # input files + : # requirements + TEST4 + : test_carlson_4 ] + [ run test_cbrt.cpp test_instances//test_instances pch_light ../../test/build//boost_unit_test_framework ] + [ run test_difference.cpp ../../test/build//boost_unit_test_framework ] + [ run test_digamma.cpp test_instances//test_instances pch_light ../../test/build//boost_unit_test_framework ] + [ run test_ellint_1.cpp test_instances//test_instances pch_light ../../test/build//boost_unit_test_framework ] + [ run test_ellint_2.cpp test_instances//test_instances pch_light ../../test/build//boost_unit_test_framework ] + [ run test_ellint_3.cpp test_instances//test_instances pch_light ../../test/build//boost_unit_test_framework ] + [ run test_ellint_d.cpp test_instances//test_instances pch_light ../../test/build//boost_unit_test_framework ] + [ run test_jacobi_theta.cpp ../../test/build//boost_unit_test_framework : : : [ requires cxx11_auto_declarations cxx11_lambdas cxx11_smart_ptr cxx11_unified_initialization_syntax ] ] + [ run test_jacobi_zeta.cpp test_instances//test_instances pch_light ../../test/build//boost_unit_test_framework ] + [ run test_heuman_lambda.cpp test_instances//test_instances pch_light ../../test/build//boost_unit_test_framework ] + [ run test_erf.cpp test_instances//test_instances pch_light ../../test/build//boost_unit_test_framework ] + [ run test_expint.cpp test_instances//test_instances pch_light ../../test/build//boost_unit_test_framework ] + [ run test_factorials.cpp pch ../../test/build//boost_unit_test_framework ] + [ run test_gamma.cpp test_instances//test_instances pch_light ../../test/build//boost_unit_test_framework ] + [ run test_gamma_mp.cpp ../../test/build//boost_unit_test_framework : : : release ] + [ run test_hankel.cpp ../../test/build//boost_unit_test_framework ] + [ run test_hermite.cpp test_instances//test_instances pch_light ../../test/build//boost_unit_test_framework ] + [ run test_ibeta.cpp test_instances//test_instances pch_light ../../test/build//boost_unit_test_framework + : # command line + : # input files + : # requirements + TEST_FLOAT + intel:off + : test_ibeta_float ] + [ run test_ibeta.cpp test_instances//test_instances pch_light ../../test/build//boost_unit_test_framework + : # command line + : # input files + : # requirements + TEST_DOUBLE + intel:off + : test_ibeta_double ] + [ run test_ibeta.cpp test_instances//test_instances pch_light ../../test/build//boost_unit_test_framework + : # command line + : # input files + : # requirements + TEST_LDOUBLE + intel:off + : test_ibeta_long_double ] + [ run test_ibeta.cpp test_instances//test_instances pch_light ../../test/build//boost_unit_test_framework + : # command line + : # input files + : # requirements + TEST_REAL_CONCEPT + TEST_DATA=1 + intel:off + : test_ibeta_real_concept1 ] + [ run test_ibeta.cpp test_instances//test_instances pch_light ../../test/build//boost_unit_test_framework + : # command line + : # input files + : # requirements + TEST_REAL_CONCEPT + TEST_DATA=2 + intel:off + : test_ibeta_real_concept2 ] + [ run test_ibeta.cpp test_instances//test_instances pch_light ../../test/build//boost_unit_test_framework + : # command line + : # input files + : # requirements + TEST_REAL_CONCEPT + TEST_DATA=3 + intel:off + : test_ibeta_real_concept3 ] + [ run test_ibeta.cpp test_instances//test_instances pch_light ../../test/build//boost_unit_test_framework + : # command line + : # input files + : # requirements + TEST_REAL_CONCEPT + TEST_DATA=4 + intel:off + : test_ibeta_real_concept4 ] + + [ run test_ibeta_derivative.cpp test_instances//test_instances pch_light ../../test/build//boost_unit_test_framework + : # command line + : # input files + : # requirements + TEST_FLOAT + intel:off + gcc:-Wno-overflow + : test_ibeta_derivative_float ] + [ run test_ibeta_derivative.cpp test_instances//test_instances pch_light ../../test/build//boost_unit_test_framework + : # command line + : # input files + : # requirements + TEST_DOUBLE + intel:off + gcc:-Wno-overflow + : test_ibeta_derivative_double ] + [ run test_ibeta_derivative.cpp test_instances//test_instances pch_light ../../test/build//boost_unit_test_framework + : # command line + : # input files + : # requirements + TEST_LDOUBLE + intel:off + gcc:-Wno-overflow + : test_ibeta_derivative_long_double ] + [ run test_ibeta_derivative.cpp test_instances//test_instances pch_light ../../test/build//boost_unit_test_framework + : # command line + : # input files + : # requirements + TEST_REAL_CONCEPT + TEST_DATA=1 + intel:off + gcc:-Wno-overflow + : test_ibeta_derivative_real_concept1 ] + [ run test_ibeta_derivative.cpp test_instances//test_instances pch_light ../../test/build//boost_unit_test_framework + : # command line + : # input files + : # requirements + TEST_REAL_CONCEPT + TEST_DATA=2 + intel:off + gcc:-Wno-overflow + : test_ibeta_derivative_real_concept2 ] + [ run test_ibeta_derivative.cpp test_instances//test_instances pch_light ../../test/build//boost_unit_test_framework + : # command line + : # input files + : # requirements + TEST_REAL_CONCEPT + TEST_DATA=3 + intel:off + gcc:-Wno-overflow + : test_ibeta_derivative_real_concept3 ] + [ run test_ibeta_derivative.cpp test_instances//test_instances pch_light ../../test/build//boost_unit_test_framework + : # command line + : # input files + : # requirements + TEST_REAL_CONCEPT + TEST_DATA=4 + intel:off + gcc:-Wno-overflow + : test_ibeta_derivative_real_concept4 ] + + [ run test_ibeta_inv.cpp test_instances//test_instances pch_light ../../test/build//boost_unit_test_framework + : # command line + : # input files + : # requirements + TEST_FLOAT + intel:off + : test_ibeta_inv_float ] + [ run test_ibeta_inv.cpp test_instances//test_instances pch_light ../../test/build//boost_unit_test_framework + : # command line + : # input files + : # requirements + TEST_DOUBLE + intel:off + : test_ibeta_inv_double ] + [ run test_ibeta_inv.cpp test_instances//test_instances pch_light ../../test/build//boost_unit_test_framework + : # command line + : # input files + : # requirements + TEST_LDOUBLE + intel:off + : test_ibeta_inv_long_double ] + [ run test_ibeta_inv.cpp test_instances//test_instances pch_light ../../test/build//boost_unit_test_framework + : # command line + : # input files + : # requirements + TEST_REAL_CONCEPT + TEST_DATA=1 + intel:off + : test_ibeta_inv_real_concept1 ] + [ run test_ibeta_inv.cpp test_instances//test_instances pch_light ../../test/build//boost_unit_test_framework + : # command line + : # input files + : # requirements + TEST_REAL_CONCEPT + TEST_DATA=2 + intel:off + : test_ibeta_inv_real_concept2 ] + [ run test_ibeta_inv.cpp test_instances//test_instances pch_light ../../test/build//boost_unit_test_framework + : # command line + : # input files + : # requirements + TEST_REAL_CONCEPT + TEST_DATA=3 + intel:off + : test_ibeta_inv_real_concept3 ] + [ run test_ibeta_inv.cpp test_instances//test_instances pch_light ../../test/build//boost_unit_test_framework + : # command line + : # input files + : # requirements + TEST_REAL_CONCEPT + TEST_DATA=4 + intel:off + : test_ibeta_inv_real_concept4 ] + [ run test_ibeta_inv_ab.cpp test_instances//test_instances pch_light ../../test/build//boost_unit_test_framework + : # command line + : # input files + : # requirements + TEST_FLOAT + intel:off + : test_ibeta_inv_ab_float ] + [ run test_ibeta_inv_ab.cpp test_instances//test_instances pch_light ../../test/build//boost_unit_test_framework + : # command line + : # input files + : # requirements + TEST_DOUBLE + intel:off + : test_ibeta_inv_ab_double ] + [ run test_ibeta_inv_ab.cpp test_instances//test_instances pch_light ../../test/build//boost_unit_test_framework + : # command line + : # input files + : # requirements + TEST_LDOUBLE + intel:off + : test_ibeta_inv_ab_long_double ] + [ run test_ibeta_inv_ab.cpp test_instances//test_instances pch_light ../../test/build//boost_unit_test_framework + : # command line + : # input files + : # requirements + TEST_REAL_CONCEPT + TEST_DATA=1 + intel:off + : test_ibeta_inv_ab_real_concept1 ] + [ run test_ibeta_inv_ab.cpp test_instances//test_instances pch_light ../../test/build//boost_unit_test_framework + : # command line + : # input files + : # requirements + TEST_REAL_CONCEPT + TEST_DATA=2 + intel:off + : test_ibeta_inv_ab_real_concept2 ] + [ run test_ibeta_inv_ab.cpp test_instances//test_instances pch_light ../../test/build//boost_unit_test_framework + : # command line + : # input files + : # requirements + TEST_REAL_CONCEPT + TEST_DATA=3 + intel:off + : test_ibeta_inv_ab_real_concept3 ] + [ run test_igamma.cpp test_instances//test_instances pch_light ../../test/build//boost_unit_test_framework ] + [ run test_igamma_inv.cpp test_instances//test_instances pch_light ../../test/build//boost_unit_test_framework + : # command line + : # input files + : # requirements + TEST_FLOAT + intel:off + : test_igamma_inv_float ] + [ run test_igamma_inv.cpp test_instances//test_instances pch_light ../../test/build//boost_unit_test_framework + : # command line + : # input files + : # requirements + TEST_DOUBLE + intel:off + : test_igamma_inv_double ] + [ run test_igamma_inv.cpp test_instances//test_instances pch_light ../../test/build//boost_unit_test_framework + : # command line + : # input files + : # requirements + TEST_LDOUBLE + intel:off + : test_igamma_inv_long_double ] + [ run test_igamma_inv.cpp test_instances//test_instances pch_light ../../test/build//boost_unit_test_framework + : # command line + : # input files + : # requirements + TEST_REAL_CONCEPT + intel:off + : test_igamma_inv_real_concept ] + [ run test_igamma_inva.cpp test_instances//test_instances pch_light ../../test/build//boost_unit_test_framework + : # command line + : # input files + : # requirements + TEST_FLOAT + intel:off + : test_igamma_inva_float ] + [ run test_igamma_inva.cpp test_instances//test_instances pch_light ../../test/build//boost_unit_test_framework + : # command line + : # input files + : # requirements + TEST_DOUBLE + intel:off + : test_igamma_inva_double ] + [ run test_igamma_inva.cpp test_instances//test_instances pch_light ../../test/build//boost_unit_test_framework + : # command line + : # input files + : # requirements + TEST_LDOUBLE + intel:off + : test_igamma_inva_long_double ] + [ run test_igamma_inva.cpp test_instances//test_instances pch_light ../../test/build//boost_unit_test_framework + : # command line + : # input files + : # requirements + TEST_REAL_CONCEPT + intel:off + : test_igamma_inva_real_concept ] + [ run test_instantiate1.cpp test_instantiate2.cpp ] + [ run test_jacobi.cpp pch_light ../../test/build//boost_unit_test_framework ] + [ run test_laguerre.cpp test_instances//test_instances pch_light ../../test/build//boost_unit_test_framework ] + + [ run test_lambert_w.cpp ../../test/build//boost_unit_test_framework ] + [ run test_lambert_w.cpp ../../test/build//boost_unit_test_framework : : : BOOST_MATH_TEST_MULTIPRECISION=1 [ check-target-builds ../config//has_float128 "GCC libquadmath and __float128 support" : BOOST_MATH_TEST_FLOAT128 "-Bstatic -lquadmath -Bdynamic" ] : test_lambert_w_multiprecision_1 ] + [ run test_lambert_w.cpp ../../test/build//boost_unit_test_framework : : : BOOST_MATH_TEST_MULTIPRECISION=2 [ check-target-builds ../config//has_float128 "GCC libquadmath and __float128 support" : BOOST_MATH_TEST_FLOAT128 "-Bstatic -lquadmath -Bdynamic" ] : test_lambert_w_multiprecision_2 ] + [ run test_lambert_w.cpp ../../test/build//boost_unit_test_framework : : : BOOST_MATH_TEST_MULTIPRECISION=3 [ check-target-builds ../config//has_float128 "GCC libquadmath and __float128 support" : BOOST_MATH_TEST_FLOAT128 "-Bstatic -lquadmath -Bdynamic" ] : test_lambert_w_multiprecision_3 ] + [ run test_lambert_w.cpp ../../test/build//boost_unit_test_framework : : : BOOST_MATH_TEST_MULTIPRECISION=4 BOOST_MATH_TEST_FLOAT128 [ check-target-builds ../config//has_float128 "GCC libquadmath and __float128 support" : BOOST_MATH_TEST_FLOAT128 "-Bstatic -lquadmath -Bdynamic" ] : test_lambert_w_multiprecision_4 ] + [ run test_lambert_w_integrals_float128.cpp ../../test/build//boost_unit_test_framework : : : release [ check-target-builds ../config//has_float128 "GCC libquadmath and __float128 support" : "-Bstatic -lquadmath -Bdynamic" : no ] [ requires cxx11_auto_declarations cxx11_lambdas cxx11_smart_ptr cxx11_unified_initialization_syntax sfinae_expr ] ] + [ run test_lambert_w_integrals_quad.cpp ../../test/build//boost_unit_test_framework : : : release [ requires cxx11_auto_declarations cxx11_lambdas cxx11_smart_ptr cxx11_unified_initialization_syntax sfinae_expr ] [ check-target-builds ../config//has_float128 "GCC libquadmath and __float128 support" : BOOST_MATH_TEST_FLOAT128 "-Bstatic -lquadmath -Bdynamic" ] ] + [ run test_lambert_w_integrals_long_double.cpp ../../test/build//boost_unit_test_framework : : : [ requires cxx11_auto_declarations cxx11_lambdas cxx11_smart_ptr cxx11_unified_initialization_syntax sfinae_expr ] ] + [ run test_lambert_w_integrals_double.cpp ../../test/build//boost_unit_test_framework : : : [ requires cxx11_auto_declarations cxx11_lambdas cxx11_smart_ptr cxx11_unified_initialization_syntax sfinae_expr ] ] + [ run test_lambert_w_integrals_float.cpp ../../test/build//boost_unit_test_framework : : : [ requires cxx11_auto_declarations cxx11_lambdas cxx11_smart_ptr cxx11_unified_initialization_syntax sfinae_expr ] ] + [ run test_lambert_w_derivative.cpp ../../test/build//boost_unit_test_framework : : : BOOST_MATH_TEST_MULTIPRECISION [ check-target-builds ../config//has_float128 "GCC libquadmath and __float128 support" : BOOST_MATH_TEST_FLOAT128 "-Bstatic -lquadmath -Bdynamic" ] ] + + [ run test_legendre.cpp test_instances//test_instances pch_light ../../test/build//boost_unit_test_framework : : : [ check-target-builds ../config//has_float128 "GCC libquadmath and __float128 support" : "-Bstatic -lquadmath -Bdynamic" ] ] + [ run chebyshev_test.cpp : : : [ requires cxx11_inline_namespaces cxx11_unified_initialization_syntax cxx11_hdr_tuple cxx11_smart_ptr cxx11_defaulted_functions cxx11_auto_declarations cxx11_range_based_for cxx11_constexpr ] [ check-target-builds ../config//has_float128 "GCC libquadmath and __float128 support" : "-Bstatic -lquadmath -Bdynamic" ] ] + [ run chebyshev_transform_test.cpp ../config//fftw3f : : : TEST1 [ requires cxx11_smart_ptr cxx11_defaulted_functions cxx11_auto_declarations cxx11_range_based_for ] [ check-target-builds ../config//has_fftw3 "libfftw3" : : no ] : chebyshev_transform_test_1 ] + [ run chebyshev_transform_test.cpp ../config//fftw3 : : : TEST2 [ requires cxx11_smart_ptr cxx11_defaulted_functions cxx11_auto_declarations cxx11_range_based_for ] [ check-target-builds ../config//has_fftw3 "libfftw3" : : no ] : chebyshev_transform_test_2 ] + [ run chebyshev_transform_test.cpp ../config//fftw3l : : : TEST3 [ requires cxx11_smart_ptr cxx11_defaulted_functions cxx11_auto_declarations cxx11_range_based_for ] [ check-target-builds ../config//has_fftw3 "libfftw3" : : no ] : chebyshev_transform_test_3 ] + [ run chebyshev_transform_test.cpp ../config//fftw3q ../config//quadmath : : : TEST4 [ requires cxx11_smart_ptr cxx11_defaulted_functions cxx11_auto_declarations cxx11_range_based_for ] [ check-target-builds ../config//has_fftw3 "libfftw3" : : no ] [ check-target-builds ../config//has_float128 "__float128" : : no ] : chebyshev_transform_test_4 ] + + [ run cardinal_trigonometric_test.cpp ../config//fftw3f : : : TEST1 [ requires cxx11_auto_declarations cxx11_range_based_for ] [ check-target-builds ../config//has_fftw3 "libfftw3" : : no ] : cardinal_trigonometric_test_1 ] + [ run cardinal_trigonometric_test.cpp ../config//fftw3 : : : TEST2 [ requires cxx11_auto_declarations cxx11_range_based_for ] [ check-target-builds ../config//has_fftw3 "libfftw3" : : no ] : cardinal_trigonometric_test_2 ] + [ run cardinal_trigonometric_test.cpp ../config//fftw3l : : : TEST3 [ requires cxx11_auto_declarations cxx11_range_based_for ] [ check-target-builds ../config//has_fftw3 "libfftw3" : : no ] : cardinal_trigonometric_test_3 ] + [ run cardinal_trigonometric_test.cpp ../config//fftw3q ../config//quadmath : : : TEST4 [ requires cxx11_auto_declarations cxx11_range_based_for ] [ check-target-builds ../config//has_fftw3 "libfftw3" : : no ] [ check-target-builds ../config//has_float128 "__float128" : : no ] : cardinal_trigonometric_test_4 ] + + + [ run test_ldouble_simple.cpp ../../test/build//boost_unit_test_framework ] + # Needs to run in release mode, as it's rather slow: + [ run test_next.cpp pch ../../test/build//boost_unit_test_framework : : : release ] + [ run test_next_decimal.cpp pch ../../test/build//boost_unit_test_framework : : : release ] + [ run test_owens_t.cpp ../../test/build//boost_unit_test_framework ] + [ run test_polygamma.cpp test_instances//test_instances pch_light ../../test/build//boost_unit_test_framework ] + [ run test_trigamma.cpp test_instances//test_instances ../../test/build//boost_unit_test_framework ] + [ run test_round.cpp pch ../../test/build//boost_unit_test_framework ] + [ run test_spherical_harmonic.cpp test_instances//test_instances pch_light ../../test/build//boost_unit_test_framework ] + [ run test_sign.cpp ../../test/build//boost_unit_test_framework ] + [ run test_tgamma_for_issue396.cpp ../../test/build//boost_unit_test_framework : : : gcc-mingw:-Wa,-mbig-obj off msvc:/bigobj ] + [ run test_tgamma_ratio.cpp test_instances//test_instances pch_light ../../test/build//boost_unit_test_framework ] + [ run test_trig.cpp test_instances//test_instances pch_light ../../test/build//boost_unit_test_framework ] + [ run test_zeta.cpp ../../test/build//boost_unit_test_framework test_instances//test_instances pch_light ] + [ run test_sinc.cpp ../../test/build//boost_unit_test_framework pch_light ] +; + +test-suite distribution_tests : + [ run test_arcsine.cpp pch ../../test/build//boost_unit_test_framework ] + [ run test_bernoulli.cpp ../../test/build//boost_unit_test_framework ] + [ run test_beta_dist.cpp ../../test/build//boost_unit_test_framework ] + [ run test_binomial.cpp ../../test/build//boost_unit_test_framework + : # command line + : # input files + : # requirements + TEST_FLOAT + intel:off + : test_binomial_float ] + [ run test_binomial.cpp ../../test/build//boost_unit_test_framework + : # command line + : # input files + : # requirements + TEST_DOUBLE + intel:off + : test_binomial_double ] + [ run test_binomial.cpp ../../test/build//boost_unit_test_framework + : # command line + : # input files + : # requirements + TEST_LDOUBLE + intel:off + : test_binomial_long_double ] + [ run test_binomial.cpp ../../test/build//boost_unit_test_framework + : # command line + : # input files + : # requirements + TEST_REAL_CONCEPT + TEST_ROUNDING=0 + intel:off + : test_binomial_real_concept0 ] + [ run test_binomial.cpp ../../test/build//boost_unit_test_framework + : # command line + : # input files + : # requirements + TEST_REAL_CONCEPT + TEST_ROUNDING=1 + intel:off + : test_binomial_real_concept1 ] + [ run test_binomial.cpp ../../test/build//boost_unit_test_framework + : # command line + : # input files + : # requirements + TEST_REAL_CONCEPT + TEST_ROUNDING=2 + intel:off + : test_binomial_real_concept2 ] + [ run test_binomial.cpp ../../test/build//boost_unit_test_framework + : # command line + : # input files + : # requirements + TEST_REAL_CONCEPT + TEST_ROUNDING=3 + intel:off + : test_binomial_real_concept3 ] + [ run test_binomial.cpp ../../test/build//boost_unit_test_framework + : # command line + : # input files + : # requirements + TEST_REAL_CONCEPT + TEST_ROUNDING=4 + intel:off + : test_binomial_real_concept4 ] + [ run test_binomial.cpp ../../test/build//boost_unit_test_framework + : # command line + : # input files + : # requirements + TEST_REAL_CONCEPT + TEST_ROUNDING=5 + intel:off + : test_binomial_real_concept5 ] + [ run test_binomial.cpp ../../test/build//boost_unit_test_framework + : # command line + : # input files + : # requirements + TEST_REAL_CONCEPT + TEST_ROUNDING=6 + intel:off + : test_binomial_real_concept6 ] + [ run test_cauchy.cpp ../../test/build//boost_unit_test_framework ] + [ run test_chi_squared.cpp ../../test/build//boost_unit_test_framework ] + [ run test_dist_overloads.cpp ../../test/build//boost_unit_test_framework ] + [ run test_exponential_dist.cpp ../../test/build//boost_unit_test_framework ] + [ run test_extreme_value.cpp ../../test/build//boost_unit_test_framework ] + [ run test_find_location.cpp pch ../../test/build//boost_unit_test_framework ] + [ run test_find_scale.cpp pch ../../test/build//boost_unit_test_framework ] + [ run test_fisher_f.cpp ../../test/build//boost_unit_test_framework ] + [ run test_gamma_dist.cpp pch ../../test/build//boost_unit_test_framework ] + [ run test_geometric.cpp ../../test/build//boost_unit_test_framework ] + [ run test_hyperexponential_dist.cpp ../../test/build//boost_unit_test_framework ] + [ run test_hypergeometric_dist.cpp ../../test/build//boost_unit_test_framework + : # command line + : # input files + : # requirements + TEST_QUANT=0 + intel:off + : test_hypergeometric_dist0 ] + [ run test_hypergeometric_dist.cpp ../../test/build//boost_unit_test_framework + : # command line + : # input files + : # requirements + TEST_QUANT=1 + intel:off + : test_hypergeometric_dist1 ] + [ run test_hypergeometric_dist.cpp ../../test/build//boost_unit_test_framework + : # command line + : # input files + : # requirements + TEST_QUANT=2 + intel:off + : test_hypergeometric_dist2 ] + [ run test_hypergeometric_dist.cpp ../../test/build//boost_unit_test_framework + : # command line + : # input files + : # requirements + TEST_QUANT=3 + intel:off + : test_hypergeometric_dist3 ] + [ run test_hypergeometric_dist.cpp ../../test/build//boost_unit_test_framework + : # command line + : # input files + : # requirements + TEST_QUANT=4 + intel:off + : test_hypergeometric_dist4 ] + [ run test_hypergeometric_dist.cpp ../../test/build//boost_unit_test_framework + : # command line + : # input files + : # requirements + TEST_QUANT=5 + intel:off + : test_hypergeometric_dist5 ] + [ run test_inverse_chi_squared_distribution.cpp ../../test/build//boost_unit_test_framework ] + [ run test_inverse_gamma_distribution.cpp ../../test/build//boost_unit_test_framework ] + [ run test_inverse_gaussian.cpp ../../test/build//boost_unit_test_framework ] + [ run test_kolmogorov_smirnov.cpp ../../test/build//boost_unit_test_framework : : : [ requires cxx11_hdr_initializer_list cxx11_auto_declarations cxx11_lambdas cxx11_unified_initialization_syntax cxx11_smart_ptr ] ] + [ run test_laplace.cpp ../../test/build//boost_unit_test_framework ] + [ run test_inv_hyp.cpp pch ../../test/build//boost_unit_test_framework ] + [ run test_logistic_dist.cpp ../../test/build//boost_unit_test_framework ] + [ run test_lognormal.cpp ../../test/build//boost_unit_test_framework ] + [ run test_negative_binomial.cpp ../../test/build//boost_unit_test_framework + : # command line + : # input files + : # requirements + TEST_FLOAT + intel:off + : test_negative_binomial_float ] + [ run test_negative_binomial.cpp ../../test/build//boost_unit_test_framework + : # command line + : # input files + : # requirements + TEST_DOUBLE + intel:off + : test_negative_binomial_double ] + [ run test_negative_binomial.cpp ../../test/build//boost_unit_test_framework + : # command line + : # input files + : # requirements + TEST_LDOUBLE + intel:off + : test_negative_binomial_long_double ] + [ run test_negative_binomial.cpp ../../test/build//boost_unit_test_framework + : # command line + : # input files + : # requirements + TEST_REAL_CONCEPT + intel:off + : test_negative_binomial_real_concept ] + [ run test_nc_chi_squared.cpp pch ../../test/build//boost_unit_test_framework + : # command line + : # input files + : # requirements + TEST_FLOAT + intel:off + : test_nc_chi_squared_float ] + [ run test_nc_chi_squared.cpp pch ../../test/build//boost_unit_test_framework + : # command line + : # input files + : # requirements + TEST_DOUBLE + intel:off + : test_nc_chi_squared_double ] + [ run test_nc_chi_squared.cpp pch ../../test/build//boost_unit_test_framework + : # command line + : # input files + : # requirements + TEST_LDOUBLE + intel:off + : test_nc_chi_squared_long_double ] + [ run test_nc_chi_squared.cpp pch ../../test/build//boost_unit_test_framework + : # command line + : # input files + : # requirements + TEST_REAL_CONCEPT + intel:off + : test_nc_chi_squared_real_concept ] + [ run test_nc_beta.cpp ../../test/build//boost_unit_test_framework + : # command line + : # input files + : # requirements + TEST_FLOAT + intel:off + : test_nc_beta_float ] + [ run test_nc_beta.cpp ../../test/build//boost_unit_test_framework + : # command line + : # input files + : # requirements + TEST_DOUBLE + intel:off + : test_nc_beta_double ] + [ run test_nc_beta.cpp ../../test/build//boost_unit_test_framework + : # command line + : # input files + : # requirements + TEST_LDOUBLE + intel:off + : test_nc_beta_long_double ] + [ run test_nc_beta.cpp ../../test/build//boost_unit_test_framework + : # command line + : # input files + : # requirements + TEST_REAL_CONCEPT + TEST_DATA=1 + intel:off + : test_nc_beta_real_concept1 ] + [ run test_nc_beta.cpp ../../test/build//boost_unit_test_framework + : # command line + : # input files + : # requirements + TEST_REAL_CONCEPT + TEST_DATA=2 + intel:off + : test_nc_beta_real_concept2 ] + [ run test_nc_f.cpp pch ../../test/build//boost_unit_test_framework ] + [ run test_nc_t.cpp pch ../../test/build//boost_unit_test_framework + : # command line + : # input files + : # requirements + TEST_FLOAT + intel:off + : test_nc_t_float ] + [ run test_nc_t.cpp pch ../../test/build//boost_unit_test_framework + : # command line + : # input files + : # requirements + TEST_DOUBLE + intel:off + : test_nc_t_double ] + [ run test_nc_t.cpp pch ../../test/build//boost_unit_test_framework + : # command line + : # input files + : # requirements + TEST_LDOUBLE + intel:off + : test_nc_t_long_double ] + [ run test_nc_t.cpp pch ../../test/build//boost_unit_test_framework + : # command line + : # input files + : # requirements + TEST_REAL_CONCEPT + intel:off + : test_nc_t_real_concept ] + [ run test_normal.cpp pch ../../test/build//boost_unit_test_framework ] + [ run test_pareto.cpp ../../test/build//boost_unit_test_framework ] + [ run test_poisson.cpp ../../test/build//boost_unit_test_framework + : # command line + : # input files + : # requirements + TEST_FLOAT + intel:off + : test_poisson_float ] + [ run test_poisson.cpp ../../test/build//boost_unit_test_framework + : # command line + : # input files + : # requirements + TEST_DOUBLE + intel:off + : test_poisson_double ] + [ run test_poisson.cpp ../../test/build//boost_unit_test_framework + : # command line + : # input files + : # requirements + TEST_LDOUBLE + intel:off + : test_poisson_long_double ] + [ run test_poisson.cpp ../../test/build//boost_unit_test_framework + : # command line + : # input files + : # requirements + TEST_REAL_CONCEPT + intel:off + : test_poisson_real_concept ] + [ run test_rayleigh.cpp ../../test/build//boost_unit_test_framework ] + [ run test_students_t.cpp ../../test/build//boost_unit_test_framework ] + [ run test_skew_normal.cpp ../../test/build//boost_unit_test_framework ] + [ run test_trapezoidal.cpp ../../test/build//boost_unit_test_framework : : : + release [ requires cxx11_lambdas cxx11_auto_declarations cxx11_decltype cxx11_unified_initialization_syntax cxx11_variadic_templates ] + [ check-target-builds ../config//has_float128 "GCC libquadmath and __float128 support" : "-Bstatic -lquadmath -Bdynamic" ] ] + [ run test_triangular.cpp pch ../../test/build//boost_unit_test_framework ] + [ run test_uniform.cpp pch ../../test/build//boost_unit_test_framework ] + [ run test_weibull.cpp ../../test/build//boost_unit_test_framework ] + + [ run compile_test/dist_bernoulli_incl_test.cpp compile_test_main ] + [ run compile_test/dist_beta_incl_test.cpp compile_test_main ] + [ run compile_test/dist_binomial_incl_test.cpp compile_test_main ] + [ run compile_test/dist_cauchy_incl_test.cpp compile_test_main ] + [ run compile_test/dist_chi_squared_incl_test.cpp compile_test_main ] + [ run compile_test/dist_complement_incl_test.cpp compile_test_main ] + [ run compile_test/dist_exponential_incl_test.cpp compile_test_main ] + [ run compile_test/dist_extreme_val_incl_test.cpp compile_test_main ] + [ run compile_test/dist_find_location_incl_test.cpp compile_test_main ] + [ run compile_test/dist_find_scale_incl_test.cpp compile_test_main ] + [ run compile_test/dist_fisher_f_incl_test.cpp compile_test_main ] + [ run compile_test/dist_gamma_incl_test.cpp compile_test_main ] + [ run compile_test/dist_inv_gamma_incl_test.cpp compile_test_main ] + [ run compile_test/dist_inv_chi_sq_incl_test.cpp compile_test_main ] + [ run compile_test/dist_hyperexponential_incl_test.cpp compile_test_main ] + [ run compile_test/dist_hypergeo_incl_test.cpp compile_test_main ] + [ run compile_test/dist_laplace_incl_test.cpp compile_test_main ] + [ run compile_test/dist_logistic_incl_test.cpp compile_test_main ] + [ run compile_test/dist_lognormal_incl_test.cpp compile_test_main ] + [ run compile_test/dist_neg_binom_incl_test.cpp compile_test_main ] + [ run compile_test/dist_nc_chi_squ_incl_test.cpp compile_test_main ] + [ run compile_test/dist_nc_beta_incl_test.cpp compile_test_main ] + [ run compile_test/dist_nc_f_incl_test.cpp compile_test_main ] + [ run compile_test/dist_nc_t_incl_test.cpp compile_test_main ] + [ run compile_test/dist_normal_incl_test.cpp compile_test_main ] + [ run compile_test/dist_poisson_incl_test.cpp compile_test_main ] + [ run compile_test/dist_students_t_incl_test.cpp compile_test_main ] + [ run compile_test/dist_triangular_incl_test.cpp compile_test_main ] + [ run compile_test/dist_uniform_incl_test.cpp compile_test_main ] + [ run compile_test/dist_weibull_incl_test.cpp compile_test_main ] + [ run compile_test/distribution_concept_check.cpp ] + + [ run test_legacy_nonfinite.cpp ../../test/build//boost_unit_test_framework ] + [ run test_basic_nonfinite.cpp ../../test/build//boost_unit_test_framework ] + [ run test_lexical_cast.cpp ../../test/build//boost_unit_test_framework ] + [ run test_nonfinite_trap.cpp ../../test/build//boost_unit_test_framework : : : off:no ] + [ run test_signed_zero.cpp ../../test/build//boost_unit_test_framework ] + [ run complex_test.cpp ../../test/build//boost_unit_test_framework ] + # + # Moved from misc for load balancing reasons: + # + [ run test_polynomial.cpp ../../test/build//boost_unit_test_framework : : : TEST1 : test_polynomial_1 ] + [ run test_polynomial.cpp ../../test/build//boost_unit_test_framework : : : TEST2 : test_polynomial_2 ] + [ run test_polynomial.cpp ../../test/build//boost_unit_test_framework : : : TEST3 : test_polynomial_3 ] + [ run polynomial_concept_check.cpp ] + + [ compile multiprc_concept_check_1.cpp : off msvc:/bigobj release off:no ] + [ compile multiprc_concept_check_2.cpp : off msvc:/bigobj release off:no ] + [ compile multiprc_concept_check_3.cpp : off msvc:/bigobj release off:no ] + [ compile multiprc_concept_check_4.cpp : off msvc:/bigobj release off:no ] + [ compile ntl_concept_check.cpp : [ check-target-builds ../config//has_ntl_rr : : no ] off ] + [ compile mpfr_concept_check.cpp : [ check-target-builds ../config//has_mpfr_class : : no ] off ] + [ compile mpreal_concept_check.cpp : [ check-target-builds ../config//has_mpreal : : no ] off ] + [ compile e_float_concept_check.cpp : [ check-target-builds ../config//has_e_float : : no ] off ] + +; + +test-suite misc : + [ run test_tr1.cpp + ../build//boost_math_tr1 + ../build//boost_math_tr1f + ../build//boost_math_c99 + ../build//boost_math_c99f + ../../test/build//boost_unit_test_framework + ] + + [ run test_tr1.cpp + ../build//boost_math_tr1l + ../build//boost_math_c99l + ../../test/build//boost_unit_test_framework + : : : + TEST_LD=1 + [ check-target-builds ../config//has_long_double_support "long double support" : : no ] + : + test_tr1_long_double + ] + + [ run test_tr1.c + ../build//boost_math_tr1 + ../build//boost_math_tr1f + ../build//boost_math_c99 + ../build//boost_math_c99f + ../../test/build//boost_unit_test_framework + : : : #requirements + : + test_tr1_c + ] + + [ run test_tr1.c + ../build//boost_math_tr1l + ../build//boost_math_c99l + ../../test/build//boost_unit_test_framework + : : : + TEST_LD=1 + [ check-target-builds ../config//has_long_double_support "long double support" : : no ] + : + test_tr1_c_long_double + ] + [ run test_constants.cpp : : : [ requires cxx17_if_constexpr cxx17_std_apply ] [ check-target-builds ../config//has_float128 "GCC libquadmath and __float128 support" : -lquadmath ] ] + [ run simple_continued_fraction_test.cpp : : : [ requires cxx17_if_constexpr cxx17_std_apply ] [ check-target-builds ../config//has_float128 "GCC libquadmath and __float128 support" : -lquadmath ] ] + [ run centered_continued_fraction_test.cpp : : : [ requires cxx17_if_constexpr cxx17_std_apply ] [ check-target-builds ../config//has_float128 "GCC libquadmath and __float128 support" : -lquadmath ] ] + [ run luroth_expansion_test.cpp : : : [ requires cxx17_if_constexpr cxx17_std_apply ] [ check-target-builds ../config//has_float128 "GCC libquadmath and __float128 support" : -lquadmath ] ] + [ run engel_expansion_test.cpp : : : [ requires cxx17_if_constexpr cxx17_std_apply ] [ check-target-builds ../config//has_float128 "GCC libquadmath and __float128 support" : -lquadmath ] ] + [ run test_classify.cpp pch ../../test/build//boost_unit_test_framework ] + [ run test_error_handling.cpp ../../test/build//boost_unit_test_framework ] + [ run legendre_stieltjes_test.cpp ../../test/build//boost_unit_test_framework : : : [ requires cxx11_auto_declarations cxx11_range_based_for ] [ check-target-builds ../config//has_float128 "GCC libquadmath and __float128 support" : -lquadmath ] ] + [ run test_minima.cpp pch ../../test/build//boost_unit_test_framework ] + [ run test_rationals.cpp ../../test/build//boost_unit_test_framework + test_rational_instances/test_rational_double1.cpp + test_rational_instances/test_rational_double2.cpp + test_rational_instances/test_rational_double3.cpp + test_rational_instances/test_rational_double4.cpp + test_rational_instances/test_rational_double5.cpp + test_rational_instances/test_rational_float1.cpp + test_rational_instances/test_rational_float2.cpp + test_rational_instances/test_rational_float3.cpp + test_rational_instances/test_rational_float4.cpp + test_rational_instances/test_rational_ldouble1.cpp + test_rational_instances/test_rational_ldouble2.cpp + test_rational_instances/test_rational_ldouble3.cpp + test_rational_instances/test_rational_ldouble4.cpp + test_rational_instances/test_rational_ldouble5.cpp + test_rational_instances/test_rational_real_concept1.cpp + test_rational_instances/test_rational_real_concept2.cpp + test_rational_instances/test_rational_real_concept3.cpp + test_rational_instances/test_rational_real_concept4.cpp + test_rational_instances/test_rational_real_concept5.cpp + ] + [ run test_policy.cpp ../../test/build//boost_unit_test_framework ] + [ run test_policy_2.cpp ../../test/build//boost_unit_test_framework ] + [ run test_policy_3.cpp ../../test/build//boost_unit_test_framework ] + [ run test_policy_4.cpp ../../test/build//boost_unit_test_framework ] + [ run test_policy_5.cpp ../../test/build//boost_unit_test_framework ] + [ run test_policy_6.cpp ../../test/build//boost_unit_test_framework ] + [ run test_policy_7.cpp ../../test/build//boost_unit_test_framework ] + [ run test_policy_8.cpp ../../test/build//boost_unit_test_framework ] + [ compile test_policy_9.cpp ] + [ run test_policy_sf.cpp ../../test/build//boost_unit_test_framework ] + [ run test_long_double_support.cpp ../../test/build//boost_unit_test_framework + : : : [ check-target-builds ../config//has_long_double_support "long double support" : : no ] ] + [ run test_recurrence.cpp : : : TEST=1 [ requires cxx11_unified_initialization_syntax cxx11_hdr_tuple cxx11_auto_declarations cxx11_decltype ] msvc:/bigobj : test_recurrence_1 ] + [ run test_recurrence.cpp : : : TEST=2 release [ check-target-builds ../config//has_float128 "GCC libquadmath and __float128 support" : BOOST_MATH_TEST_FLOAT128 "-Bstatic -lquadmath -Bdynamic" ] [ requires cxx11_unified_initialization_syntax cxx11_hdr_tuple cxx11_auto_declarations cxx11_decltype ] : test_recurrence_2 ] + [ run test_recurrence.cpp : : : TEST=3 release [ check-target-builds ../config//has_float128 "GCC libquadmath and __float128 support" : BOOST_MATH_TEST_FLOAT128 "-Bstatic -lquadmath -Bdynamic" ] [ requires cxx11_unified_initialization_syntax cxx11_hdr_tuple cxx11_auto_declarations cxx11_decltype ] : test_recurrence_3 ] + + [ run test_print_info_on_type.cpp ] + [ run test_barycentric_rational.cpp ../../test/build//boost_unit_test_framework : : : [ requires cxx11_smart_ptr cxx11_defaulted_functions cxx11_auto_declarations cxx11_unified_initialization_syntax ] [ check-target-builds ../config//has_float128 "GCC libquadmath and __float128 support" : -lquadmath ] ] + [ run test_vector_barycentric_rational.cpp ../../test/build//boost_unit_test_framework : : : [ requires cxx11_smart_ptr cxx11_defaulted_functions cxx11_auto_declarations cxx11_unified_initialization_syntax ] [ check-target-builds ../../multiprecision/config//has_eigen : : no ] ] + [ run cardinal_cubic_b_spline_test.cpp ../../test/build//boost_unit_test_framework : : : [ requires cxx11_smart_ptr cxx11_defaulted_functions ] off msvc:/bigobj release ] + [ run cardinal_b_spline_test.cpp : : : [ requires cxx11_auto_declarations cxx11_constexpr cxx11_smart_ptr cxx11_defaulted_functions ] [ check-target-builds ../config//has_float128 "GCC libquadmath and __float128 support" : -lquadmath ] ] + [ run jacobi_test.cpp : : : [ requires cxx11_auto_declarations cxx11_constexpr cxx11_smart_ptr cxx11_defaulted_functions ] [ check-target-builds ../config//has_float128 "GCC libquadmath and __float128 support" : -lquadmath ] ] + [ run gegenbauer_test.cpp : : : [ requires cxx11_auto_declarations cxx11_constexpr cxx11_smart_ptr cxx11_defaulted_functions ] [ check-target-builds ../config//has_float128 "GCC libquadmath and __float128 support" : -lquadmath ] ] + [ run daubechies_scaling_test.cpp : : : msvc:/bigobj [ requires cxx17_if_constexpr cxx17_std_apply ] [ check-target-builds ../config//has_float128 "GCC libquadmath and __float128 support" : -lquadmath ] ] + [ run daubechies_wavelet_test.cpp : : : msvc:/bigobj [ requires cxx17_if_constexpr cxx17_std_apply ] [ check-target-builds ../config//has_float128 "GCC libquadmath and __float128 support" : -lquadmath ] ] + [ run wavelet_transform_test.cpp : : : msvc:/bigobj [ requires cxx17_if_constexpr cxx17_std_apply ] [ check-target-builds ../config//has_float128 "GCC libquadmath and __float128 support" : -lquadmath ] ] + [ run agm_test.cpp : : : msvc:/bigobj [ requires cxx17_if_constexpr cxx17_std_apply ] [ check-target-builds ../config//has_float128 "GCC libquadmath and __float128 support" : -lquadmath ] ] + [ run rsqrt_test.cpp : : : msvc:/bigobj [ requires cxx17_if_constexpr cxx17_std_apply ] [ check-target-builds ../config//has_float128 "GCC libquadmath and __float128 support" : -lquadmath ] ] + [ run cohen_acceleration_test.cpp : : : msvc:/bigobj [ requires cxx17_if_constexpr cxx17_std_apply ] [ check-target-builds ../config//has_float128 "GCC libquadmath and __float128 support" : -lquadmath ] ] + [ compile compile_test/daubechies_filters_incl_test.cpp : [ requires cxx17_if_constexpr cxx17_std_apply ] ] + [ compile compile_test/daubechies_scaling_incl_test.cpp : [ requires cxx17_if_constexpr cxx17_std_apply ] ] + [ run whittaker_shannon_test.cpp : : : [ requires cxx11_auto_declarations cxx11_constexpr cxx11_smart_ptr cxx11_defaulted_functions ] ] + [ run cardinal_quadratic_b_spline_test.cpp : : : [ requires cxx11_auto_declarations cxx11_constexpr cxx11_smart_ptr cxx11_defaulted_functions ] ] + [ run cardinal_quintic_b_spline_test.cpp : : : [ requires cxx11_auto_declarations cxx11_constexpr cxx11_smart_ptr cxx11_defaulted_functions ] [ check-target-builds ../config//has_float128 "GCC libquadmath and __float128 support" : -lquadmath ] ] + [ run makima_test.cpp : : : [ requires cxx17_if_constexpr cxx17_std_apply ] [ check-target-builds ../config//has_float128 "GCC libquadmath and __float128 support" : -lquadmath ] ] + [ run pchip_test.cpp : : : [ requires cxx17_if_constexpr cxx17_std_apply ] [ check-target-builds ../config//has_float128 "GCC libquadmath and __float128 support" : -lquadmath ] ] + [ run septic_hermite_test.cpp : : : [ requires cxx17_if_constexpr cxx17_std_apply ] [ check-target-builds ../config//has_float128 "GCC libquadmath and __float128 support" : -lquadmath ] ] + [ run quintic_hermite_test.cpp : : : [ requires cxx17_if_constexpr cxx17_std_apply ] [ check-target-builds ../config//has_float128 "GCC libquadmath and __float128 support" : -lquadmath ] ] + [ run cubic_hermite_test.cpp : : : [ requires cxx17_if_constexpr cxx17_std_apply ] [ check-target-builds ../config//has_float128 "GCC libquadmath and __float128 support" : -lquadmath ] ] + [ run catmull_rom_test.cpp ../../test/build//boost_unit_test_framework : : : TEST=1 [ requires cxx11_hdr_array cxx11_hdr_initializer_list ] : catmull_rom_test_1 ] + [ run catmull_rom_test.cpp ../../test/build//boost_unit_test_framework : : : TEST=2 [ requires cxx11_hdr_array cxx11_hdr_initializer_list ] : catmull_rom_test_2 ] + [ run catmull_rom_test.cpp ../../test/build//boost_unit_test_framework : : : TEST=3 [ requires cxx11_hdr_array cxx11_hdr_initializer_list ] : catmull_rom_test_3 ] + [ run compile_test/catmull_rom_incl_test.cpp compile_test_main : : : [ requires cxx11_hdr_array cxx11_hdr_initializer_list ] ] + [ run compile_test/catmull_rom_concept_test.cpp compile_test_main : : : [ requires cxx11_hdr_array cxx11_hdr_initializer_list ] ] + [ run ooura_fourier_integral_test.cpp ../../test/build//boost_unit_test_framework : : : [ requires cxx17_if_constexpr cxx17_std_apply ] ] + [ run univariate_statistics_test.cpp ../../test/build//boost_unit_test_framework : : : [ requires cxx17_if_constexpr cxx17_std_apply ] ] + [ run empirical_cumulative_distribution_test.cpp : : : [ requires cxx17_if_constexpr cxx17_std_apply ] ] + [ run norms_test.cpp ../../test/build//boost_unit_test_framework : : : [ requires cxx17_if_constexpr cxx17_std_apply ] ] + [ run signal_statistics_test.cpp : : : [ requires cxx17_if_constexpr cxx17_std_apply ] ] + [ run anderson_darling_test.cpp : : : [ requires cxx17_if_constexpr cxx17_std_apply ] ] + [ run ljung_box_test.cpp : : : [ requires cxx17_if_constexpr cxx17_std_apply ] ] + [ run test_t_test.cpp : : : [ requires cxx17_if_constexpr cxx17_std_apply ] ] + [ run bivariate_statistics_test.cpp : : : [ requires cxx17_if_constexpr cxx17_std_apply ] ] + [ run linear_regression_test.cpp : : : [ requires cxx17_if_constexpr cxx17_std_apply ] ] + [ run test_runs_test.cpp : : : [ requires cxx17_if_constexpr cxx17_std_apply ] ] + [ run lanczos_smoothing_test.cpp ../../test/build//boost_unit_test_framework : : : [ requires cxx17_if_constexpr cxx17_std_apply ] ] + [ run condition_number_test.cpp ../../test/build//boost_unit_test_framework : : : [ requires cxx17_if_constexpr cxx17_std_apply ] ] + [ run test_real_concept.cpp ../../test/build//boost_unit_test_framework ] + [ run test_remez.cpp pch ../../test/build//boost_unit_test_framework ] + [ run test_roots.cpp pch ../../test/build//boost_unit_test_framework ] + [ run test_root_iterations.cpp pch ../../test/build//boost_unit_test_framework : : : [ requires cxx11_hdr_tuple ] ] + [ run test_root_finding_concepts.cpp ../../test/build//boost_unit_test_framework ] + [ run test_toms748_solve.cpp pch ../../test/build//boost_unit_test_framework ] + [ run compile_test/cubic_spline_incl_test.cpp compile_test_main : : : [ requires cxx11_smart_ptr cxx11_defaulted_functions cxx11_auto_declarations ] ] + [ run compile_test/barycentric_rational_incl_test.cpp compile_test_main : : : [ requires cxx11_smart_ptr cxx11_defaulted_functions cxx11_auto_declarations cxx11_unified_initialization_syntax ] ] + [ run compile_test/compl_abs_incl_test.cpp compile_test_main ] + [ run compile_test/compl_acos_incl_test.cpp compile_test_main ] + [ run compile_test/compl_acosh_incl_test.cpp compile_test_main ] + [ run compile_test/compl_asin_incl_test.cpp compile_test_main ] + [ run compile_test/compl_asinh_incl_test.cpp compile_test_main ] + [ run compile_test/compl_atan_incl_test.cpp compile_test_main ] + [ run compile_test/compl_atanh_incl_test.cpp compile_test_main ] + [ run compile_test/sf_beta_incl_test.cpp compile_test_main ] + [ run compile_test/sf_bernoulli_incl_test.cpp compile_test_main ] + [ run compile_test/sf_bessel_incl_test.cpp compile_test_main ] + [ run compile_test/sf_bessel_deriv_incl_test.cpp compile_test_main ] + [ run compile_test/sf_binomial_incl_test.cpp compile_test_main ] + [ run compile_test/sf_cbrt_incl_test.cpp compile_test_main ] + [ run compile_test/sf_cos_pi_incl_test.cpp compile_test_main ] + [ run compile_test/sf_digamma_incl_test.cpp compile_test_main ] + [ run compile_test/sf_polygamma_incl_test.cpp compile_test_main ] + [ run compile_test/sf_ellint_1_incl_test.cpp compile_test_main ] + [ run compile_test/sf_ellint_2_incl_test.cpp compile_test_main ] + [ run compile_test/sf_ellint_3_incl_test.cpp compile_test_main ] + [ run compile_test/sf_ellint_d_incl_test.cpp compile_test_main ] + [ run compile_test/sf_jacobi_theta_incl_test.cpp compile_test_main ] + [ run compile_test/sf_jacobi_zeta_incl_test.cpp compile_test_main ] + [ run compile_test/sf_heuman_lambda_incl_test.cpp compile_test_main ] + [ run compile_test/sf_ellint_rc_incl_test.cpp compile_test_main ] + [ run compile_test/sf_ellint_rd_incl_test.cpp compile_test_main ] + [ run compile_test/sf_ellint_rf_incl_test.cpp compile_test_main ] + [ run compile_test/sf_ellint_rj_incl_test.cpp compile_test_main ] + [ run compile_test/sf_ellint_rg_incl_test.cpp compile_test_main ] + [ run compile_test/sf_erf_incl_test.cpp compile_test_main ] + [ run compile_test/sf_expint_incl_test.cpp compile_test_main ] + [ run compile_test/sf_expm1_incl_test.cpp compile_test_main ] + [ run compile_test/sf_factorials_incl_test.cpp compile_test_main ] + [ run compile_test/sf_fpclassify_incl_test.cpp compile_test_main ] + [ run compile_test/sf_gamma_incl_test.cpp compile_test_main ] + [ run compile_test/sf_hermite_incl_test.cpp compile_test_main ] + [ run compile_test/sf_hypot_incl_test.cpp compile_test_main ] + [ run compile_test/sf_laguerre_incl_test.cpp compile_test_main ] + [ compile compile_test/sf_lanczos_incl_test.cpp ] + [ run compile_test/sf_legendre_incl_test.cpp compile_test_main ] + [ run compile_test/sf_legendre_stieltjes_incl_test.cpp compile_test_main : : : [ requires cxx11_auto_declarations ] ] + [ run compile_test/sf_log1p_incl_test.cpp compile_test_main ] + [ compile compile_test/sf_math_fwd_incl_test.cpp ] + [ run compile_test/sf_modf_incl_test.cpp compile_test_main ] + [ run compile_test/sf_next_incl_test.cpp compile_test_main ] + [ run compile_test/sf_powm1_incl_test.cpp compile_test_main ] + [ run compile_test/sf_prime_incl_test.cpp compile_test_main ] + [ run compile_test/sf_relative_distance_incl_test.cpp compile_test_main ] + [ run compile_test/sf_round_incl_test.cpp compile_test_main ] + [ run compile_test/sf_sign_incl_test.cpp compile_test_main ] + [ run compile_test/sf_sin_pi_incl_test.cpp compile_test_main ] + [ run compile_test/sf_sinc_incl_test.cpp compile_test_main ] + [ run compile_test/sf_sinhc_incl_test.cpp compile_test_main ] + [ run compile_test/sf_sph_harm_incl_test.cpp compile_test_main ] + [ run compile_test/sf_sqrt1pm1_incl_test.cpp compile_test_main ] + [ run compile_test/sf_trunc_incl_test.cpp compile_test_main ] + [ run compile_test/sf_ulp_incl_test.cpp compile_test_main ] + [ run compile_test/sf_zeta_incl_test.cpp compile_test_main ] + [ run compile_test/std_real_concept_check.cpp ] + [ compile compile_test/std_real_concept_check.cpp : EMULATE32 : std_real_concept_check_32 ] + [ compile compile_test/std_real_concept_check.cpp : EMULATE64 : std_real_concept_check_64 ] + [ compile compile_test/std_real_concept_check.cpp : EMULATE80 : std_real_concept_check_80 ] + [ compile compile_test/std_real_concept_check.cpp : EMULATE128 : std_real_concept_check_128 ] + [ run compile_test/cstdfloat_concept_check_1.cpp + : : : [ check-target-builds ../config//has_intel_quad "Intel _Quad datatype support" : -Qoption,cpp,--extended_float_type ] + [ check-target-builds ../config//has_float128 "GCC libquadmath and __float128 support" : -lquadmath ] ] + [ run compile_test/cstdfloat_concept_check_2.cpp ] + [ run compile_test/cstdfloat_concept_check_3.cpp ] + [ run compile_test/cstdfloat_concept_check_4.cpp ] + [ run test_cstdfloat.cpp ../../test/build//boost_unit_test_framework : : : [ check-target-builds ../config//has_float128 "GCC libquadmath and __float128 support" : -lquadmath ] ] + [ run compile_test/sf_airy_incl_test.cpp compile_test_main ] + [ run compile_test/sf_hankel_incl_test.cpp compile_test_main ] + [ run compile_test/sf_jacobi_incl_test.cpp compile_test_main ] + [ run compile_test/sf_owens_t_incl_test.cpp compile_test_main ] + [ run compile_test/dist_skew_norm_incl_test.cpp compile_test_main ] + [ run compile_test/constants_incl_test.cpp compile_test_main ] + [ run compile_test/trapezoidal_incl_test.cpp compile_test_main : : : [ requires cxx11_auto_declarations cxx11_lambdas cxx11_decltype cxx11_unified_initialization_syntax cxx11_variadic_templates ] ] + [ compile compile_test/test_traits.cpp ] + [ compile compile_test/tools_config_inc_test.cpp ] + [ compile compile_test/tools_fraction_inc_test.cpp ] + [ compile compile_test/tools_minima_inc_test.cpp ] + [ compile compile_test/tools_polynomial_inc_test.cpp ] + [ compile compile_test/tools_precision_inc_test.cpp ] + [ compile compile_test/tools_rational_inc_test.cpp ] + [ compile compile_test/tools_real_cast_inc_test.cpp ] + [ compile compile_test/tools_remez_inc_test.cpp ] + [ compile compile_test/tools_roots_inc_test.cpp ] + [ compile compile_test/tools_series_inc_test.cpp ] + [ compile compile_test/tools_solve_inc_test.cpp ] + [ compile compile_test/tools_stats_inc_test.cpp ] + [ compile compile_test/tools_test_data_inc_test.cpp ] + [ compile compile_test/tools_test_inc_test.cpp ] + [ compile compile_test/tools_toms748_inc_test.cpp ] + [ compile compile_test/cubic_spline_concept_test.cpp : [ requires cxx11_smart_ptr cxx11_defaulted_functions ] ] + [ compile compile_test/barycentric_rational_concept_test.cpp : [ requires cxx11_smart_ptr cxx11_defaulted_functions cxx11_unified_initialization_syntax ] ] + [ compile compile_test/sf_legendre_stieltjes_concept_test.cpp : [ requires cxx11_auto_declarations cxx11_defaulted_functions cxx11_lambdas ] ] + [ compile compile_test/trapezoidal_concept_test.cpp : [ requires cxx11_auto_declarations cxx11_lambdas cxx11_decltype cxx11_unified_initialization_syntax cxx11_variadic_templates ] ] + [ run octonion_test.cpp + ../../test/build//boost_unit_test_framework ] + [ run quaternion_constexpr_test.cpp ] + [ run quaternion_test.cpp + ../../test/build//boost_unit_test_framework : : : [ check-target-builds ../config//has_float128 "GCC libquadmath and __float128 support" : -lquadmath ] ] + [ run quaternion_mult_incl_test.cpp + quaternion_mi1.cpp + quaternion_mi2.cpp + ../../test/build//boost_unit_test_framework ] + +# [ run __temporary_test.cpp test_instances//test_instances : : : always_show_run_output off ] + [ compile test_no_long_double_policy.cpp ] +; + +test-suite quadrature : + [ run tanh_sinh_quadrature_test.cpp ../../test/build//boost_unit_test_framework + : : : msvc:/bigobj TEST1 [ check-target-builds ../config//has_float128 "GCC libquadmath and __float128 support" : -lquadmath ] + [ requires cxx11_auto_declarations cxx11_lambdas cxx11_smart_ptr cxx11_unified_initialization_syntax sfinae_expr ] : + tanh_sinh_quadrature_test_1 ] + [ run tanh_sinh_quadrature_test.cpp ../../test/build//boost_unit_test_framework + : : : msvc:/bigobj TEST1A [ check-target-builds ../config//has_float128 "GCC libquadmath and __float128 support" : -lquadmath ] + [ requires cxx11_auto_declarations cxx11_lambdas cxx11_smart_ptr cxx11_unified_initialization_syntax sfinae_expr ] : + tanh_sinh_quadrature_test_1a ] + [ run tanh_sinh_quadrature_test.cpp ../../test/build//boost_unit_test_framework + : : : release msvc:/bigobj TEST1B [ check-target-builds ../config//has_float128 "GCC libquadmath and __float128 support" : -lquadmath ] + [ requires cxx11_auto_declarations cxx11_lambdas cxx11_smart_ptr cxx11_unified_initialization_syntax sfinae_expr ] : + tanh_sinh_quadrature_test_1b ] + [ run tanh_sinh_quadrature_test.cpp ../../test/build//boost_unit_test_framework + : : : msvc:/bigobj TEST2 [ check-target-builds ../config//has_float128 "GCC libquadmath and __float128 support" : -lquadmath ] + [ requires cxx11_auto_declarations cxx11_lambdas cxx11_smart_ptr cxx11_unified_initialization_syntax sfinae_expr ] : + tanh_sinh_quadrature_test_2 ] + [ run tanh_sinh_quadrature_test.cpp ../../test/build//boost_unit_test_framework + : : : release msvc:/bigobj TEST2A [ check-target-builds ../config//has_float128 "GCC libquadmath and __float128 support" : -lquadmath ] + [ requires cxx11_auto_declarations cxx11_lambdas cxx11_smart_ptr cxx11_unified_initialization_syntax sfinae_expr ] : + tanh_sinh_quadrature_test_2a ] + [ run tanh_sinh_quadrature_test.cpp ../../test/build//boost_unit_test_framework + : : : msvc:/bigobj TEST3 [ check-target-builds ../config//has_float128 "GCC libquadmath and __float128 support" : -lquadmath ] + [ requires cxx11_auto_declarations cxx11_lambdas cxx11_smart_ptr cxx11_unified_initialization_syntax sfinae_expr ] : + tanh_sinh_quadrature_test_3 ] + [ run tanh_sinh_quadrature_test.cpp ../../test/build//boost_unit_test_framework + : : : release msvc:/bigobj TEST3A [ check-target-builds ../config//has_float128 "GCC libquadmath and __float128 support" : -lquadmath ] + [ requires cxx11_auto_declarations cxx11_lambdas cxx11_smart_ptr cxx11_unified_initialization_syntax sfinae_expr ] : + tanh_sinh_quadrature_test_3a ] + [ run tanh_sinh_quadrature_test.cpp ../../test/build//boost_unit_test_framework + : : : release msvc:/bigobj TEST4 [ check-target-builds ../config//has_float128 "GCC libquadmath and __float128 support" : -lquadmath ] + [ requires cxx11_auto_declarations cxx11_lambdas cxx11_smart_ptr cxx11_unified_initialization_syntax sfinae_expr ] : + tanh_sinh_quadrature_test_4 ] + [ run tanh_sinh_quadrature_test.cpp ../../test/build//boost_unit_test_framework + : : : release msvc:/bigobj TEST5 [ check-target-builds ../config//has_float128 "GCC libquadmath and __float128 support" : -lquadmath ] + [ requires cxx11_auto_declarations cxx11_lambdas cxx11_smart_ptr cxx11_unified_initialization_syntax sfinae_expr ] : + tanh_sinh_quadrature_test_5 ] + [ run tanh_sinh_quadrature_test.cpp ../../test/build//boost_unit_test_framework + : : : msvc:/bigobj TEST6 [ check-target-builds ../config//has_float128 "GCC libquadmath and __float128 support" : -lquadmath ] + [ requires cxx11_auto_declarations cxx11_lambdas cxx11_smart_ptr cxx11_unified_initialization_syntax sfinae_expr ] : + tanh_sinh_quadrature_test_6 ] + [ run tanh_sinh_quadrature_test.cpp ../../test/build//boost_unit_test_framework + : : : release msvc:/bigobj TEST6A [ check-target-builds ../config//has_float128 "GCC libquadmath and __float128 support" : -lquadmath ] + [ requires cxx11_auto_declarations cxx11_lambdas cxx11_smart_ptr cxx11_unified_initialization_syntax sfinae_expr ] : + tanh_sinh_quadrature_test_6a ] + [ run tanh_sinh_quadrature_test.cpp ../../test/build//boost_unit_test_framework + : : : release msvc:/bigobj TEST7 [ check-target-builds ../config//has_float128 "GCC libquadmath and __float128 support" : -lquadmath ] + [ requires cxx11_auto_declarations cxx11_lambdas cxx11_smart_ptr cxx11_unified_initialization_syntax sfinae_expr ] : + tanh_sinh_quadrature_test_7 ] + [ run tanh_sinh_quadrature_test.cpp ../../test/build//boost_unit_test_framework + : : : release msvc:/bigobj TEST8 [ check-target-builds ../config//has_float128 "GCC libquadmath and __float128 support" : -lquadmath ] + [ requires cxx11_auto_declarations cxx11_lambdas cxx11_smart_ptr cxx11_unified_initialization_syntax sfinae_expr ] : + tanh_sinh_quadrature_test_8 ] + [ run tanh_sinh_quadrature_test.cpp ../../test/build//boost_unit_test_framework + : : : release msvc:/bigobj TEST9 + [ requires cxx11_auto_declarations cxx11_lambdas cxx11_smart_ptr cxx11_unified_initialization_syntax sfinae_expr ] : + tanh_sinh_quadrature_test_9 ] + + [ run tanh_sinh_mpfr.cpp ../tools//mpfr ../tools//gmp : : : [ check-target-builds ../config//has_mpfr : : no ] [ requires cxx11_hdr_initializer_list cxx11_auto_declarations cxx11_lambdas cxx11_unified_initialization_syntax cxx11_smart_ptr ] release clang:-Wno-literal-range ] + [ run sinh_sinh_quadrature_test.cpp ../../test/build//boost_unit_test_framework + : : : release [ check-target-builds ../config//has_float128 "GCC libquadmath and __float128 support" : -lquadmath ] [ requires cxx11_auto_declarations cxx11_lambdas cxx11_smart_ptr cxx11_unified_initialization_syntax ] ] + [ run exp_sinh_quadrature_test.cpp ../../test/build//boost_unit_test_framework + : : : TEST1 [ check-target-builds ../config//has_float128 "GCC libquadmath and __float128 support" : -lquadmath ] [ requires cxx11_auto_declarations cxx11_lambdas cxx11_smart_ptr cxx11_unified_initialization_syntax ] : exp_sinh_quadrature_test_1 ] + + [ run exp_sinh_quadrature_test.cpp ../../test/build//boost_unit_test_framework + : : : release TEST2 [ check-target-builds ../config//has_float128 "GCC libquadmath and __float128 support" : -lquadmath ] + [ requires cxx11_auto_declarations cxx11_lambdas cxx11_smart_ptr cxx11_unified_initialization_syntax ] : exp_sinh_quadrature_test_2 ] + [ run exp_sinh_quadrature_test.cpp ../../test/build//boost_unit_test_framework + : : : TEST3 [ check-target-builds ../config//has_float128 "GCC libquadmath and __float128 support" : -lquadmath ] + [ requires cxx11_auto_declarations cxx11_lambdas cxx11_smart_ptr cxx11_unified_initialization_syntax ] : exp_sinh_quadrature_test_3 ] + [ run exp_sinh_quadrature_test.cpp ../../test/build//boost_unit_test_framework + : : : release TEST4 [ check-target-builds ../config//has_float128 "GCC libquadmath and __float128 support" : -lquadmath ] + [ requires cxx11_auto_declarations cxx11_lambdas cxx11_smart_ptr cxx11_unified_initialization_syntax ] : exp_sinh_quadrature_test_4 ] + [ run exp_sinh_quadrature_test.cpp ../../test/build//boost_unit_test_framework + : : : release TEST5 [ check-target-builds ../config//has_float128 "GCC libquadmath and __float128 support" : -lquadmath ] + [ requires cxx11_auto_declarations cxx11_lambdas cxx11_smart_ptr cxx11_unified_initialization_syntax ] : exp_sinh_quadrature_test_5 ] + [ run exp_sinh_quadrature_test.cpp ../../test/build//boost_unit_test_framework + : : : release TEST6 [ check-target-builds ../config//has_float128 "GCC libquadmath and __float128 support" : -lquadmath ] + [ requires cxx11_auto_declarations cxx11_lambdas cxx11_smart_ptr cxx11_unified_initialization_syntax ] : exp_sinh_quadrature_test_6 ] + [ run exp_sinh_quadrature_test.cpp ../../test/build//boost_unit_test_framework + : : : release TEST7 [ check-target-builds ../config//has_float128 "GCC libquadmath and __float128 support" : -lquadmath ] + [ requires cxx11_auto_declarations cxx11_lambdas cxx11_smart_ptr cxx11_unified_initialization_syntax ] : exp_sinh_quadrature_test_7 ] + [ run exp_sinh_quadrature_test.cpp ../../test/build//boost_unit_test_framework + : : : release TEST8 [ check-target-builds ../config//has_float128 "GCC libquadmath and __float128 support" : -lquadmath ] + [ requires cxx11_auto_declarations cxx11_lambdas cxx11_smart_ptr cxx11_unified_initialization_syntax ] : exp_sinh_quadrature_test_8 ] + [ run exp_sinh_quadrature_test.cpp ../../test/build//boost_unit_test_framework + : : : release TEST9 [ check-target-builds ../config//has_float128 "GCC libquadmath and __float128 support" : -lquadmath ] + [ requires cxx11_auto_declarations cxx11_lambdas cxx11_smart_ptr cxx11_unified_initialization_syntax ] : exp_sinh_quadrature_test_9 ] + + [ run compile_test/exp_sinh_incl_test.cpp compile_test_main : : : [ requires cxx11_auto_declarations cxx11_lambdas cxx11_smart_ptr cxx11_unified_initialization_syntax ] ] + [ run compile_test/sinh_sinh_incl_test.cpp compile_test_main : : : [ requires cxx11_auto_declarations cxx11_lambdas cxx11_smart_ptr cxx11_unified_initialization_syntax ] ] + [ run compile_test/tanh_sinh_incl_test.cpp compile_test_main : : : [ requires cxx11_auto_declarations cxx11_lambdas cxx11_smart_ptr cxx11_unified_initialization_syntax sfinae_expr ] ] + [ compile compile_test/exp_sinh_concept_test.cpp : [ requires cxx11_auto_declarations cxx11_lambdas cxx11_smart_ptr cxx11_unified_initialization_syntax ] ] + [ compile compile_test/sinh_sinh_concept_test.cpp : [ requires cxx11_auto_declarations cxx11_lambdas cxx11_smart_ptr cxx11_unified_initialization_syntax ] ] + [ compile compile_test/tanh_sinh_concept_test.cpp : [ requires cxx11_auto_declarations cxx11_lambdas cxx11_smart_ptr cxx11_unified_initialization_syntax sfinae_expr ] ] + + [ run gauss_quadrature_test.cpp : : : TEST1 [ check-target-builds ../config//has_float128 "GCC libquadmath and __float128 support" : -lquadmath ] + [ requires cxx11_auto_declarations cxx11_lambdas cxx11_smart_ptr cxx11_unified_initialization_syntax ] off msvc:/bigobj release : gauss_quadrature_test_1 ] + [ run gauss_quadrature_test.cpp : : : TEST2 [ check-target-builds ../config//has_float128 "GCC libquadmath and __float128 support" : -lquadmath ] + [ requires cxx11_auto_declarations cxx11_lambdas cxx11_smart_ptr cxx11_unified_initialization_syntax ] off msvc:/bigobj release : gauss_quadrature_test_2 ] + [ run gauss_quadrature_test.cpp : : : TEST3 [ check-target-builds ../config//has_float128 "GCC libquadmath and __float128 support" : -lquadmath ] + [ requires cxx11_auto_declarations cxx11_lambdas cxx11_smart_ptr cxx11_unified_initialization_syntax ] off msvc:/bigobj release : gauss_quadrature_test_3 ] + [ run gauss_kronrod_quadrature_test.cpp : : : TEST1 [ check-target-builds ../config//has_float128 "GCC libquadmath and __float128 support" : -lquadmath ] + [ requires cxx11_auto_declarations cxx11_lambdas cxx11_smart_ptr cxx11_unified_initialization_syntax ] off msvc:/bigobj release : gauss_kronrod_quadrature_test_1 ] + [ run gauss_kronrod_quadrature_test.cpp : : : TEST1A [ check-target-builds ../config//has_float128 "GCC libquadmath and __float128 support" : -lquadmath ] + [ requires cxx11_auto_declarations cxx11_lambdas cxx11_smart_ptr cxx11_unified_initialization_syntax ] off msvc:/bigobj release : gauss_kronrod_quadrature_test_1a ] + [ run gauss_kronrod_quadrature_test.cpp : : : TEST2 [ check-target-builds ../config//has_float128 "GCC libquadmath and __float128 support" : -lquadmath ] + [ requires cxx11_auto_declarations cxx11_lambdas cxx11_smart_ptr cxx11_unified_initialization_syntax ] off msvc:/bigobj release : gauss_kronrod_quadrature_test_2 ] + [ run gauss_kronrod_quadrature_test.cpp : : : TEST3 [ check-target-builds ../config//has_float128 "GCC libquadmath and __float128 support" : -lquadmath ] + [ requires cxx11_auto_declarations cxx11_lambdas cxx11_smart_ptr cxx11_unified_initialization_syntax ] off msvc:/bigobj release : gauss_kronrod_quadrature_test_3 ] + [ run adaptive_gauss_kronrod_quadrature_test.cpp : : : TEST1 [ check-target-builds ../config//has_float128 "GCC libquadmath and __float128 support" : -lquadmath ] + [ requires cxx11_auto_declarations cxx11_lambdas cxx11_smart_ptr cxx11_unified_initialization_syntax ] off msvc:/bigobj release : adaptive_gauss_quadrature_test_1 ] + [ run adaptive_gauss_kronrod_quadrature_test.cpp : : : TEST1A [ check-target-builds ../config//has_float128 "GCC libquadmath and __float128 support" : -lquadmath ] + [ requires cxx11_auto_declarations cxx11_lambdas cxx11_smart_ptr cxx11_unified_initialization_syntax ] off msvc:/bigobj release : adaptive_gauss_quadrature_test_1a ] + [ run adaptive_gauss_kronrod_quadrature_test.cpp : : : TEST2 [ check-target-builds ../config//has_float128 "GCC libquadmath and __float128 support" : -lquadmath ] + [ requires cxx11_auto_declarations cxx11_lambdas cxx11_smart_ptr cxx11_unified_initialization_syntax ] off msvc:/bigobj release : adaptive_gauss_quadrature_test_2 ] + [ run adaptive_gauss_kronrod_quadrature_test.cpp : : : TEST3 [ check-target-builds ../config//has_float128 "GCC libquadmath and __float128 support" : -lquadmath ] + [ requires cxx11_auto_declarations cxx11_lambdas cxx11_smart_ptr cxx11_unified_initialization_syntax ] off msvc:/bigobj release : adaptive_gauss_quadrature_test_3 ] + + [ run naive_monte_carlo_test.cpp ../../atomic/build//boost_atomic : : : + msvc:/bigobj TEST=1 [ requires cxx11_auto_declarations cxx11_lambdas cxx11_unified_initialization_syntax cxx11_hdr_thread cxx11_hdr_atomic cxx11_decltype cxx11_hdr_future cxx11_hdr_chrono cxx11_hdr_random cxx11_allocator ] + linux:"-pthread" : naive_monte_carlo_test_1 + ] + [ run naive_monte_carlo_test.cpp ../../atomic/build//boost_atomic : : : + msvc:/bigobj TEST=2 [ requires cxx11_auto_declarations cxx11_lambdas cxx11_unified_initialization_syntax cxx11_hdr_thread cxx11_hdr_atomic cxx11_decltype cxx11_hdr_future cxx11_hdr_chrono cxx11_hdr_random cxx11_allocator ] + linux:"-pthread" : naive_monte_carlo_test_2 + ] + [ run naive_monte_carlo_test.cpp ../../atomic/build//boost_atomic : : : + msvc:/bigobj TEST=3 [ requires cxx11_auto_declarations cxx11_lambdas cxx11_unified_initialization_syntax cxx11_hdr_thread cxx11_hdr_atomic cxx11_decltype cxx11_hdr_future cxx11_hdr_chrono cxx11_hdr_random cxx11_allocator ] + linux:"-pthread" : naive_monte_carlo_test_3 + ] + [ run naive_monte_carlo_test.cpp ../../atomic/build//boost_atomic : : : + msvc:/bigobj TEST=4 [ requires cxx11_auto_declarations cxx11_lambdas cxx11_unified_initialization_syntax cxx11_hdr_thread cxx11_hdr_atomic cxx11_decltype cxx11_hdr_future cxx11_hdr_chrono cxx11_hdr_random cxx11_allocator ] + linux:"-pthread" : naive_monte_carlo_test_4 + ] + [ run naive_monte_carlo_test.cpp ../../atomic/build//boost_atomic : : : + msvc:/bigobj TEST=5 [ requires cxx11_auto_declarations cxx11_lambdas cxx11_unified_initialization_syntax cxx11_hdr_thread cxx11_hdr_atomic cxx11_decltype cxx11_hdr_future cxx11_hdr_chrono cxx11_hdr_random cxx11_allocator ] + linux:"-pthread" : naive_monte_carlo_test_5 + ] + [ run naive_monte_carlo_test.cpp ../../atomic/build//boost_atomic : : : + msvc:/bigobj TEST=6 [ requires cxx11_auto_declarations cxx11_lambdas cxx11_unified_initialization_syntax cxx11_hdr_thread cxx11_hdr_atomic cxx11_decltype cxx11_hdr_future cxx11_hdr_chrono cxx11_hdr_random cxx11_allocator ] + linux:"-pthread" : naive_monte_carlo_test_6 + ] + [ run naive_monte_carlo_test.cpp ../../atomic/build//boost_atomic : : : + msvc:/bigobj TEST=7 [ requires cxx11_auto_declarations cxx11_lambdas cxx11_unified_initialization_syntax cxx11_hdr_thread cxx11_hdr_atomic cxx11_decltype cxx11_hdr_future cxx11_hdr_chrono cxx11_hdr_random cxx11_allocator ] + linux:"-pthread" : naive_monte_carlo_test_7 + ] + [ run naive_monte_carlo_test.cpp ../../atomic/build//boost_atomic : : : + msvc:/bigobj TEST=8 [ requires cxx11_auto_declarations cxx11_lambdas cxx11_unified_initialization_syntax cxx11_hdr_thread cxx11_hdr_atomic cxx11_decltype cxx11_hdr_future cxx11_hdr_chrono cxx11_hdr_random cxx11_allocator ] + linux:"-pthread" : naive_monte_carlo_test_8 + ] + [ run naive_monte_carlo_test.cpp ../../atomic/build//boost_atomic : : : + msvc:/bigobj TEST=9 [ requires cxx11_auto_declarations cxx11_lambdas cxx11_unified_initialization_syntax cxx11_hdr_thread cxx11_hdr_atomic cxx11_decltype cxx11_hdr_future cxx11_hdr_chrono cxx11_hdr_random cxx11_allocator ] + linux:"-pthread" : naive_monte_carlo_test_9 + ] + [ run naive_monte_carlo_test.cpp ../../atomic/build//boost_atomic : : : + msvc:/bigobj TEST=10 [ requires cxx11_auto_declarations cxx11_lambdas cxx11_unified_initialization_syntax cxx11_hdr_thread cxx11_hdr_atomic cxx11_decltype cxx11_hdr_future cxx11_hdr_chrono cxx11_hdr_random cxx11_allocator ] + linux:"-pthread" : naive_monte_carlo_test_10 + ] + [ run naive_monte_carlo_test.cpp ../../atomic/build//boost_atomic : : : + msvc:/bigobj TEST=11 [ requires cxx11_auto_declarations cxx11_lambdas cxx11_unified_initialization_syntax cxx11_hdr_thread cxx11_hdr_atomic cxx11_decltype cxx11_hdr_future cxx11_hdr_chrono cxx11_hdr_random cxx11_allocator ] + linux:"-pthread" : naive_monte_carlo_test_11 + ] + [ run naive_monte_carlo_test.cpp ../../atomic/build//boost_atomic : : : + msvc:/bigobj TEST=12 [ requires cxx11_auto_declarations cxx11_lambdas cxx11_unified_initialization_syntax cxx11_hdr_thread cxx11_hdr_atomic cxx11_decltype cxx11_hdr_future cxx11_hdr_chrono cxx11_hdr_random cxx11_allocator ] + linux:"-pthread" : naive_monte_carlo_test_12 + ] + [ run naive_monte_carlo_test.cpp ../../atomic/build//boost_atomic : : : + msvc:/bigobj TEST=13 [ requires cxx11_auto_declarations cxx11_lambdas cxx11_unified_initialization_syntax cxx11_hdr_thread cxx11_hdr_atomic cxx11_decltype cxx11_hdr_future cxx11_hdr_chrono cxx11_hdr_random cxx11_allocator ] + linux:"-pthread" : naive_monte_carlo_test_13 + ] + [ run naive_monte_carlo_test.cpp ../../atomic/build//boost_atomic : : : + msvc:/bigobj TEST=14 [ requires cxx11_auto_declarations cxx11_lambdas cxx11_unified_initialization_syntax cxx11_hdr_thread cxx11_hdr_atomic cxx11_decltype cxx11_hdr_future cxx11_hdr_chrono cxx11_hdr_random cxx11_allocator ] + linux:"-pthread" : naive_monte_carlo_test_14 + ] + [ run naive_monte_carlo_test.cpp ../../atomic/build//boost_atomic : : : + msvc:/bigobj TEST=15 [ requires cxx11_auto_declarations cxx11_lambdas cxx11_unified_initialization_syntax cxx11_hdr_thread cxx11_hdr_atomic cxx11_decltype cxx11_hdr_future cxx11_hdr_chrono cxx11_hdr_random cxx11_allocator ] + linux:"-pthread" : naive_monte_carlo_test_15 + ] + [ run naive_monte_carlo_test.cpp ../../atomic/build//boost_atomic : : : + msvc:/bigobj TEST=16 [ requires cxx11_auto_declarations cxx11_lambdas cxx11_unified_initialization_syntax cxx11_hdr_thread cxx11_hdr_atomic cxx11_decltype cxx11_hdr_future cxx11_hdr_chrono cxx11_hdr_random cxx11_allocator ] + linux:"-pthread" : naive_monte_carlo_test_16 + ] + [ run naive_monte_carlo_test.cpp ../../atomic/build//boost_atomic : : : + msvc:/bigobj TEST=17 [ requires cxx11_auto_declarations cxx11_lambdas cxx11_unified_initialization_syntax cxx11_hdr_thread cxx11_hdr_atomic cxx11_decltype cxx11_hdr_future cxx11_hdr_chrono cxx11_hdr_random cxx11_allocator ] + linux:"-pthread" : naive_monte_carlo_test_17 + ] + [ run naive_monte_carlo_test.cpp ../../atomic/build//boost_atomic : : : + msvc:/bigobj TEST=18 [ requires cxx11_auto_declarations cxx11_lambdas cxx11_unified_initialization_syntax cxx11_hdr_thread cxx11_hdr_atomic cxx11_decltype cxx11_hdr_future cxx11_hdr_chrono cxx11_hdr_random cxx11_allocator ] + linux:"-pthread" : naive_monte_carlo_test_18 + ] + [ run naive_monte_carlo_test.cpp ../../atomic/build//boost_atomic : : : + msvc:/bigobj TEST=19 [ requires cxx11_auto_declarations cxx11_lambdas cxx11_unified_initialization_syntax cxx11_hdr_thread cxx11_hdr_atomic cxx11_decltype cxx11_hdr_future cxx11_hdr_chrono cxx11_hdr_random cxx11_allocator ] + linux:"-pthread" : naive_monte_carlo_test_19 + ] + [ run naive_monte_carlo_test.cpp ../../atomic/build//boost_atomic : : : + msvc:/bigobj TEST=20 [ requires cxx11_auto_declarations cxx11_lambdas cxx11_unified_initialization_syntax cxx11_hdr_thread cxx11_hdr_atomic cxx11_decltype cxx11_hdr_future cxx11_hdr_chrono cxx11_hdr_random cxx11_allocator ] + linux:"-pthread" : naive_monte_carlo_test_20 + ] + [ run naive_monte_carlo_test.cpp ../../atomic/build//boost_atomic : : : + msvc:/bigobj TEST=21 [ requires cxx11_auto_declarations cxx11_lambdas cxx11_unified_initialization_syntax cxx11_hdr_thread cxx11_hdr_atomic cxx11_decltype cxx11_hdr_future cxx11_hdr_chrono cxx11_hdr_random cxx11_allocator ] + linux:"-pthread" : naive_monte_carlo_test_21 + ] + [ run naive_monte_carlo_test.cpp ../../atomic/build//boost_atomic : : : + msvc:/bigobj TEST=22 [ requires cxx11_auto_declarations cxx11_lambdas cxx11_unified_initialization_syntax cxx11_hdr_thread cxx11_hdr_atomic cxx11_decltype cxx11_hdr_future cxx11_hdr_chrono cxx11_hdr_random cxx11_allocator ] + linux:"-pthread" : naive_monte_carlo_test_22 + ] + [ run naive_monte_carlo_test.cpp ../../atomic/build//boost_atomic : : : + msvc:/bigobj TEST=23 [ requires cxx11_auto_declarations cxx11_lambdas cxx11_unified_initialization_syntax cxx11_hdr_thread cxx11_hdr_atomic cxx11_decltype cxx11_hdr_future cxx11_hdr_chrono cxx11_hdr_random cxx11_allocator ] + linux:"-pthread" : naive_monte_carlo_test_23 + ] + [ compile compile_test/naive_monte_carlo_incl_test.cpp ../../atomic/build//boost_atomic : + [ requires cxx11_auto_declarations cxx11_lambdas cxx11_unified_initialization_syntax cxx11_hdr_thread cxx11_hdr_atomic cxx11_decltype cxx11_hdr_future cxx11_hdr_chrono cxx11_hdr_random cxx11_allocator ] + linux:"-pthread" + ] + [ compile compile_test/naive_monte_carlo_concept_test.cpp ../../atomic/build//boost_atomic : + [ requires cxx11_auto_declarations cxx11_lambdas cxx11_unified_initialization_syntax cxx11_hdr_thread cxx11_hdr_atomic cxx11_decltype cxx11_hdr_future cxx11_hdr_chrono cxx11_hdr_random cxx11_allocator ] + linux:"-pthread" + ] + + [ compile compile_test/gauss_concept_test.cpp : [ requires cxx11_auto_declarations cxx11_lambdas cxx11_smart_ptr cxx11_unified_initialization_syntax ] ] + [ compile compile_test/gauss_kronrod_concept_test.cpp : [ requires cxx11_auto_declarations cxx11_lambdas cxx11_smart_ptr cxx11_unified_initialization_syntax ] ] + + [ run test_numerical_differentiation.cpp ../../test/build//boost_unit_test_framework : : : msvc:/bigobj [ requires cxx11_auto_declarations cxx11_constexpr ] ] + [ run compile_test/numerical_differentiation_incl_test.cpp compile_test_main : : : [ requires cxx11_auto_declarations cxx11_constexpr ] ] + [ compile compile_test/numerical_differentiation_concept_test.cpp : [ requires cxx11_auto_declarations cxx11_constexpr ] ] + [ run test_autodiff_1.cpp ../../test/build//boost_unit_test_framework : : : gcc-mingw:-Wa,-mbig-obj off msvc:/bigobj release [ check-target-builds ../config//has_float128 "GCC libquadmath and __float128 support" : -lquadmath ] [ requires cxx11_inline_namespaces ] ] + [ run test_autodiff_2.cpp ../../test/build//boost_unit_test_framework : : : gcc-mingw:-Wa,-mbig-obj off msvc:/bigobj release [ check-target-builds ../config//has_float128 "GCC libquadmath and __float128 support" : -lquadmath ] [ requires cxx11_inline_namespaces ] ] + [ run test_autodiff_3.cpp ../../test/build//boost_unit_test_framework : : : gcc-mingw:-Wa,-mbig-obj off msvc:/bigobj release [ check-target-builds ../config//has_float128 "GCC libquadmath and __float128 support" : -lquadmath ] [ requires cxx11_inline_namespaces ] ] + [ run test_autodiff_4.cpp ../../test/build//boost_unit_test_framework : : : gcc-mingw:-Wa,-mbig-obj off msvc:/bigobj release [ check-target-builds ../config//has_float128 "GCC libquadmath and __float128 support" : -lquadmath ] [ requires cxx11_inline_namespaces ] ] + [ run test_autodiff_5.cpp ../../test/build//boost_unit_test_framework : : : gcc-mingw:-Wa,-mbig-obj off msvc:/bigobj release [ check-target-builds ../config//has_float128 "GCC libquadmath and __float128 support" : -lquadmath ] [ requires cxx11_inline_namespaces ] ] + [ run test_autodiff_6.cpp ../../test/build//boost_unit_test_framework : : : gcc-mingw:-Wa,-mbig-obj off msvc:/bigobj release [ check-target-builds ../config//has_float128 "GCC libquadmath and __float128 support" : -lquadmath ] [ requires cxx11_inline_namespaces ] ] + [ run test_autodiff_7.cpp ../../test/build//boost_unit_test_framework : : : gcc-mingw:-Wa,-mbig-obj off msvc:/bigobj release [ check-target-builds ../config//has_float128 "GCC libquadmath and __float128 support" : -lquadmath ] [ requires cxx11_inline_namespaces ] ] + [ run test_autodiff_8.cpp ../../test/build//boost_unit_test_framework : : : gcc-mingw:-Wa,-mbig-obj off msvc:/bigobj release [ check-target-builds ../config//has_float128 "GCC libquadmath and __float128 support" : -lquadmath ] [ requires cxx11_inline_namespaces ] ] + [ compile compile_test/autodiff_incl_test.cpp : gcc-mingw:-Wa,-mbig-obj off msvc:/bigobj release [ check-target-builds ../config//has_float128 "GCC libquadmath and __float128 support" : -lquadmath ] [ requires cxx11_inline_namespaces ] ] +; + +# +# These tests are run by default when you invoke the Jamfile, but +# they are deliberately NOT run from the CI scripts as they soak up +# too much time: +# +test-suite long-running-tests : + [ run test_0F1.cpp ../../test/build//boost_unit_test_framework : : : [ requires cxx11_auto_declarations cxx11_lambdas cxx11_unified_initialization_syntax cxx11_smart_ptr ] TEST=3 release [ check-target-builds ../config//has_float128 "GCC libquadmath and __float128 support" : BOOST_MATH_TEST_FLOAT128 "-Bstatic -lquadmath -Bdynamic" ] : test_0F1_3 ] + [ run test_0F1.cpp ../../test/build//boost_unit_test_framework : : : [ requires cxx11_auto_declarations cxx11_lambdas cxx11_unified_initialization_syntax cxx11_smart_ptr ] TEST=4 release : test_0F1_4 ] + [ run test_1F1.cpp ../../test/build//boost_unit_test_framework : : : [ requires cxx11_auto_declarations cxx11_lambdas cxx11_unified_initialization_syntax cxx11_smart_ptr ] TEST=5 clang:-Wno-literal-range : test_1F1_real_concept ] + [ run test_1F1.cpp ../../test/build//boost_unit_test_framework : : : [ requires cxx11_auto_declarations cxx11_lambdas cxx11_unified_initialization_syntax cxx11_smart_ptr ] TEST=6 release [ check-target-builds ../config//has_float128 "GCC libquadmath and __float128 support" : BOOST_MATH_TEST_FLOAT128 "-Bstatic -lquadmath -Bdynamic" ] clang:-Wno-literal-range : test_1F1_quad ] + [ run test_1F1.cpp ../../test/build//boost_unit_test_framework : : : [ requires cxx11_auto_declarations cxx11_lambdas cxx11_unified_initialization_syntax cxx11_smart_ptr ] TEST=7 release clang:-Wno-literal-range : test_1F1_dec_40 ] + [ run test_1F1_regularized.cpp ../../test/build//boost_unit_test_framework : : : [ requires cxx11_auto_declarations cxx11_lambdas cxx11_unified_initialization_syntax cxx11_smart_ptr ] TEST=6 release [ check-target-builds ../config//has_float128 "GCC libquadmath and __float128 support" : BOOST_MATH_TEST_FLOAT128 "-Bstatic -lquadmath -Bdynamic" ] clang:-Wno-literal-range : test_1F1_regularized_quad ] + [ run test_1F1_regularized.cpp ../../test/build//boost_unit_test_framework : : : [ requires cxx11_auto_declarations cxx11_lambdas cxx11_unified_initialization_syntax cxx11_smart_ptr ] TEST=7 release clang:-Wno-literal-range : test_1F1_regularized_dec_40 ] + [ run test_1F1_log.cpp ../../test/build//boost_unit_test_framework : : : release [ requires cxx11_auto_declarations cxx11_lambdas cxx11_unified_initialization_syntax cxx11_smart_ptr ] TEST=6 release [ check-target-builds ../config//has_float128 "GCC libquadmath and __float128 support" : BOOST_MATH_TEST_FLOAT128 "-Bstatic -lquadmath -Bdynamic" ] clang:-Wno-literal-range : test_1F1_log_quad ] + [ run test_1F1_log.cpp ../../test/build//boost_unit_test_framework : : : release [ requires cxx11_auto_declarations cxx11_lambdas cxx11_unified_initialization_syntax cxx11_smart_ptr ] TEST=7 release clang:-Wno-literal-range : test_1F1_log_dec_40 ] + [ run test_pFq.cpp ../../test/build//boost_unit_test_framework : : : [ requires cxx11_hdr_initializer_list cxx11_auto_declarations cxx11_lambdas cxx11_unified_initialization_syntax cxx11_smart_ptr ] TEST=6 release [ check-target-builds ../config//has_float128 "GCC libquadmath and __float128 support" : BOOST_MATH_TEST_FLOAT128 "-Bstatic -lquadmath -Bdynamic" ] clang:-Wno-literal-range : test_pFq_quad ] + [ run test_pFq.cpp ../../test/build//boost_unit_test_framework : : : [ requires cxx11_hdr_initializer_list cxx11_auto_declarations cxx11_lambdas cxx11_unified_initialization_syntax cxx11_smart_ptr ] TEST=7 release clang:-Wno-literal-range : test_pFq_dec_40 ] + [ run test_pFq_precision.cpp ../tools//mpfr ../tools//gmp ../../test/build//boost_unit_test_framework /boost/system//boost_system /boost/chrono//boost_chrono : : : [ check-target-builds ../config//has_mpfr : : no ] [ requires cxx11_hdr_initializer_list cxx11_auto_declarations cxx11_lambdas cxx11_unified_initialization_syntax cxx11_smart_ptr ] release clang:-Wno-literal-range ] + [ run test_constant_generate.cpp : : : release USE_CPP_FLOAT=1 off:no ] +; + +build-project ../example ; +# Expect policy_ref_snips13 to fail (message about no Cauchy Mean). + + +rule get_float128_tests +{ + local result ; + for local source in [ glob float128/*.cpp ] + { + result += [ run $(source) + /boost/test//boost_unit_test_framework/static + /boost/regex//boost_regex/static + : # command line + : # input files + : # requirements + [ check-target-builds ../config//has_intel_quad "Intel _Quad datatype support" : -Qoption,cpp,--extended_float_type BOOST_MATH_USE_FLOAT128 ] + [ check-target-builds ../config//has_float128 "GCC libquadmath and __float128 support" : -lquadmath ] + [ check-target-builds ../config//has_128bit_floatmax_t "128-bit floatmax_t" : : no ] + BOOST_ALL_NO_LIB + : $(source:B)_floatmax_t ] ; + } + return $(result) ; +} + +test-suite float128_tests : [ get_float128_tests ] ; diff --git a/test/test_issue396_cpp_bin_float.cpp b/test/test_issue396_cpp_bin_float.cpp new file mode 100644 index 000000000..f513f7d68 --- /dev/null +++ b/test/test_issue396_cpp_bin_float.cpp @@ -0,0 +1,62 @@ +/////////////////////////////////////////////////////////////////// +// Copyright Christopher Kormanyos 2020. +// Copyright John Maddock 2020. +// Distributed under the Boost Software License, +// Version 1.0. (See accompanying file LICENSE_1_0.txt +// or copy at http://www.boost.org/LICENSE_1_0.txt) +// + +#include "test_issue396_data_and_checker.ipp" +#include +#include +#include + +#define BOOST_TEST_MAIN +#include // Boost.Test + +// In issue 396, a bug regarding overflow was traced back to the tgamma function. +// This test file tests the fix in 433 and its corresponding original bug report code. + +namespace local +{ + +bool test_tgamma_for_issue396_cpp_bin_float() +{ + typedef boost::multiprecision::number, boost::multiprecision::et_off> cpp_bin_float_type_020; + typedef boost::multiprecision::number, boost::multiprecision::et_off> cpp_bin_float_type_030; + typedef boost::multiprecision::number, boost::multiprecision::et_off> cpp_bin_float_type_040; + typedef boost::multiprecision::number, boost::multiprecision::et_off> cpp_bin_float_type_049; + typedef boost::multiprecision::number, boost::multiprecision::et_off> cpp_bin_float_type_050; + typedef boost::multiprecision::number, boost::multiprecision::et_off> cpp_bin_float_type_051; + typedef boost::multiprecision::number, boost::multiprecision::et_off> cpp_bin_float_type_101; + typedef boost::multiprecision::number, boost::multiprecision::et_off> cpp_bin_float_type_501; + + const bool cpp_bin_float_020_is_ok = boost::math::detail::test_issue396_value_checker(); + const bool cpp_bin_float_030_is_ok = boost::math::detail::test_issue396_value_checker(); + const bool cpp_bin_float_040_is_ok = boost::math::detail::test_issue396_value_checker(); + const bool cpp_bin_float_049_is_ok = boost::math::detail::test_issue396_value_checker(); + const bool cpp_bin_float_050_is_ok = boost::math::detail::test_issue396_value_checker(); + const bool cpp_bin_float_051_is_ok = boost::math::detail::test_issue396_value_checker(); + const bool cpp_bin_float_101_is_ok = boost::math::detail::test_issue396_value_checker(); + const bool cpp_bin_float_501_is_ok = boost::math::detail::test_issue396_value_checker(); + + const bool cpp_bin_float_is_ok = ( cpp_bin_float_020_is_ok + && cpp_bin_float_030_is_ok + && cpp_bin_float_040_is_ok + && cpp_bin_float_049_is_ok + && cpp_bin_float_050_is_ok + && cpp_bin_float_051_is_ok + && cpp_bin_float_101_is_ok + && cpp_bin_float_501_is_ok); + + return cpp_bin_float_is_ok; +} + +} + +BOOST_AUTO_TEST_CASE(test_tgamma_for_issue396_cpp_bin_float_tag) +{ + const bool cpp_bin_float_is_ok = local::test_tgamma_for_issue396_cpp_bin_float(); + + BOOST_CHECK(cpp_bin_float_is_ok); +} diff --git a/test/test_issue396_cpp_dec_float.cpp b/test/test_issue396_cpp_dec_float.cpp new file mode 100644 index 000000000..35b8ef382 --- /dev/null +++ b/test/test_issue396_cpp_dec_float.cpp @@ -0,0 +1,62 @@ +/////////////////////////////////////////////////////////////////// +// Copyright Christopher Kormanyos 2020. +// Copyright John Maddock 2020. +// Distributed under the Boost Software License, +// Version 1.0. (See accompanying file LICENSE_1_0.txt +// or copy at http://www.boost.org/LICENSE_1_0.txt) +// + +#include "test_issue396_data_and_checker.ipp" +#include +#include +#include + +#define BOOST_TEST_MAIN +#include // Boost.Test + +// In issue 396, a bug regarding overflow was traced back to the tgamma function. +// This test file tests the fix in 433 and its corresponding original bug report code. + +namespace local { + +bool test_tgamma_for_issue396_cpp_dec_float() +{ + typedef boost::multiprecision::number, boost::multiprecision::et_off> cpp_dec_float_type_020; + typedef boost::multiprecision::number, boost::multiprecision::et_off> cpp_dec_float_type_030; + typedef boost::multiprecision::number, boost::multiprecision::et_off> cpp_dec_float_type_040; + typedef boost::multiprecision::number, boost::multiprecision::et_off> cpp_dec_float_type_049; + typedef boost::multiprecision::number, boost::multiprecision::et_off> cpp_dec_float_type_050; + typedef boost::multiprecision::number, boost::multiprecision::et_off> cpp_dec_float_type_051; + typedef boost::multiprecision::number, boost::multiprecision::et_off> cpp_dec_float_type_101; + typedef boost::multiprecision::number, boost::multiprecision::et_off> cpp_dec_float_type_501; + + const bool cpp_dec_float_020_is_ok = boost::math::detail::test_issue396_value_checker(); + const bool cpp_dec_float_030_is_ok = boost::math::detail::test_issue396_value_checker(); + const bool cpp_dec_float_040_is_ok = boost::math::detail::test_issue396_value_checker(); + const bool cpp_dec_float_049_is_ok = boost::math::detail::test_issue396_value_checker(); + const bool cpp_dec_float_050_is_ok = boost::math::detail::test_issue396_value_checker(); + const bool cpp_dec_float_051_is_ok = boost::math::detail::test_issue396_value_checker(); + const bool cpp_dec_float_101_is_ok = boost::math::detail::test_issue396_value_checker(); + const bool cpp_dec_float_501_is_ok = boost::math::detail::test_issue396_value_checker(); + + const bool cpp_dec_float_is_ok = ( cpp_dec_float_020_is_ok + && cpp_dec_float_030_is_ok + && cpp_dec_float_040_is_ok + && cpp_dec_float_049_is_ok + && cpp_dec_float_050_is_ok + && cpp_dec_float_051_is_ok + && cpp_dec_float_101_is_ok + && cpp_dec_float_501_is_ok); + + return cpp_dec_float_is_ok; +} + +} + +BOOST_AUTO_TEST_CASE(test_tgamma_for_issue396_cpp_dec_float_tag) +{ + const bool cpp_dec_float_is_ok = local::test_tgamma_for_issue396_cpp_dec_float(); + + BOOST_CHECK(cpp_dec_float_is_ok); +} + diff --git a/test/test_issue396_data_and_checker.ipp b/test/test_issue396_data_and_checker.ipp new file mode 100644 index 000000000..71d21b8b2 --- /dev/null +++ b/test/test_issue396_data_and_checker.ipp @@ -0,0 +1,58 @@ +#ifndef BOOST_MATH_TEST_ISSUE396_DATA_AND_CHECKER_IPP_ +#define BOOST_MATH_TEST_ISSUE396_DATA_AND_CHECKER_IPP_ + +#include +#include +#include + +#include +#include +#include + +namespace boost { namespace math { namespace detail { + +const boost::array& test_issue396_control_strings() +{ + // Table[N[Gamma[(1/2) + (10^n)], 503], {n, 0, 3, 1}] + + static const boost::array control_strings = + {{ + std::string("0.88622692545275801364908374167057259139877472806119356410690389492645564229551609068747532836927233270811341181214128533311807643286221130126254685480139353423101884932655256142496258651447541311446604768963398140008731950767573986025835009509261700929272348724745632015696088776295310820270966625045319920380686673873757671683399489468292591820439772558258086938002953369671589566640492742312409245102732742609780662578082373375752136938052805399806355360503018602224183618264830685404716174941583421211"), + std::string("1.1332783889487855673345741655888924755602983082751597766087234145294833900560041537176305387276072906583502717008932373348895801731780765775979953796646009714415152490764416630481375706606053932396039541459764525989187023837695167161085523804417015113740063535865261183579508922972990386756543208549178543857406373798865630303794109491220205170302558277398183764099268751365861892723863412249690833216320407918186480305202146014474770321625907339955121137559264239090240758401696425720048012081453338360E6"), + std::string("9.3209631040827166083491098091419104379064970381623611540161175194120765977611623552218076053836060223609993676387199220631835256331102029826429784793420637988460945604451237342972023988743201341318701614328454618664952897316247603329530308777063116667275003586843755354841307657702809317290363831151480295446074722690100652644579131609996151999119113967501099655433566352849645431012667388627160383486515144610582794470005796689975604764040892168183647321540427819244511610500074895473959438490375652158E156"), + std::string("1.2723011956950554641822441803774445695066347098655278283939929838804808618389143636393314317333622154343715992535881414698586440455330620652019981627229614973177953241634213768203151670660953863412381880742653187501307209325406338924004280546485392703623101051957976224599412003938216329590158926122017907280168159527761842471509358725974702333390709735919152262756462872191402491961250987725812831155116532550035967994387094267848607390288008530653715254376729558412833771092612838971719786622446726968E2566") + }}; + + return control_strings; +} + +template +bool test_issue396_value_checker() +{ + typedef BigFloatType floating_point_type; + + boost::uint32_t ten_pow_n = UINT32_C(1); + + const floating_point_type tol = std::numeric_limits::epsilon() * UINT32_C(5000); + + bool result_is_ok = true; + + for(std::size_t i = 0U; i < test_issue396_control_strings().size(); ++i) + { + const floating_point_type g = boost::math::tgamma(boost::math::constants::half() + ten_pow_n); + + ten_pow_n *= UINT32_C(10); + + using std::fabs; + + const floating_point_type closeness = fabs(1 - (g / boost::lexical_cast(test_issue396_control_strings().at(i)))); + + result_is_ok &= (closeness < tol); + } + + return result_is_ok; +} + +} } } // namespace boost::math::detail + +#endif // BOOST_MATH_TEST_ISSUE396_DATA_AND_CHECKER_IPP_ diff --git a/test/test_issue396_original_issue.cpp b/test/test_issue396_original_issue.cpp new file mode 100644 index 000000000..2f685c010 --- /dev/null +++ b/test/test_issue396_original_issue.cpp @@ -0,0 +1,46 @@ +/////////////////////////////////////////////////////////////////// +// Copyright Christopher Kormanyos 2020. +// Copyright John Maddock 2020. +// Distributed under the Boost Software License, +// Version 1.0. (See accompanying file LICENSE_1_0.txt +// or copy at http://www.boost.org/LICENSE_1_0.txt) +// + +#include +#include + +#define BOOST_TEST_MAIN +#include // Boost.Test + +// In issue 396, a bug regarding overflow was traced back to the tgamma function. +// This test file tests the fix in 433 and its corresponding original bug report code. + +namespace local { + +bool test_cdf____for_issue396_bug_report___() +{ + typedef boost::math::beta_distribution b_dist_type; + + b_dist_type b_dist(1.0, 2.0); + + boost::multiprecision::cpp_dec_float_100 test = -boost::math::cdf(boost::math::complement(b_dist, 0.5)); + + using std::fabs; + + const boost::multiprecision::cpp_dec_float_100 control = boost::multiprecision::cpp_dec_float_100(-0.25F); + + const boost::multiprecision::cpp_dec_float_100 closeness = fabs(1 - fabs(test / control)); + + const bool result_is_ok = (closeness < std::numeric_limits::epsilon() * 10U); + + return result_is_ok; +} + +} + +BOOST_AUTO_TEST_CASE(test_cdf____for_issue396_bug_report____tag) +{ + const bool cpp_bug_check_is_ok = local::test_cdf____for_issue396_bug_report___(); + + BOOST_CHECK(cpp_bug_check_is_ok); +} diff --git a/test/test_tgamma_for_issue396.cpp b/test/test_tgamma_for_issue396.cpp deleted file mode 100644 index 24181b8ad..000000000 --- a/test/test_tgamma_for_issue396.cpp +++ /dev/null @@ -1,169 +0,0 @@ -/////////////////////////////////////////////////////////////////// -// Copyright Christopher Kormanyos 2020. -// Copyright John Maddock 2020. -// Distributed under the Boost Software License, -// Version 1.0. (See accompanying file LICENSE_1_0.txt -// or copy at http://www.boost.org/LICENSE_1_0.txt) -// - -#define BOOST_TEST_MAIN -#include // Boost.Test - -#include -#include -#include -#include -#include -#include - -// In issue 396, a bug regarding overflow was traced back to the tgamma function. -// This test file tests the fix in 433 and its corresponding original bug report code. - -namespace local { - -namespace detail { - -template -bool test_tgamma_for_issue396_value_checker() -{ - typedef BigFloatType floating_point_type; - - // Table[N[Gamma[(1/2) + (10^n)], 503], {n, 0, 3, 1}] - - const boost::array control = - {{ - floating_point_type("0.88622692545275801364908374167057259139877472806119356410690389492645564229551609068747532836927233270811341181214128533311807643286221130126254685480139353423101884932655256142496258651447541311446604768963398140008731950767573986025835009509261700929272348724745632015696088776295310820270966625045319920380686673873757671683399489468292591820439772558258086938002953369671589566640492742312409245102732742609780662578082373375752136938052805399806355360503018602224183618264830685404716174941583421211"), - floating_point_type("1.1332783889487855673345741655888924755602983082751597766087234145294833900560041537176305387276072906583502717008932373348895801731780765775979953796646009714415152490764416630481375706606053932396039541459764525989187023837695167161085523804417015113740063535865261183579508922972990386756543208549178543857406373798865630303794109491220205170302558277398183764099268751365861892723863412249690833216320407918186480305202146014474770321625907339955121137559264239090240758401696425720048012081453338360E6"), - floating_point_type("9.3209631040827166083491098091419104379064970381623611540161175194120765977611623552218076053836060223609993676387199220631835256331102029826429784793420637988460945604451237342972023988743201341318701614328454618664952897316247603329530308777063116667275003586843755354841307657702809317290363831151480295446074722690100652644579131609996151999119113967501099655433566352849645431012667388627160383486515144610582794470005796689975604764040892168183647321540427819244511610500074895473959438490375652158E156"), - floating_point_type("1.2723011956950554641822441803774445695066347098655278283939929838804808618389143636393314317333622154343715992535881414698586440455330620652019981627229614973177953241634213768203151670660953863412381880742653187501307209325406338924004280546485392703623101051957976224599412003938216329590158926122017907280168159527761842471509358725974702333390709735919152262756462872191402491961250987725812831155116532550035967994387094267848607390288008530653715254376729558412833771092612838971719786622446726968E2566") - }}; - - boost::uint32_t ten_pow_n = UINT32_C(1); - - const floating_point_type tol = std::numeric_limits::epsilon() * UINT32_C(5000); - - bool result_is_ok = true; - - for(typename boost::array::size_type i = 0U; i < control.size(); ++i) - { - const floating_point_type g = boost::math::tgamma(boost::math::constants::half() + ten_pow_n); - - ten_pow_n *= UINT32_C(10); - - using std::fabs; - - const floating_point_type closeness = fabs(1 - (g / control[i])); - - result_is_ok &= (closeness < tol); - } - - return result_is_ok; -} - -} // namespace detail - -bool test_cdf____for_issue396_bug_report___() -{ - typedef boost::math::beta_distribution b_dist_type; - - b_dist_type b_dist(1.0, 2.0); - - boost::multiprecision::cpp_dec_float_100 test = -boost::math::cdf(boost::math::complement(b_dist, 0.5)); - - using std::fabs; - - const boost::multiprecision::cpp_dec_float_100 control = boost::multiprecision::cpp_dec_float_100(-0.25F); - - const boost::multiprecision::cpp_dec_float_100 closeness = fabs(1 - fabs(test / control)); - - const bool result_is_ok = (closeness < std::numeric_limits::epsilon() * 10U); - - return result_is_ok; -} - -bool test_tgamma_for_issue396_cpp_dec_float() -{ - typedef boost::multiprecision::number, boost::multiprecision::et_off> cpp_dec_float_type_020; - typedef boost::multiprecision::number, boost::multiprecision::et_off> cpp_dec_float_type_030; - typedef boost::multiprecision::number, boost::multiprecision::et_off> cpp_dec_float_type_040; - typedef boost::multiprecision::number, boost::multiprecision::et_off> cpp_dec_float_type_049; - typedef boost::multiprecision::number, boost::multiprecision::et_off> cpp_dec_float_type_050; - typedef boost::multiprecision::number, boost::multiprecision::et_off> cpp_dec_float_type_051; - typedef boost::multiprecision::number, boost::multiprecision::et_off> cpp_dec_float_type_101; - typedef boost::multiprecision::number, boost::multiprecision::et_off> cpp_dec_float_type_501; - - const bool cpp_dec_float_020_is_ok = detail::test_tgamma_for_issue396_value_checker(); - const bool cpp_dec_float_030_is_ok = detail::test_tgamma_for_issue396_value_checker(); - const bool cpp_dec_float_040_is_ok = detail::test_tgamma_for_issue396_value_checker(); - const bool cpp_dec_float_049_is_ok = detail::test_tgamma_for_issue396_value_checker(); - const bool cpp_dec_float_050_is_ok = detail::test_tgamma_for_issue396_value_checker(); - const bool cpp_dec_float_051_is_ok = detail::test_tgamma_for_issue396_value_checker(); - const bool cpp_dec_float_101_is_ok = detail::test_tgamma_for_issue396_value_checker(); - const bool cpp_dec_float_501_is_ok = detail::test_tgamma_for_issue396_value_checker(); - - const bool cpp_dec_float_is_ok = ( cpp_dec_float_020_is_ok - && cpp_dec_float_030_is_ok - && cpp_dec_float_040_is_ok - && cpp_dec_float_049_is_ok - && cpp_dec_float_050_is_ok - && cpp_dec_float_051_is_ok - && cpp_dec_float_101_is_ok - && cpp_dec_float_501_is_ok); - - return cpp_dec_float_is_ok; -} - -bool test_tgamma_for_issue396_cpp_bin_float() -{ - typedef boost::multiprecision::number, boost::multiprecision::et_off> cpp_bin_float_type_020; - typedef boost::multiprecision::number, boost::multiprecision::et_off> cpp_bin_float_type_030; - typedef boost::multiprecision::number, boost::multiprecision::et_off> cpp_bin_float_type_040; - typedef boost::multiprecision::number, boost::multiprecision::et_off> cpp_bin_float_type_049; - typedef boost::multiprecision::number, boost::multiprecision::et_off> cpp_bin_float_type_050; - typedef boost::multiprecision::number, boost::multiprecision::et_off> cpp_bin_float_type_051; - typedef boost::multiprecision::number, boost::multiprecision::et_off> cpp_bin_float_type_101; - typedef boost::multiprecision::number, boost::multiprecision::et_off> cpp_bin_float_type_501; - - const bool cpp_bin_float_020_is_ok = detail::test_tgamma_for_issue396_value_checker(); - const bool cpp_bin_float_030_is_ok = detail::test_tgamma_for_issue396_value_checker(); - const bool cpp_bin_float_040_is_ok = detail::test_tgamma_for_issue396_value_checker(); - const bool cpp_bin_float_049_is_ok = detail::test_tgamma_for_issue396_value_checker(); - const bool cpp_bin_float_050_is_ok = detail::test_tgamma_for_issue396_value_checker(); - const bool cpp_bin_float_051_is_ok = detail::test_tgamma_for_issue396_value_checker(); - const bool cpp_bin_float_101_is_ok = detail::test_tgamma_for_issue396_value_checker(); - const bool cpp_bin_float_501_is_ok = detail::test_tgamma_for_issue396_value_checker(); - - const bool cpp_bin_float_is_ok = ( cpp_bin_float_020_is_ok - && cpp_bin_float_030_is_ok - && cpp_bin_float_040_is_ok - && cpp_bin_float_049_is_ok - && cpp_bin_float_050_is_ok - && cpp_bin_float_051_is_ok - && cpp_bin_float_101_is_ok - && cpp_bin_float_501_is_ok); - - return cpp_bin_float_is_ok; -} - -} // namespace local - -BOOST_AUTO_TEST_CASE(test_cdf____for_issue396_bug_report____tag) -{ - const bool cpp_bug_check_is_ok = local::test_cdf____for_issue396_bug_report___(); - - BOOST_CHECK(cpp_bug_check_is_ok); -} - -BOOST_AUTO_TEST_CASE(test_tgamma_for_issue396_cpp_dec_float_tag) -{ - const bool cpp_dec_float_is_ok = local::test_tgamma_for_issue396_cpp_dec_float(); - - BOOST_CHECK(cpp_dec_float_is_ok); -} - -BOOST_AUTO_TEST_CASE(test_tgamma_for_issue396_cpp_bin_float_tag) -{ - const bool cpp_bin_float_is_ok = local::test_tgamma_for_issue396_cpp_bin_float(); - - BOOST_CHECK(cpp_bin_float_is_ok); -} From 5f9c76032129299b381b7589a5abd02c577046cc Mon Sep 17 00:00:00 2001 From: Christopher Kormanyos Date: Wed, 16 Dec 2020 11:42:25 +0100 Subject: [PATCH 08/17] Work around old msvc internal compiler error --- test/test_issue396_cpp_bin_float.cpp | 43 +++++++++++++++++- test/test_issue396_cpp_dec_float.cpp | 42 +++++++++++++++++- test/test_issue396_data_and_checker.ipp | 58 ------------------------- 3 files changed, 82 insertions(+), 61 deletions(-) delete mode 100644 test/test_issue396_data_and_checker.ipp diff --git a/test/test_issue396_cpp_bin_float.cpp b/test/test_issue396_cpp_bin_float.cpp index f513f7d68..1c0508b6a 100644 --- a/test/test_issue396_cpp_bin_float.cpp +++ b/test/test_issue396_cpp_bin_float.cpp @@ -6,7 +6,6 @@ // or copy at http://www.boost.org/LICENSE_1_0.txt) // -#include "test_issue396_data_and_checker.ipp" #include #include #include @@ -17,8 +16,48 @@ // In issue 396, a bug regarding overflow was traced back to the tgamma function. // This test file tests the fix in 433 and its corresponding original bug report code. -namespace local +namespace boost { namespace math { namespace detail { + +template +bool test_issue396_value_checker() { + typedef BigFloatType floating_point_type; + + // Table[N[Gamma[(1/2) + (10^n)], 503], {n, 0, 3, 1}] + + const boost::array control_values = + {{ + floating_point_type("0.88622692545275801364908374167057259139877472806119356410690389492645564229551609068747532836927233270811341181214128533311807643286221130126254685480139353423101884932655256142496258651447541311446604768963398140008731950767573986025835009509261700929272348724745632015696088776295310820270966625045319920380686673873757671683399489468292591820439772558258086938002953369671589566640492742312409245102732742609780662578082373375752136938052805399806355360503018602224183618264830685404716174941583421211"), + floating_point_type("1.1332783889487855673345741655888924755602983082751597766087234145294833900560041537176305387276072906583502717008932373348895801731780765775979953796646009714415152490764416630481375706606053932396039541459764525989187023837695167161085523804417015113740063535865261183579508922972990386756543208549178543857406373798865630303794109491220205170302558277398183764099268751365861892723863412249690833216320407918186480305202146014474770321625907339955121137559264239090240758401696425720048012081453338360E6"), + floating_point_type("9.3209631040827166083491098091419104379064970381623611540161175194120765977611623552218076053836060223609993676387199220631835256331102029826429784793420637988460945604451237342972023988743201341318701614328454618664952897316247603329530308777063116667275003586843755354841307657702809317290363831151480295446074722690100652644579131609996151999119113967501099655433566352849645431012667388627160383486515144610582794470005796689975604764040892168183647321540427819244511610500074895473959438490375652158E156"), + floating_point_type("1.2723011956950554641822441803774445695066347098655278283939929838804808618389143636393314317333622154343715992535881414698586440455330620652019981627229614973177953241634213768203151670660953863412381880742653187501307209325406338924004280546485392703623101051957976224599412003938216329590158926122017907280168159527761842471509358725974702333390709735919152262756462872191402491961250987725812831155116532550035967994387094267848607390288008530653715254376729558412833771092612838971719786622446726968E2566") + }}; + + boost::uint32_t ten_pow_n = UINT32_C(1); + + const floating_point_type tol = std::numeric_limits::epsilon() * UINT32_C(5000); + + bool result_is_ok = true; + + for(std::size_t i = 0U; i < control_values.size(); ++i) + { + const floating_point_type g = boost::math::tgamma(boost::math::constants::half() + ten_pow_n); + + ten_pow_n *= UINT32_C(10); + + using std::fabs; + + const floating_point_type closeness = fabs(1 - (g / control_values[i])); + + result_is_ok &= (closeness < tol); + } + + return result_is_ok; +} + +} } } // namespace boost::math::detail + +namespace local { bool test_tgamma_for_issue396_cpp_bin_float() { diff --git a/test/test_issue396_cpp_dec_float.cpp b/test/test_issue396_cpp_dec_float.cpp index 35b8ef382..4045184be 100644 --- a/test/test_issue396_cpp_dec_float.cpp +++ b/test/test_issue396_cpp_dec_float.cpp @@ -6,7 +6,6 @@ // or copy at http://www.boost.org/LICENSE_1_0.txt) // -#include "test_issue396_data_and_checker.ipp" #include #include #include @@ -17,6 +16,47 @@ // In issue 396, a bug regarding overflow was traced back to the tgamma function. // This test file tests the fix in 433 and its corresponding original bug report code. +namespace boost { namespace math { namespace detail { + +template +bool test_issue396_value_checker() +{ + typedef BigFloatType floating_point_type; + + // Table[N[Gamma[(1/2) + (10^n)], 503], {n, 0, 3, 1}] + + const boost::array control_values = + {{ + floating_point_type("0.88622692545275801364908374167057259139877472806119356410690389492645564229551609068747532836927233270811341181214128533311807643286221130126254685480139353423101884932655256142496258651447541311446604768963398140008731950767573986025835009509261700929272348724745632015696088776295310820270966625045319920380686673873757671683399489468292591820439772558258086938002953369671589566640492742312409245102732742609780662578082373375752136938052805399806355360503018602224183618264830685404716174941583421211"), + floating_point_type("1.1332783889487855673345741655888924755602983082751597766087234145294833900560041537176305387276072906583502717008932373348895801731780765775979953796646009714415152490764416630481375706606053932396039541459764525989187023837695167161085523804417015113740063535865261183579508922972990386756543208549178543857406373798865630303794109491220205170302558277398183764099268751365861892723863412249690833216320407918186480305202146014474770321625907339955121137559264239090240758401696425720048012081453338360E6"), + floating_point_type("9.3209631040827166083491098091419104379064970381623611540161175194120765977611623552218076053836060223609993676387199220631835256331102029826429784793420637988460945604451237342972023988743201341318701614328454618664952897316247603329530308777063116667275003586843755354841307657702809317290363831151480295446074722690100652644579131609996151999119113967501099655433566352849645431012667388627160383486515144610582794470005796689975604764040892168183647321540427819244511610500074895473959438490375652158E156"), + floating_point_type("1.2723011956950554641822441803774445695066347098655278283939929838804808618389143636393314317333622154343715992535881414698586440455330620652019981627229614973177953241634213768203151670660953863412381880742653187501307209325406338924004280546485392703623101051957976224599412003938216329590158926122017907280168159527761842471509358725974702333390709735919152262756462872191402491961250987725812831155116532550035967994387094267848607390288008530653715254376729558412833771092612838971719786622446726968E2566") + }}; + + boost::uint32_t ten_pow_n = UINT32_C(1); + + const floating_point_type tol = std::numeric_limits::epsilon() * UINT32_C(5000); + + bool result_is_ok = true; + + for(std::size_t i = 0U; i < control_values.size(); ++i) + { + const floating_point_type g = boost::math::tgamma(boost::math::constants::half() + ten_pow_n); + + ten_pow_n *= UINT32_C(10); + + using std::fabs; + + const floating_point_type closeness = fabs(1 - (g / control_values[i])); + + result_is_ok &= (closeness < tol); + } + + return result_is_ok; +} + +} } } // namespace boost::math::detail + namespace local { bool test_tgamma_for_issue396_cpp_dec_float() diff --git a/test/test_issue396_data_and_checker.ipp b/test/test_issue396_data_and_checker.ipp deleted file mode 100644 index 71d21b8b2..000000000 --- a/test/test_issue396_data_and_checker.ipp +++ /dev/null @@ -1,58 +0,0 @@ -#ifndef BOOST_MATH_TEST_ISSUE396_DATA_AND_CHECKER_IPP_ -#define BOOST_MATH_TEST_ISSUE396_DATA_AND_CHECKER_IPP_ - -#include -#include -#include - -#include -#include -#include - -namespace boost { namespace math { namespace detail { - -const boost::array& test_issue396_control_strings() -{ - // Table[N[Gamma[(1/2) + (10^n)], 503], {n, 0, 3, 1}] - - static const boost::array control_strings = - {{ - std::string("0.88622692545275801364908374167057259139877472806119356410690389492645564229551609068747532836927233270811341181214128533311807643286221130126254685480139353423101884932655256142496258651447541311446604768963398140008731950767573986025835009509261700929272348724745632015696088776295310820270966625045319920380686673873757671683399489468292591820439772558258086938002953369671589566640492742312409245102732742609780662578082373375752136938052805399806355360503018602224183618264830685404716174941583421211"), - std::string("1.1332783889487855673345741655888924755602983082751597766087234145294833900560041537176305387276072906583502717008932373348895801731780765775979953796646009714415152490764416630481375706606053932396039541459764525989187023837695167161085523804417015113740063535865261183579508922972990386756543208549178543857406373798865630303794109491220205170302558277398183764099268751365861892723863412249690833216320407918186480305202146014474770321625907339955121137559264239090240758401696425720048012081453338360E6"), - std::string("9.3209631040827166083491098091419104379064970381623611540161175194120765977611623552218076053836060223609993676387199220631835256331102029826429784793420637988460945604451237342972023988743201341318701614328454618664952897316247603329530308777063116667275003586843755354841307657702809317290363831151480295446074722690100652644579131609996151999119113967501099655433566352849645431012667388627160383486515144610582794470005796689975604764040892168183647321540427819244511610500074895473959438490375652158E156"), - std::string("1.2723011956950554641822441803774445695066347098655278283939929838804808618389143636393314317333622154343715992535881414698586440455330620652019981627229614973177953241634213768203151670660953863412381880742653187501307209325406338924004280546485392703623101051957976224599412003938216329590158926122017907280168159527761842471509358725974702333390709735919152262756462872191402491961250987725812831155116532550035967994387094267848607390288008530653715254376729558412833771092612838971719786622446726968E2566") - }}; - - return control_strings; -} - -template -bool test_issue396_value_checker() -{ - typedef BigFloatType floating_point_type; - - boost::uint32_t ten_pow_n = UINT32_C(1); - - const floating_point_type tol = std::numeric_limits::epsilon() * UINT32_C(5000); - - bool result_is_ok = true; - - for(std::size_t i = 0U; i < test_issue396_control_strings().size(); ++i) - { - const floating_point_type g = boost::math::tgamma(boost::math::constants::half() + ten_pow_n); - - ten_pow_n *= UINT32_C(10); - - using std::fabs; - - const floating_point_type closeness = fabs(1 - (g / boost::lexical_cast(test_issue396_control_strings().at(i)))); - - result_is_ok &= (closeness < tol); - } - - return result_is_ok; -} - -} } } // namespace boost::math::detail - -#endif // BOOST_MATH_TEST_ISSUE396_DATA_AND_CHECKER_IPP_ From dd9015124d2c63fa5e096fe1e39446bbbd9f588b Mon Sep 17 00:00:00 2001 From: Christopher Kormanyos Date: Wed, 16 Dec 2020 12:25:49 +0100 Subject: [PATCH 09/17] Reduce again complexity for old msvc 1001 --- test/test_issue396_cpp_bin_float.cpp | 135 +++++++++++++++++++-------- test/test_issue396_cpp_dec_float.cpp | 134 ++++++++++++++++++-------- 2 files changed, 189 insertions(+), 80 deletions(-) diff --git a/test/test_issue396_cpp_bin_float.cpp b/test/test_issue396_cpp_bin_float.cpp index 1c0508b6a..2d3e62c66 100644 --- a/test/test_issue396_cpp_bin_float.cpp +++ b/test/test_issue396_cpp_bin_float.cpp @@ -6,6 +6,8 @@ // or copy at http://www.boost.org/LICENSE_1_0.txt) // +#define BOOST_MATH_DISABLE_DEPRECATED_03_WARNING + #include #include #include @@ -16,21 +18,21 @@ // In issue 396, a bug regarding overflow was traced back to the tgamma function. // This test file tests the fix in 433 and its corresponding original bug report code. -namespace boost { namespace math { namespace detail { +namespace local { template bool test_issue396_value_checker() { typedef BigFloatType floating_point_type; - // Table[N[Gamma[(1/2) + (10^n)], 503], {n, 0, 3, 1}] + // Table[N[Gamma[(1/2) + (10^n)], 103], {n, 0, 3, 1}] const boost::array control_values = {{ - floating_point_type("0.88622692545275801364908374167057259139877472806119356410690389492645564229551609068747532836927233270811341181214128533311807643286221130126254685480139353423101884932655256142496258651447541311446604768963398140008731950767573986025835009509261700929272348724745632015696088776295310820270966625045319920380686673873757671683399489468292591820439772558258086938002953369671589566640492742312409245102732742609780662578082373375752136938052805399806355360503018602224183618264830685404716174941583421211"), - floating_point_type("1.1332783889487855673345741655888924755602983082751597766087234145294833900560041537176305387276072906583502717008932373348895801731780765775979953796646009714415152490764416630481375706606053932396039541459764525989187023837695167161085523804417015113740063535865261183579508922972990386756543208549178543857406373798865630303794109491220205170302558277398183764099268751365861892723863412249690833216320407918186480305202146014474770321625907339955121137559264239090240758401696425720048012081453338360E6"), - floating_point_type("9.3209631040827166083491098091419104379064970381623611540161175194120765977611623552218076053836060223609993676387199220631835256331102029826429784793420637988460945604451237342972023988743201341318701614328454618664952897316247603329530308777063116667275003586843755354841307657702809317290363831151480295446074722690100652644579131609996151999119113967501099655433566352849645431012667388627160383486515144610582794470005796689975604764040892168183647321540427819244511610500074895473959438490375652158E156"), - floating_point_type("1.2723011956950554641822441803774445695066347098655278283939929838804808618389143636393314317333622154343715992535881414698586440455330620652019981627229614973177953241634213768203151670660953863412381880742653187501307209325406338924004280546485392703623101051957976224599412003938216329590158926122017907280168159527761842471509358725974702333390709735919152262756462872191402491961250987725812831155116532550035967994387094267848607390288008530653715254376729558412833771092612838971719786622446726968E2566") + floating_point_type("0.8862269254527580136490837416705725913987747280611935641069038949264556422955160906874753283692723327081"), + floating_point_type("1.13327838894878556733457416558889247556029830827515977660872341452948339005600415371763053872760729065835E6"), + floating_point_type("9.320963104082716608349109809141910437906497038162361154016117519412076597761162355221807605383606022360999E156"), + floating_point_type("1.27230119569505546418224418037744456950663470986552782839399298388048086183891436363933143173336221543437E2566") }}; boost::uint32_t ten_pow_n = UINT32_C(1); @@ -55,47 +57,100 @@ bool test_issue396_value_checker() return result_is_ok; } -} } } // namespace boost::math::detail +} -namespace local { - -bool test_tgamma_for_issue396_cpp_bin_float() +bool test_tgamma_for_issue396_cpp_bin_float020() +{ + typedef boost::multiprecision::number, boost::multiprecision::et_off> cpp_bin_float_type_020; + + const bool cpp_bin_float_020_is_ok = local::test_issue396_value_checker(); + + return cpp_bin_float_020_is_ok; +} + +bool test_tgamma_for_issue396_cpp_bin_float030() +{ + typedef boost::multiprecision::number, boost::multiprecision::et_off> cpp_bin_float_type_030; + + const bool cpp_bin_float_030_is_ok = local::test_issue396_value_checker(); + + return cpp_bin_float_030_is_ok; +} + +bool test_tgamma_for_issue396_cpp_bin_float040() +{ + typedef boost::multiprecision::number, boost::multiprecision::et_off> cpp_bin_float_type_040; + + const bool cpp_bin_float_040_is_ok = local::test_issue396_value_checker(); + + return cpp_bin_float_040_is_ok; +} + +bool test_tgamma_for_issue396_cpp_bin_float049() +{ + typedef boost::multiprecision::number, boost::multiprecision::et_off> cpp_bin_float_type_049; + + const bool cpp_bin_float_049_is_ok = local::test_issue396_value_checker(); + + return cpp_bin_float_049_is_ok; +} + +bool test_tgamma_for_issue396_cpp_bin_float050() +{ + typedef boost::multiprecision::number, boost::multiprecision::et_off> cpp_bin_float_type_050; + + const bool cpp_bin_float_050_is_ok = local::test_issue396_value_checker(); + + return cpp_bin_float_050_is_ok; +} + +bool test_tgamma_for_issue396_cpp_bin_float101() { - typedef boost::multiprecision::number, boost::multiprecision::et_off> cpp_bin_float_type_020; - typedef boost::multiprecision::number, boost::multiprecision::et_off> cpp_bin_float_type_030; - typedef boost::multiprecision::number, boost::multiprecision::et_off> cpp_bin_float_type_040; - typedef boost::multiprecision::number, boost::multiprecision::et_off> cpp_bin_float_type_049; - typedef boost::multiprecision::number, boost::multiprecision::et_off> cpp_bin_float_type_050; - typedef boost::multiprecision::number, boost::multiprecision::et_off> cpp_bin_float_type_051; typedef boost::multiprecision::number, boost::multiprecision::et_off> cpp_bin_float_type_101; - typedef boost::multiprecision::number, boost::multiprecision::et_off> cpp_bin_float_type_501; - const bool cpp_bin_float_020_is_ok = boost::math::detail::test_issue396_value_checker(); - const bool cpp_bin_float_030_is_ok = boost::math::detail::test_issue396_value_checker(); - const bool cpp_bin_float_040_is_ok = boost::math::detail::test_issue396_value_checker(); - const bool cpp_bin_float_049_is_ok = boost::math::detail::test_issue396_value_checker(); - const bool cpp_bin_float_050_is_ok = boost::math::detail::test_issue396_value_checker(); - const bool cpp_bin_float_051_is_ok = boost::math::detail::test_issue396_value_checker(); - const bool cpp_bin_float_101_is_ok = boost::math::detail::test_issue396_value_checker(); - const bool cpp_bin_float_501_is_ok = boost::math::detail::test_issue396_value_checker(); + const bool cpp_bin_float_101_is_ok = local::test_issue396_value_checker(); - const bool cpp_bin_float_is_ok = ( cpp_bin_float_020_is_ok - && cpp_bin_float_030_is_ok - && cpp_bin_float_040_is_ok - && cpp_bin_float_049_is_ok - && cpp_bin_float_050_is_ok - && cpp_bin_float_051_is_ok - && cpp_bin_float_101_is_ok - && cpp_bin_float_501_is_ok); - - return cpp_bin_float_is_ok; + return cpp_bin_float_101_is_ok; } -} - -BOOST_AUTO_TEST_CASE(test_tgamma_for_issue396_cpp_bin_float_tag) +BOOST_AUTO_TEST_CASE(test_tgamma_for_issue396_cpp_bin_float020_tag) { - const bool cpp_bin_float_is_ok = local::test_tgamma_for_issue396_cpp_bin_float(); + const bool cpp_bin_float_020_is_ok = test_tgamma_for_issue396_cpp_bin_float020(); - BOOST_CHECK(cpp_bin_float_is_ok); + BOOST_CHECK(cpp_bin_float_020_is_ok); +} + +BOOST_AUTO_TEST_CASE(test_tgamma_for_issue396_cpp_bin_float030_tag) +{ + const bool cpp_bin_float_030_is_ok = test_tgamma_for_issue396_cpp_bin_float030(); + + BOOST_CHECK(cpp_bin_float_030_is_ok); +} + +BOOST_AUTO_TEST_CASE(test_tgamma_for_issue396_cpp_bin_float040_tag) +{ + const bool cpp_bin_float_040_is_ok = test_tgamma_for_issue396_cpp_bin_float040(); + + BOOST_CHECK(cpp_bin_float_040_is_ok); +} + +BOOST_AUTO_TEST_CASE(test_tgamma_for_issue396_cpp_bin_float049_tag) +{ + const bool cpp_bin_float_049_is_ok = test_tgamma_for_issue396_cpp_bin_float049(); + + BOOST_CHECK(cpp_bin_float_049_is_ok); +} + +BOOST_AUTO_TEST_CASE(test_tgamma_for_issue396_cpp_bin_float050_tag) +{ + const bool cpp_bin_float_050_is_ok = test_tgamma_for_issue396_cpp_bin_float050(); + + BOOST_CHECK(cpp_bin_float_050_is_ok); +} + +BOOST_AUTO_TEST_CASE(test_tgamma_for_issue396_cpp_bin_float101_tag) +{ + const bool cpp_bin_float_101_is_ok = test_tgamma_for_issue396_cpp_bin_float101(); + + BOOST_CHECK(cpp_bin_float_101_is_ok); } diff --git a/test/test_issue396_cpp_dec_float.cpp b/test/test_issue396_cpp_dec_float.cpp index 4045184be..27d4637d5 100644 --- a/test/test_issue396_cpp_dec_float.cpp +++ b/test/test_issue396_cpp_dec_float.cpp @@ -6,6 +6,8 @@ // or copy at http://www.boost.org/LICENSE_1_0.txt) // +#define BOOST_MATH_DISABLE_DEPRECATED_03_WARNING + #include #include #include @@ -16,21 +18,21 @@ // In issue 396, a bug regarding overflow was traced back to the tgamma function. // This test file tests the fix in 433 and its corresponding original bug report code. -namespace boost { namespace math { namespace detail { +namespace local { template bool test_issue396_value_checker() { typedef BigFloatType floating_point_type; - // Table[N[Gamma[(1/2) + (10^n)], 503], {n, 0, 3, 1}] + // Table[N[Gamma[(1/2) + (10^n)], 103], {n, 0, 3, 1}] const boost::array control_values = {{ - floating_point_type("0.88622692545275801364908374167057259139877472806119356410690389492645564229551609068747532836927233270811341181214128533311807643286221130126254685480139353423101884932655256142496258651447541311446604768963398140008731950767573986025835009509261700929272348724745632015696088776295310820270966625045319920380686673873757671683399489468292591820439772558258086938002953369671589566640492742312409245102732742609780662578082373375752136938052805399806355360503018602224183618264830685404716174941583421211"), - floating_point_type("1.1332783889487855673345741655888924755602983082751597766087234145294833900560041537176305387276072906583502717008932373348895801731780765775979953796646009714415152490764416630481375706606053932396039541459764525989187023837695167161085523804417015113740063535865261183579508922972990386756543208549178543857406373798865630303794109491220205170302558277398183764099268751365861892723863412249690833216320407918186480305202146014474770321625907339955121137559264239090240758401696425720048012081453338360E6"), - floating_point_type("9.3209631040827166083491098091419104379064970381623611540161175194120765977611623552218076053836060223609993676387199220631835256331102029826429784793420637988460945604451237342972023988743201341318701614328454618664952897316247603329530308777063116667275003586843755354841307657702809317290363831151480295446074722690100652644579131609996151999119113967501099655433566352849645431012667388627160383486515144610582794470005796689975604764040892168183647321540427819244511610500074895473959438490375652158E156"), - floating_point_type("1.2723011956950554641822441803774445695066347098655278283939929838804808618389143636393314317333622154343715992535881414698586440455330620652019981627229614973177953241634213768203151670660953863412381880742653187501307209325406338924004280546485392703623101051957976224599412003938216329590158926122017907280168159527761842471509358725974702333390709735919152262756462872191402491961250987725812831155116532550035967994387094267848607390288008530653715254376729558412833771092612838971719786622446726968E2566") + floating_point_type("0.8862269254527580136490837416705725913987747280611935641069038949264556422955160906874753283692723327081"), + floating_point_type("1.13327838894878556733457416558889247556029830827515977660872341452948339005600415371763053872760729065835E6"), + floating_point_type("9.320963104082716608349109809141910437906497038162361154016117519412076597761162355221807605383606022360999E156"), + floating_point_type("1.27230119569505546418224418037744456950663470986552782839399298388048086183891436363933143173336221543437E2566") }}; boost::uint32_t ten_pow_n = UINT32_C(1); @@ -55,48 +57,100 @@ bool test_issue396_value_checker() return result_is_ok; } -} } } // namespace boost::math::detail +} -namespace local { - -bool test_tgamma_for_issue396_cpp_dec_float() +bool test_tgamma_for_issue396_cpp_dec_float020() +{ + typedef boost::multiprecision::number, boost::multiprecision::et_off> cpp_dec_float_type_020; + + const bool cpp_dec_float_020_is_ok = local::test_issue396_value_checker(); + + return cpp_dec_float_020_is_ok; +} + +bool test_tgamma_for_issue396_cpp_dec_float030() +{ + typedef boost::multiprecision::number, boost::multiprecision::et_off> cpp_dec_float_type_030; + + const bool cpp_dec_float_030_is_ok = local::test_issue396_value_checker(); + + return cpp_dec_float_030_is_ok; +} + +bool test_tgamma_for_issue396_cpp_dec_float040() +{ + typedef boost::multiprecision::number, boost::multiprecision::et_off> cpp_dec_float_type_040; + + const bool cpp_dec_float_040_is_ok = local::test_issue396_value_checker(); + + return cpp_dec_float_040_is_ok; +} + +bool test_tgamma_for_issue396_cpp_dec_float049() +{ + typedef boost::multiprecision::number, boost::multiprecision::et_off> cpp_dec_float_type_049; + + const bool cpp_dec_float_049_is_ok = local::test_issue396_value_checker(); + + return cpp_dec_float_049_is_ok; +} + +bool test_tgamma_for_issue396_cpp_dec_float050() +{ + typedef boost::multiprecision::number, boost::multiprecision::et_off> cpp_dec_float_type_050; + + const bool cpp_dec_float_050_is_ok = local::test_issue396_value_checker(); + + return cpp_dec_float_050_is_ok; +} + +bool test_tgamma_for_issue396_cpp_dec_float101() { - typedef boost::multiprecision::number, boost::multiprecision::et_off> cpp_dec_float_type_020; - typedef boost::multiprecision::number, boost::multiprecision::et_off> cpp_dec_float_type_030; - typedef boost::multiprecision::number, boost::multiprecision::et_off> cpp_dec_float_type_040; - typedef boost::multiprecision::number, boost::multiprecision::et_off> cpp_dec_float_type_049; - typedef boost::multiprecision::number, boost::multiprecision::et_off> cpp_dec_float_type_050; - typedef boost::multiprecision::number, boost::multiprecision::et_off> cpp_dec_float_type_051; typedef boost::multiprecision::number, boost::multiprecision::et_off> cpp_dec_float_type_101; - typedef boost::multiprecision::number, boost::multiprecision::et_off> cpp_dec_float_type_501; - const bool cpp_dec_float_020_is_ok = boost::math::detail::test_issue396_value_checker(); - const bool cpp_dec_float_030_is_ok = boost::math::detail::test_issue396_value_checker(); - const bool cpp_dec_float_040_is_ok = boost::math::detail::test_issue396_value_checker(); - const bool cpp_dec_float_049_is_ok = boost::math::detail::test_issue396_value_checker(); - const bool cpp_dec_float_050_is_ok = boost::math::detail::test_issue396_value_checker(); - const bool cpp_dec_float_051_is_ok = boost::math::detail::test_issue396_value_checker(); - const bool cpp_dec_float_101_is_ok = boost::math::detail::test_issue396_value_checker(); - const bool cpp_dec_float_501_is_ok = boost::math::detail::test_issue396_value_checker(); + const bool cpp_dec_float_101_is_ok = local::test_issue396_value_checker(); - const bool cpp_dec_float_is_ok = ( cpp_dec_float_020_is_ok - && cpp_dec_float_030_is_ok - && cpp_dec_float_040_is_ok - && cpp_dec_float_049_is_ok - && cpp_dec_float_050_is_ok - && cpp_dec_float_051_is_ok - && cpp_dec_float_101_is_ok - && cpp_dec_float_501_is_ok); - - return cpp_dec_float_is_ok; + return cpp_dec_float_101_is_ok; } -} - -BOOST_AUTO_TEST_CASE(test_tgamma_for_issue396_cpp_dec_float_tag) +BOOST_AUTO_TEST_CASE(test_tgamma_for_issue396_cpp_dec_float020_tag) { - const bool cpp_dec_float_is_ok = local::test_tgamma_for_issue396_cpp_dec_float(); + const bool cpp_dec_float_020_is_ok = test_tgamma_for_issue396_cpp_dec_float020(); - BOOST_CHECK(cpp_dec_float_is_ok); + BOOST_CHECK(cpp_dec_float_020_is_ok); } +BOOST_AUTO_TEST_CASE(test_tgamma_for_issue396_cpp_dec_float030_tag) +{ + const bool cpp_dec_float_030_is_ok = test_tgamma_for_issue396_cpp_dec_float030(); + + BOOST_CHECK(cpp_dec_float_030_is_ok); +} + +BOOST_AUTO_TEST_CASE(test_tgamma_for_issue396_cpp_dec_float040_tag) +{ + const bool cpp_dec_float_040_is_ok = test_tgamma_for_issue396_cpp_dec_float040(); + + BOOST_CHECK(cpp_dec_float_040_is_ok); +} + +BOOST_AUTO_TEST_CASE(test_tgamma_for_issue396_cpp_dec_float049_tag) +{ + const bool cpp_dec_float_049_is_ok = test_tgamma_for_issue396_cpp_dec_float049(); + + BOOST_CHECK(cpp_dec_float_049_is_ok); +} + +BOOST_AUTO_TEST_CASE(test_tgamma_for_issue396_cpp_dec_float050_tag) +{ + const bool cpp_dec_float_050_is_ok = test_tgamma_for_issue396_cpp_dec_float050(); + + BOOST_CHECK(cpp_dec_float_050_is_ok); +} + +BOOST_AUTO_TEST_CASE(test_tgamma_for_issue396_cpp_dec_float101_tag) +{ + const bool cpp_dec_float_101_is_ok = test_tgamma_for_issue396_cpp_dec_float101(); + + BOOST_CHECK(cpp_dec_float_101_is_ok); +} From 92417f5a7fe3af32f0ffd92aaa172fb887be5481 Mon Sep 17 00:00:00 2001 From: Christopher Kormanyos Date: Wed, 16 Dec 2020 15:04:27 +0100 Subject: [PATCH 10/17] Work the review findings including no constexpr, use 3 spaces and eliminate use of size_t and will try CI again --- .../boost/math/special_functions/gamma.hpp | 33 ++++++++++--------- test/test_issue396_cpp_bin_float.cpp | 5 ++- test/test_issue396_cpp_dec_float.cpp | 5 ++- 3 files changed, 21 insertions(+), 22 deletions(-) diff --git a/include/boost/math/special_functions/gamma.hpp b/include/boost/math/special_functions/gamma.hpp index 9e43c23e4..b1f0ea7c9 100644 --- a/include/boost/math/special_functions/gamma.hpp +++ b/include/boost/math/special_functions/gamma.hpp @@ -366,31 +366,32 @@ std::size_t highest_bernoulli_index() template int minimum_argument_for_bernoulli_recursion() { - BOOST_CONSTEXPR_OR_CONST float digits10_of_type = - (std::numeric_limits::is_specialized - ? static_cast(std::numeric_limits::digits10) - : static_cast(boost::math::tools::digits() * 0.301F)); + const float d2 = (float) boost::math::tools::digits(); + + const float digits10_of_type = (std::numeric_limits::is_specialized + ? (float) std::numeric_limits::digits10 + : (float) (d2 * 0.301F)); int min_arg = (int) (digits10_of_type * 1.7F); - if(digits10_of_type < 50) + if(digits10_of_type < 50.0F) { - // The following code sequence has been modified - // within the context of issue 396. + // The following code sequence has been modified + // within the context of issue 396. - // The calculation of the test-variable limit has now - // been protected against overflow/underflow dangers. + // The calculation of the test-variable limit has now + // been protected against overflow/underflow dangers. - // The previous line looked like this and did, in fact, - // underflow ldexp when using certain multiprecision types. + // The previous line looked like this and did, in fact, + // underflow ldexp when using certain multiprecision types. - // const float limit = std::ceil(std::pow(1.0f / std::ldexp(1.0f, 1-boost::math::tools::digits()), 1.0f / 20.0f)); + // const float limit = std::ceil(std::pow(1.0f / std::ldexp(1.0f, 1-boost::math::tools::digits()), 1.0f / 20.0f)); - // The new safe version of the limit check is now here. - const float d2_minus_one = (float) (boost::math::tools::digits() - 1); - const float limit = std::ceil(std::exp((d2_minus_one * std::log(2.0F)) / 20.0F)); + // The new safe version of the limit check is now here. + const float d2_minus_one = (d2 - 1.0F); + const float limit = std::ceil(std::exp((d2_minus_one * std::log(2.0F)) / 20.0F)); - min_arg = (int) ((std::min)(digits10_of_type * 1.7F, limit)); + min_arg = (int) ((std::min)(digits10_of_type * 1.7F, limit)); } return min_arg; diff --git a/test/test_issue396_cpp_bin_float.cpp b/test/test_issue396_cpp_bin_float.cpp index 2d3e62c66..a3c46c9d0 100644 --- a/test/test_issue396_cpp_bin_float.cpp +++ b/test/test_issue396_cpp_bin_float.cpp @@ -6,8 +6,7 @@ // or copy at http://www.boost.org/LICENSE_1_0.txt) // -#define BOOST_MATH_DISABLE_DEPRECATED_03_WARNING - +#include #include #include #include @@ -41,7 +40,7 @@ bool test_issue396_value_checker() bool result_is_ok = true; - for(std::size_t i = 0U; i < control_values.size(); ++i) + for(unsigned i = 0U; i < control_values.size(); ++i) { const floating_point_type g = boost::math::tgamma(boost::math::constants::half() + ten_pow_n); diff --git a/test/test_issue396_cpp_dec_float.cpp b/test/test_issue396_cpp_dec_float.cpp index 27d4637d5..656cfdb49 100644 --- a/test/test_issue396_cpp_dec_float.cpp +++ b/test/test_issue396_cpp_dec_float.cpp @@ -6,8 +6,7 @@ // or copy at http://www.boost.org/LICENSE_1_0.txt) // -#define BOOST_MATH_DISABLE_DEPRECATED_03_WARNING - +#include #include #include #include @@ -41,7 +40,7 @@ bool test_issue396_value_checker() bool result_is_ok = true; - for(std::size_t i = 0U; i < control_values.size(); ++i) + for(unsigned i = 0U; i < control_values.size(); ++i) { const floating_point_type g = boost::math::tgamma(boost::math::constants::half() + ten_pow_n); From 728388856c835c4ba2f3d761a98f3e393f792923 Mon Sep 17 00:00:00 2001 From: Christopher Kormanyos Date: Wed, 16 Dec 2020 18:50:06 +0100 Subject: [PATCH 11/17] Guesses for old, running on new compilers, try CI --- .../boost/math/special_functions/gamma.hpp | 8 +- test/Jamfile.v2 | 5 +- test/test_issue396_cpp_bin_float.cpp | 155 ------------------ test/test_issue396_cpp_dec_float.cpp | 155 ------------------ test/test_issue396_original_issue.cpp | 46 ------ test/test_tgamma_for_issue396_part1.cpp | 98 +++++++++++ test/test_tgamma_for_issue396_part2.cpp | 95 +++++++++++ 7 files changed, 199 insertions(+), 363 deletions(-) delete mode 100644 test/test_issue396_cpp_bin_float.cpp delete mode 100644 test/test_issue396_cpp_dec_float.cpp delete mode 100644 test/test_issue396_original_issue.cpp create mode 100644 test/test_tgamma_for_issue396_part1.cpp create mode 100644 test/test_tgamma_for_issue396_part2.cpp diff --git a/include/boost/math/special_functions/gamma.hpp b/include/boost/math/special_functions/gamma.hpp index b1f0ea7c9..cabe517ac 100644 --- a/include/boost/math/special_functions/gamma.hpp +++ b/include/boost/math/special_functions/gamma.hpp @@ -366,11 +366,11 @@ std::size_t highest_bernoulli_index() template int minimum_argument_for_bernoulli_recursion() { - const float d2 = (float) boost::math::tools::digits(); + BOOST_MATH_STD_USING const float digits10_of_type = (std::numeric_limits::is_specialized ? (float) std::numeric_limits::digits10 - : (float) (d2 * 0.301F)); + : (float) (boost::math::tools::digits() * 0.301F)); int min_arg = (int) (digits10_of_type * 1.7F); @@ -388,8 +388,8 @@ int minimum_argument_for_bernoulli_recursion() // const float limit = std::ceil(std::pow(1.0f / std::ldexp(1.0f, 1-boost::math::tools::digits()), 1.0f / 20.0f)); // The new safe version of the limit check is now here. - const float d2_minus_one = (d2 - 1.0F); - const float limit = std::ceil(std::exp((d2_minus_one * std::log(2.0F)) / 20.0F)); + const float d2_minus_one = ((digits10_of_type / 0.301F) - 1.0F); + const float limit = ceil(exp((d2_minus_one * log(2.0F)) / 20.0F)); min_arg = (int) ((std::min)(digits10_of_type * 1.7F, limit)); } diff --git a/test/Jamfile.v2 b/test/Jamfile.v2 index 482eaa393..5ae8a38f7 100644 --- a/test/Jamfile.v2 +++ b/test/Jamfile.v2 @@ -477,9 +477,6 @@ test-suite special_fun : [ run cardinal_trigonometric_test.cpp ../config//fftw3q ../config//quadmath : : : TEST4 [ requires cxx11_auto_declarations cxx11_range_based_for ] [ check-target-builds ../config//has_fftw3 "libfftw3" : : no ] [ check-target-builds ../config//has_float128 "__float128" : : no ] : cardinal_trigonometric_test_4 ] - [ run test_issue396_cpp_dec_float.cpp ../../test/build//boost_unit_test_framework : : : gcc-mingw:-Wa,-mbig-obj off msvc:/bigobj ] - [ run test_issue396_cpp_bin_float.cpp ../../test/build//boost_unit_test_framework : : : gcc-mingw:-Wa,-mbig-obj off msvc:/bigobj ] - [ run test_issue396_original_issue.cpp ../../test/build//boost_unit_test_framework ] [ run test_ldouble_simple.cpp ../../test/build//boost_unit_test_framework ] # Needs to run in release mode, as it's rather slow: [ run test_next.cpp pch ../../test/build//boost_unit_test_framework : : : release ] @@ -490,6 +487,8 @@ test-suite special_fun : [ run test_round.cpp pch ../../test/build//boost_unit_test_framework ] [ run test_spherical_harmonic.cpp test_instances//test_instances pch_light ../../test/build//boost_unit_test_framework ] [ run test_sign.cpp ../../test/build//boost_unit_test_framework ] + [ run test_tgamma_for_issue396_part1.cpp ../../test/build//boost_unit_test_framework : : : gcc-mingw:-Wa,-mbig-obj off msvc:/bigobj ] + [ run test_tgamma_for_issue396_part2.cpp ../../test/build//boost_unit_test_framework : : : gcc-mingw:-Wa,-mbig-obj off msvc:/bigobj ] [ run test_tgamma_ratio.cpp test_instances//test_instances pch_light ../../test/build//boost_unit_test_framework ] [ run test_trig.cpp test_instances//test_instances pch_light ../../test/build//boost_unit_test_framework ] [ run test_zeta.cpp ../../test/build//boost_unit_test_framework test_instances//test_instances pch_light ] diff --git a/test/test_issue396_cpp_bin_float.cpp b/test/test_issue396_cpp_bin_float.cpp deleted file mode 100644 index a3c46c9d0..000000000 --- a/test/test_issue396_cpp_bin_float.cpp +++ /dev/null @@ -1,155 +0,0 @@ -/////////////////////////////////////////////////////////////////// -// Copyright Christopher Kormanyos 2020. -// Copyright John Maddock 2020. -// Distributed under the Boost Software License, -// Version 1.0. (See accompanying file LICENSE_1_0.txt -// or copy at http://www.boost.org/LICENSE_1_0.txt) -// - -#include -#include -#include -#include - -#define BOOST_TEST_MAIN -#include // Boost.Test - -// In issue 396, a bug regarding overflow was traced back to the tgamma function. -// This test file tests the fix in 433 and its corresponding original bug report code. - -namespace local { - -template -bool test_issue396_value_checker() -{ - typedef BigFloatType floating_point_type; - - // Table[N[Gamma[(1/2) + (10^n)], 103], {n, 0, 3, 1}] - - const boost::array control_values = - {{ - floating_point_type("0.8862269254527580136490837416705725913987747280611935641069038949264556422955160906874753283692723327081"), - floating_point_type("1.13327838894878556733457416558889247556029830827515977660872341452948339005600415371763053872760729065835E6"), - floating_point_type("9.320963104082716608349109809141910437906497038162361154016117519412076597761162355221807605383606022360999E156"), - floating_point_type("1.27230119569505546418224418037744456950663470986552782839399298388048086183891436363933143173336221543437E2566") - }}; - - boost::uint32_t ten_pow_n = UINT32_C(1); - - const floating_point_type tol = std::numeric_limits::epsilon() * UINT32_C(5000); - - bool result_is_ok = true; - - for(unsigned i = 0U; i < control_values.size(); ++i) - { - const floating_point_type g = boost::math::tgamma(boost::math::constants::half() + ten_pow_n); - - ten_pow_n *= UINT32_C(10); - - using std::fabs; - - const floating_point_type closeness = fabs(1 - (g / control_values[i])); - - result_is_ok &= (closeness < tol); - } - - return result_is_ok; -} - -} - -bool test_tgamma_for_issue396_cpp_bin_float020() -{ - typedef boost::multiprecision::number, boost::multiprecision::et_off> cpp_bin_float_type_020; - - const bool cpp_bin_float_020_is_ok = local::test_issue396_value_checker(); - - return cpp_bin_float_020_is_ok; -} - -bool test_tgamma_for_issue396_cpp_bin_float030() -{ - typedef boost::multiprecision::number, boost::multiprecision::et_off> cpp_bin_float_type_030; - - const bool cpp_bin_float_030_is_ok = local::test_issue396_value_checker(); - - return cpp_bin_float_030_is_ok; -} - -bool test_tgamma_for_issue396_cpp_bin_float040() -{ - typedef boost::multiprecision::number, boost::multiprecision::et_off> cpp_bin_float_type_040; - - const bool cpp_bin_float_040_is_ok = local::test_issue396_value_checker(); - - return cpp_bin_float_040_is_ok; -} - -bool test_tgamma_for_issue396_cpp_bin_float049() -{ - typedef boost::multiprecision::number, boost::multiprecision::et_off> cpp_bin_float_type_049; - - const bool cpp_bin_float_049_is_ok = local::test_issue396_value_checker(); - - return cpp_bin_float_049_is_ok; -} - -bool test_tgamma_for_issue396_cpp_bin_float050() -{ - typedef boost::multiprecision::number, boost::multiprecision::et_off> cpp_bin_float_type_050; - - const bool cpp_bin_float_050_is_ok = local::test_issue396_value_checker(); - - return cpp_bin_float_050_is_ok; -} - -bool test_tgamma_for_issue396_cpp_bin_float101() -{ - typedef boost::multiprecision::number, boost::multiprecision::et_off> cpp_bin_float_type_101; - - const bool cpp_bin_float_101_is_ok = local::test_issue396_value_checker(); - - return cpp_bin_float_101_is_ok; -} - -BOOST_AUTO_TEST_CASE(test_tgamma_for_issue396_cpp_bin_float020_tag) -{ - const bool cpp_bin_float_020_is_ok = test_tgamma_for_issue396_cpp_bin_float020(); - - BOOST_CHECK(cpp_bin_float_020_is_ok); -} - -BOOST_AUTO_TEST_CASE(test_tgamma_for_issue396_cpp_bin_float030_tag) -{ - const bool cpp_bin_float_030_is_ok = test_tgamma_for_issue396_cpp_bin_float030(); - - BOOST_CHECK(cpp_bin_float_030_is_ok); -} - -BOOST_AUTO_TEST_CASE(test_tgamma_for_issue396_cpp_bin_float040_tag) -{ - const bool cpp_bin_float_040_is_ok = test_tgamma_for_issue396_cpp_bin_float040(); - - BOOST_CHECK(cpp_bin_float_040_is_ok); -} - -BOOST_AUTO_TEST_CASE(test_tgamma_for_issue396_cpp_bin_float049_tag) -{ - const bool cpp_bin_float_049_is_ok = test_tgamma_for_issue396_cpp_bin_float049(); - - BOOST_CHECK(cpp_bin_float_049_is_ok); -} - -BOOST_AUTO_TEST_CASE(test_tgamma_for_issue396_cpp_bin_float050_tag) -{ - const bool cpp_bin_float_050_is_ok = test_tgamma_for_issue396_cpp_bin_float050(); - - BOOST_CHECK(cpp_bin_float_050_is_ok); -} - -BOOST_AUTO_TEST_CASE(test_tgamma_for_issue396_cpp_bin_float101_tag) -{ - const bool cpp_bin_float_101_is_ok = test_tgamma_for_issue396_cpp_bin_float101(); - - BOOST_CHECK(cpp_bin_float_101_is_ok); -} diff --git a/test/test_issue396_cpp_dec_float.cpp b/test/test_issue396_cpp_dec_float.cpp deleted file mode 100644 index 656cfdb49..000000000 --- a/test/test_issue396_cpp_dec_float.cpp +++ /dev/null @@ -1,155 +0,0 @@ -/////////////////////////////////////////////////////////////////// -// Copyright Christopher Kormanyos 2020. -// Copyright John Maddock 2020. -// Distributed under the Boost Software License, -// Version 1.0. (See accompanying file LICENSE_1_0.txt -// or copy at http://www.boost.org/LICENSE_1_0.txt) -// - -#include -#include -#include -#include - -#define BOOST_TEST_MAIN -#include // Boost.Test - -// In issue 396, a bug regarding overflow was traced back to the tgamma function. -// This test file tests the fix in 433 and its corresponding original bug report code. - -namespace local { - -template -bool test_issue396_value_checker() -{ - typedef BigFloatType floating_point_type; - - // Table[N[Gamma[(1/2) + (10^n)], 103], {n, 0, 3, 1}] - - const boost::array control_values = - {{ - floating_point_type("0.8862269254527580136490837416705725913987747280611935641069038949264556422955160906874753283692723327081"), - floating_point_type("1.13327838894878556733457416558889247556029830827515977660872341452948339005600415371763053872760729065835E6"), - floating_point_type("9.320963104082716608349109809141910437906497038162361154016117519412076597761162355221807605383606022360999E156"), - floating_point_type("1.27230119569505546418224418037744456950663470986552782839399298388048086183891436363933143173336221543437E2566") - }}; - - boost::uint32_t ten_pow_n = UINT32_C(1); - - const floating_point_type tol = std::numeric_limits::epsilon() * UINT32_C(5000); - - bool result_is_ok = true; - - for(unsigned i = 0U; i < control_values.size(); ++i) - { - const floating_point_type g = boost::math::tgamma(boost::math::constants::half() + ten_pow_n); - - ten_pow_n *= UINT32_C(10); - - using std::fabs; - - const floating_point_type closeness = fabs(1 - (g / control_values[i])); - - result_is_ok &= (closeness < tol); - } - - return result_is_ok; -} - -} - -bool test_tgamma_for_issue396_cpp_dec_float020() -{ - typedef boost::multiprecision::number, boost::multiprecision::et_off> cpp_dec_float_type_020; - - const bool cpp_dec_float_020_is_ok = local::test_issue396_value_checker(); - - return cpp_dec_float_020_is_ok; -} - -bool test_tgamma_for_issue396_cpp_dec_float030() -{ - typedef boost::multiprecision::number, boost::multiprecision::et_off> cpp_dec_float_type_030; - - const bool cpp_dec_float_030_is_ok = local::test_issue396_value_checker(); - - return cpp_dec_float_030_is_ok; -} - -bool test_tgamma_for_issue396_cpp_dec_float040() -{ - typedef boost::multiprecision::number, boost::multiprecision::et_off> cpp_dec_float_type_040; - - const bool cpp_dec_float_040_is_ok = local::test_issue396_value_checker(); - - return cpp_dec_float_040_is_ok; -} - -bool test_tgamma_for_issue396_cpp_dec_float049() -{ - typedef boost::multiprecision::number, boost::multiprecision::et_off> cpp_dec_float_type_049; - - const bool cpp_dec_float_049_is_ok = local::test_issue396_value_checker(); - - return cpp_dec_float_049_is_ok; -} - -bool test_tgamma_for_issue396_cpp_dec_float050() -{ - typedef boost::multiprecision::number, boost::multiprecision::et_off> cpp_dec_float_type_050; - - const bool cpp_dec_float_050_is_ok = local::test_issue396_value_checker(); - - return cpp_dec_float_050_is_ok; -} - -bool test_tgamma_for_issue396_cpp_dec_float101() -{ - typedef boost::multiprecision::number, boost::multiprecision::et_off> cpp_dec_float_type_101; - - const bool cpp_dec_float_101_is_ok = local::test_issue396_value_checker(); - - return cpp_dec_float_101_is_ok; -} - -BOOST_AUTO_TEST_CASE(test_tgamma_for_issue396_cpp_dec_float020_tag) -{ - const bool cpp_dec_float_020_is_ok = test_tgamma_for_issue396_cpp_dec_float020(); - - BOOST_CHECK(cpp_dec_float_020_is_ok); -} - -BOOST_AUTO_TEST_CASE(test_tgamma_for_issue396_cpp_dec_float030_tag) -{ - const bool cpp_dec_float_030_is_ok = test_tgamma_for_issue396_cpp_dec_float030(); - - BOOST_CHECK(cpp_dec_float_030_is_ok); -} - -BOOST_AUTO_TEST_CASE(test_tgamma_for_issue396_cpp_dec_float040_tag) -{ - const bool cpp_dec_float_040_is_ok = test_tgamma_for_issue396_cpp_dec_float040(); - - BOOST_CHECK(cpp_dec_float_040_is_ok); -} - -BOOST_AUTO_TEST_CASE(test_tgamma_for_issue396_cpp_dec_float049_tag) -{ - const bool cpp_dec_float_049_is_ok = test_tgamma_for_issue396_cpp_dec_float049(); - - BOOST_CHECK(cpp_dec_float_049_is_ok); -} - -BOOST_AUTO_TEST_CASE(test_tgamma_for_issue396_cpp_dec_float050_tag) -{ - const bool cpp_dec_float_050_is_ok = test_tgamma_for_issue396_cpp_dec_float050(); - - BOOST_CHECK(cpp_dec_float_050_is_ok); -} - -BOOST_AUTO_TEST_CASE(test_tgamma_for_issue396_cpp_dec_float101_tag) -{ - const bool cpp_dec_float_101_is_ok = test_tgamma_for_issue396_cpp_dec_float101(); - - BOOST_CHECK(cpp_dec_float_101_is_ok); -} diff --git a/test/test_issue396_original_issue.cpp b/test/test_issue396_original_issue.cpp deleted file mode 100644 index 2f685c010..000000000 --- a/test/test_issue396_original_issue.cpp +++ /dev/null @@ -1,46 +0,0 @@ -/////////////////////////////////////////////////////////////////// -// Copyright Christopher Kormanyos 2020. -// Copyright John Maddock 2020. -// Distributed under the Boost Software License, -// Version 1.0. (See accompanying file LICENSE_1_0.txt -// or copy at http://www.boost.org/LICENSE_1_0.txt) -// - -#include -#include - -#define BOOST_TEST_MAIN -#include // Boost.Test - -// In issue 396, a bug regarding overflow was traced back to the tgamma function. -// This test file tests the fix in 433 and its corresponding original bug report code. - -namespace local { - -bool test_cdf____for_issue396_bug_report___() -{ - typedef boost::math::beta_distribution b_dist_type; - - b_dist_type b_dist(1.0, 2.0); - - boost::multiprecision::cpp_dec_float_100 test = -boost::math::cdf(boost::math::complement(b_dist, 0.5)); - - using std::fabs; - - const boost::multiprecision::cpp_dec_float_100 control = boost::multiprecision::cpp_dec_float_100(-0.25F); - - const boost::multiprecision::cpp_dec_float_100 closeness = fabs(1 - fabs(test / control)); - - const bool result_is_ok = (closeness < std::numeric_limits::epsilon() * 10U); - - return result_is_ok; -} - -} - -BOOST_AUTO_TEST_CASE(test_cdf____for_issue396_bug_report____tag) -{ - const bool cpp_bug_check_is_ok = local::test_cdf____for_issue396_bug_report___(); - - BOOST_CHECK(cpp_bug_check_is_ok); -} diff --git a/test/test_tgamma_for_issue396_part1.cpp b/test/test_tgamma_for_issue396_part1.cpp new file mode 100644 index 000000000..c0943f0c8 --- /dev/null +++ b/test/test_tgamma_for_issue396_part1.cpp @@ -0,0 +1,98 @@ +/////////////////////////////////////////////////////////////////// +// Copyright Christopher Kormanyos 2020. +// Copyright John Maddock 2020. +// Distributed under the Boost Software License, +// Version 1.0. (See accompanying file LICENSE_1_0.txt +// or copy at http://www.boost.org/LICENSE_1_0.txt) +// + +#if 0 +#define BOOST_TEST_MODULE test_tgamma_for_issue396 +#include +#else +#define BOOST_TEST_MAIN +#include // Boost.Test +#endif + +#include +#include +#include +#include +#include + +// In issue 396, a bug regarding overflow was traced back to the tgamma function. +// This test file tests the fix in 433 and its corresponding original bug report code. + +const char* issue396_control_string0 = "0.88622692545275801364908374167057259139877472806119356410690389492645564229551609068747532836927233270811341181214128533311807643286221130126254685480139353423101884932655256142496258651447541311446604768963398140008731950767573986025835009509261700929272348724745632015696088776295310820270966625045319920380686673873757671683399489468292591820439772558258086938002953369671589566640492742312409245102732742609780662578082373375752136938052805399806355360503018602224183618264830685404716174941583421211"; +const char* issue396_control_string1 = "1.1332783889487855673345741655888924755602983082751597766087234145294833900560041537176305387276072906583502717008932373348895801731780765775979953796646009714415152490764416630481375706606053932396039541459764525989187023837695167161085523804417015113740063535865261183579508922972990386756543208549178543857406373798865630303794109491220205170302558277398183764099268751365861892723863412249690833216320407918186480305202146014474770321625907339955121137559264239090240758401696425720048012081453338360E6"; +const char* issue396_control_string2 = "9.3209631040827166083491098091419104379064970381623611540161175194120765977611623552218076053836060223609993676387199220631835256331102029826429784793420637988460945604451237342972023988743201341318701614328454618664952897316247603329530308777063116667275003586843755354841307657702809317290363831151480295446074722690100652644579131609996151999119113967501099655433566352849645431012667388627160383486515144610582794470005796689975604764040892168183647321540427819244511610500074895473959438490375652158E156"; +const char* issue396_control_string3 = "1.2723011956950554641822441803774445695066347098655278283939929838804808618389143636393314317333622154343715992535881414698586440455330620652019981627229614973177953241634213768203151670660953863412381880742653187501307209325406338924004280546485392703623101051957976224599412003938216329590158926122017907280168159527761842471509358725974702333390709735919152262756462872191402491961250987725812831155116532550035967994387094267848607390288008530653715254376729558412833771092612838971719786622446726968E2566"; + +template +bool test_tgamma_for_issue396_value_checker() +{ + typedef BigFloatType floating_point_type; + + // Table[N[Gamma[(1/2) + (10^n)], 503], {n, 0, 3, 1}] + + const boost::array control = + {{ + floating_point_type(issue396_control_string0), + floating_point_type(issue396_control_string1), + floating_point_type(issue396_control_string2), + floating_point_type(issue396_control_string3) + }}; + + boost::uint32_t ten_pow_n = (boost::uint32_t) (1); + + const floating_point_type tol = std::numeric_limits::epsilon() * (boost::uint32_t) (5000); + + bool result_is_ok = true; + + for(typename boost::array::size_type i = 0U; i < control.size(); ++i) + { + const floating_point_type g = boost::math::tgamma(boost::math::constants::half() + ten_pow_n); + + ten_pow_n *= (boost::uint32_t) (10); + + const floating_point_type closeness = fabs(1 - (g / control[i])); + + result_is_ok &= (closeness < tol); + } + + return result_is_ok; +} + +template +bool test_tgamma_for_issue396() +{ + typedef boost::multiprecision::number, boost::multiprecision::et_off> cpp_bin_float_type; + typedef boost::multiprecision::number, boost::multiprecision::et_off> cpp_dec_float_type; + + const bool bin_is_ok = test_tgamma_for_issue396_value_checker(); + const bool dec_is_ok = test_tgamma_for_issue396_value_checker(); + + const bool result_is_ok = (bin_is_ok && dec_is_ok); + + return result_is_ok; +} + +bool test_tgamma_for_issue396_cpp_dec_float_020_through_050() +{ + const bool b_020 = test_tgamma_for_issue396<20U>(); + const bool b_030 = test_tgamma_for_issue396<30U>(); + const bool b_040 = test_tgamma_for_issue396<40U>(); + const bool b_049 = test_tgamma_for_issue396<49U>(); + const bool b_050 = test_tgamma_for_issue396<50U>(); + + const bool result_is_ok = (b_020 && b_030 && b_040 && b_049 && b_050); + + return result_is_ok; +} + +BOOST_AUTO_TEST_CASE(test_tgamma_for_issue396_part1_tag) +{ + const bool b_020_through_050_is_ok = test_tgamma_for_issue396_cpp_dec_float_020_through_050(); + + BOOST_CHECK(b_020_through_050_is_ok == true); +} diff --git a/test/test_tgamma_for_issue396_part2.cpp b/test/test_tgamma_for_issue396_part2.cpp new file mode 100644 index 000000000..036f1ac0a --- /dev/null +++ b/test/test_tgamma_for_issue396_part2.cpp @@ -0,0 +1,95 @@ +/////////////////////////////////////////////////////////////////// +// Copyright Christopher Kormanyos 2020. +// Copyright John Maddock 2020. +// Distributed under the Boost Software License, +// Version 1.0. (See accompanying file LICENSE_1_0.txt +// or copy at http://www.boost.org/LICENSE_1_0.txt) +// + +#if 0 +#define BOOST_TEST_MODULE test_tgamma_for_issue396 +#include +#else +#define BOOST_TEST_MAIN +#include // Boost.Test +#endif + +#include +#include +#include +#include +#include + +// In issue 396, a bug regarding overflow was traced back to the tgamma function. +// This test file tests the fix in 433 and its corresponding original bug report code. + +const char* issue396_control_string0 = "0.88622692545275801364908374167057259139877472806119356410690389492645564229551609068747532836927233270811341181214128533311807643286221130126254685480139353423101884932655256142496258651447541311446604768963398140008731950767573986025835009509261700929272348724745632015696088776295310820270966625045319920380686673873757671683399489468292591820439772558258086938002953369671589566640492742312409245102732742609780662578082373375752136938052805399806355360503018602224183618264830685404716174941583421211"; +const char* issue396_control_string1 = "1.1332783889487855673345741655888924755602983082751597766087234145294833900560041537176305387276072906583502717008932373348895801731780765775979953796646009714415152490764416630481375706606053932396039541459764525989187023837695167161085523804417015113740063535865261183579508922972990386756543208549178543857406373798865630303794109491220205170302558277398183764099268751365861892723863412249690833216320407918186480305202146014474770321625907339955121137559264239090240758401696425720048012081453338360E6"; +const char* issue396_control_string2 = "9.3209631040827166083491098091419104379064970381623611540161175194120765977611623552218076053836060223609993676387199220631835256331102029826429784793420637988460945604451237342972023988743201341318701614328454618664952897316247603329530308777063116667275003586843755354841307657702809317290363831151480295446074722690100652644579131609996151999119113967501099655433566352849645431012667388627160383486515144610582794470005796689975604764040892168183647321540427819244511610500074895473959438490375652158E156"; +const char* issue396_control_string3 = "1.2723011956950554641822441803774445695066347098655278283939929838804808618389143636393314317333622154343715992535881414698586440455330620652019981627229614973177953241634213768203151670660953863412381880742653187501307209325406338924004280546485392703623101051957976224599412003938216329590158926122017907280168159527761842471509358725974702333390709735919152262756462872191402491961250987725812831155116532550035967994387094267848607390288008530653715254376729558412833771092612838971719786622446726968E2566"; + +template +bool test_tgamma_for_issue396_value_checker() +{ + typedef BigFloatType floating_point_type; + + // Table[N[Gamma[(1/2) + (10^n)], 503], {n, 0, 3, 1}] + + const boost::array control = + {{ + floating_point_type(issue396_control_string0), + floating_point_type(issue396_control_string1), + floating_point_type(issue396_control_string2), + floating_point_type(issue396_control_string3) + }}; + + boost::uint32_t ten_pow_n = (boost::uint32_t) (1); + + const floating_point_type tol = std::numeric_limits::epsilon() * (boost::uint32_t) (5000); + + bool result_is_ok = true; + + for(typename boost::array::size_type i = 0U; i < control.size(); ++i) + { + const floating_point_type g = boost::math::tgamma(boost::math::constants::half() + ten_pow_n); + + ten_pow_n *= (boost::uint32_t) (10); + + const floating_point_type closeness = fabs(1 - (g / control[i])); + + result_is_ok &= (closeness < tol); + } + + return result_is_ok; +} + +template +bool test_tgamma_for_issue396() +{ + typedef boost::multiprecision::number, boost::multiprecision::et_off> cpp_bin_float_type; + typedef boost::multiprecision::number, boost::multiprecision::et_off> cpp_dec_float_type; + + const bool bin_is_ok = test_tgamma_for_issue396_value_checker(); + const bool dec_is_ok = test_tgamma_for_issue396_value_checker(); + + const bool result_is_ok = (bin_is_ok && dec_is_ok); + + return result_is_ok; +} + +bool test_tgamma_for_issue396_cpp_dec_float_101_through_501() +{ + const bool b_101 = test_tgamma_for_issue396<101U>(); + const bool b_501 = test_tgamma_for_issue396<501U>(); + + const bool result_is_ok = (b_101 && b_501); + + return result_is_ok; +} + +BOOST_AUTO_TEST_CASE(test_tgamma_for_issue396_part2_tag) +{ + const bool b_101_through_501_is_ok = test_tgamma_for_issue396_cpp_dec_float_101_through_501(); + + BOOST_CHECK(b_101_through_501_is_ok == true); +} From f972e46850d57bf400f73273a1de6f16f2c79888 Mon Sep 17 00:00:00 2001 From: Christopher Kormanyos Date: Thu, 17 Dec 2020 08:46:32 +0100 Subject: [PATCH 12/17] On a guess, forward args and promote Chebyshev? --- include/boost/math/special_functions/chebyshev.hpp | 1 + 1 file changed, 1 insertion(+) diff --git a/include/boost/math/special_functions/chebyshev.hpp b/include/boost/math/special_functions/chebyshev.hpp index 8a870b926..af3cfaa26 100644 --- a/include/boost/math/special_functions/chebyshev.hpp +++ b/include/boost/math/special_functions/chebyshev.hpp @@ -6,6 +6,7 @@ #ifndef BOOST_MATH_SPECIAL_CHEBYSHEV_HPP #define BOOST_MATH_SPECIAL_CHEBYSHEV_HPP #include +#include #include #include From 8c7adc68561979860053925c7219094491e0e4cb Mon Sep 17 00:00:00 2001 From: Christopher Kormanyos Date: Sat, 19 Dec 2020 09:03:01 +0100 Subject: [PATCH 13/17] [CI SKPI] Remove draft Jam unintended for tracking --- test/Jamfile_.v2 | 1390 ---------------------------------------------- 1 file changed, 1390 deletions(-) delete mode 100644 test/Jamfile_.v2 diff --git a/test/Jamfile_.v2 b/test/Jamfile_.v2 deleted file mode 100644 index 5227dbe59..000000000 --- a/test/Jamfile_.v2 +++ /dev/null @@ -1,1390 +0,0 @@ -# Copyright Daryle Walker, Hubert Holin, John Maddock 2006 - 2007 -# copyright Paul A. Bristow 2006 - 2010 -# Distributed under the Boost Software License, Version 1.0. -# (See accompanying file LICENSE_1_0.txt or copy at -# http://www.boost.org/LICENSE_1_0.txt. -# \math_toolkit\libs\math\test\jamfile.v2 -# Runs all math toolkit tests, functions & distributions, -# and build math examples. - -# bring in the rules for testing -import testing ; -import modules ; -import path ; -import pch ; -import ../../config/checks/config : requires ; - -local ntl-path = [ modules.peek : NTL_PATH ] ; -local gmp_path = [ modules.peek : GMP_PATH ] ; -local e_float_path = [ modules.peek : E_FLOAT_PATH ] ; - -# -# PCH support is broken when --remove-test-targets is specified on the command -# line. Disable it until someone fixes this. -# -local remove-test-targets = [ MATCH (--remove-test-targets) : [ modules.peek : ARGV ] ] ; - -if $(remove-test-targets) -{ - OBJ_REMOVAL_OPTIONS = off ; -} - -obj no_eh : noeh_support.cpp ; - - -project - : requirements - $(OBJ_REMOVAL_OPTIONS) - acc:+W2068,2461,2236,4070,4069 - intel-win:-nologo - intel-win:-nologo - #intel-linux:off - intel-darwin:off - msvc:all - msvc:on - msvc:/wd4996 - msvc:/wd4511 # copy constructor could not be generated - msvc:/wd4512 - msvc:/wd4610 - msvc:/wd4510 - msvc:/wd4127 - msvc:/wd4459 - msvc:/wd4701 # needed for lexical cast - temporary. - msvc:/wd4189 # local variable is initialized but not referenced - msvc-7.1:../vc71_fix//vc_fix - msvc-7.1:off - clang-6.0.0:off # added to see effect. - gcc,windows:off - borland:static - # msvc:/wd4506 has no effect? - # suppress xstring(237) : warning C4506: no definition for inline function - ../../.. - ../../regex/build//boost_regex - off:no_eh - shared:BOOST_REGEX_DYN_LINK=1 - # For simplicities sake, make everything a static lib: - static - BOOST_ALL_NO_LIB=1 - BOOST_UBLAS_UNSUPPORTED_COMPILER=0 - . - ../include_private - $(ntl-path)/include - $(e_float_path) - $(gmp_path) $(gmp_path)/mpfr $(gmp_path)/gmpfrxx $(gmp_path)/mpfrc++ - $(gmp_path) - $(mpfr_path) - $(mpfr_path)/build.vc10/lib/Win32/Debug - ; - -if $(ntl-path) -{ - lib ntl : [ GLOB $(ntl-path)/src : *.cpp ] ; -} -else -{ - lib ntl ; -} - -explicit ntl ; - -cpp-pch pch : pch.hpp : ../../test/build//boost_unit_test_framework ; -cpp-pch pch_light : pch_light.hpp : ../../test/build//boost_unit_test_framework ; -lib compile_test_main : compile_test/main.cpp ; - -test-suite special_one : - [ run test_beta.cpp test_instances//test_instances pch_light ../../test/build//boost_unit_test_framework ] -; - -test-suite special_fun : - [ run test_1F0.cpp ../../test/build//boost_unit_test_framework : : : [ requires cxx11_auto_declarations cxx11_lambdas cxx11_unified_initialization_syntax cxx11_smart_ptr ] ] # hypergeometric_pFq_checked_series.hpp uses auto, the rest are from quadrature tests. - [ run test_2F0.cpp ../../test/build//boost_unit_test_framework : : : [ requires cxx11_auto_declarations cxx11_lambdas cxx11_unified_initialization_syntax cxx11_smart_ptr ] [ check-target-builds ../config//has_float128 "GCC libquadmath and __float128 support" : BOOST_MATH_TEST_FLOAT128 "-Bstatic -lquadmath -Bdynamic" ] ] - - [ run test_0F1.cpp ../../test/build//boost_unit_test_framework : : : [ requires cxx11_auto_declarations cxx11_lambdas cxx11_unified_initialization_syntax cxx11_smart_ptr ] TEST=1 : test_0F1_1 ] - [ run test_0F1.cpp ../../test/build//boost_unit_test_framework : : : [ requires cxx11_auto_declarations cxx11_lambdas cxx11_unified_initialization_syntax cxx11_smart_ptr ] TEST=2 : test_0F1_2 ] - - [ run test_1F1.cpp ../../test/build//boost_unit_test_framework : : : [ requires cxx11_auto_declarations cxx11_lambdas cxx11_unified_initialization_syntax cxx11_smart_ptr ] TEST=1 clang:-Wno-literal-range : test_1F1_integrals ] - [ run test_1F1.cpp ../../test/build//boost_unit_test_framework : : : [ requires cxx11_auto_declarations cxx11_lambdas cxx11_unified_initialization_syntax cxx11_smart_ptr ] TEST=2 clang:-Wno-literal-range : test_1F1_float ] - [ run test_1F1.cpp ../../test/build//boost_unit_test_framework : : : [ requires cxx11_auto_declarations cxx11_lambdas cxx11_unified_initialization_syntax cxx11_smart_ptr ] TEST=3 clang:-Wno-literal-range : test_1F1_double ] - [ run test_1F1.cpp ../../test/build//boost_unit_test_framework : : : [ requires cxx11_auto_declarations cxx11_lambdas cxx11_unified_initialization_syntax cxx11_smart_ptr ] TEST=4 release clang:-Wno-literal-range : test_1F1_long_double ] - - [ run test_1F1_regularized.cpp ../../test/build//boost_unit_test_framework : : : [ requires cxx11_auto_declarations cxx11_lambdas cxx11_unified_initialization_syntax cxx11_smart_ptr ] TEST=2 clang:-Wno-literal-range : test_1F1_regularized_float ] - [ run test_1F1_regularized.cpp ../../test/build//boost_unit_test_framework : : : [ requires cxx11_auto_declarations cxx11_lambdas cxx11_unified_initialization_syntax cxx11_smart_ptr ] TEST=3 clang:-Wno-literal-range : test_1F1_regularized_double ] - [ run test_1F1_regularized.cpp ../../test/build//boost_unit_test_framework : : : [ requires cxx11_auto_declarations cxx11_lambdas cxx11_unified_initialization_syntax cxx11_smart_ptr ] TEST=4 release clang:-Wno-literal-range : test_1F1_regularized_long_double ] - [ run test_1F1_regularized.cpp ../../test/build//boost_unit_test_framework : : : [ requires cxx11_auto_declarations cxx11_lambdas cxx11_unified_initialization_syntax cxx11_smart_ptr ] TEST=5 clang:-Wno-literal-range : test_1F1_regularized_real_concept ] - # These are slow... - [ run test_1F1_log.cpp ../../test/build//boost_unit_test_framework : : : release [ requires cxx11_auto_declarations cxx11_lambdas cxx11_unified_initialization_syntax cxx11_smart_ptr ] TEST=2 clang:-Wno-literal-range : test_1F1_log_float ] - [ run test_1F1_log.cpp ../../test/build//boost_unit_test_framework : : : release [ requires cxx11_auto_declarations cxx11_lambdas cxx11_unified_initialization_syntax cxx11_smart_ptr ] TEST=3 clang:-Wno-literal-range : test_1F1_log_double ] - [ run test_1F1_log.cpp ../../test/build//boost_unit_test_framework : : : release [ requires cxx11_auto_declarations cxx11_lambdas cxx11_unified_initialization_syntax cxx11_smart_ptr ] TEST=4 release clang:-Wno-literal-range : test_1F1_log_long_double ] - [ run test_1F1_log.cpp ../../test/build//boost_unit_test_framework : : : release [ requires cxx11_auto_declarations cxx11_lambdas cxx11_unified_initialization_syntax cxx11_smart_ptr ] TEST=5 clang:-Wno-literal-range : test_1F1_log_real_concept ] - # pFq: - [ run test_pFq.cpp ../../test/build//boost_unit_test_framework : : : [ requires cxx11_hdr_initializer_list cxx11_auto_declarations cxx11_lambdas cxx11_unified_initialization_syntax cxx11_smart_ptr ] TEST=2 release clang:-Wno-literal-range : test_pFq_float ] - [ run test_pFq.cpp ../../test/build//boost_unit_test_framework : : : [ requires cxx11_hdr_initializer_list cxx11_auto_declarations cxx11_lambdas cxx11_unified_initialization_syntax cxx11_smart_ptr ] TEST=3 release clang:-Wno-literal-range : test_pFq_double ] - [ run test_pFq.cpp ../../test/build//boost_unit_test_framework : : : [ requires cxx11_hdr_initializer_list cxx11_auto_declarations cxx11_lambdas cxx11_unified_initialization_syntax cxx11_smart_ptr ] TEST=4 release clang:-Wno-literal-range : test_pFq_long_double ] - [ run test_pFq.cpp ../../test/build//boost_unit_test_framework : : : [ requires cxx11_hdr_initializer_list cxx11_auto_declarations cxx11_lambdas cxx11_unified_initialization_syntax cxx11_smart_ptr ] TEST=5 release clang:-Wno-literal-range : test_pFq_real_concept ] - - - [ run hypot_test.cpp test_instances//test_instances pch_light ../../test/build//boost_unit_test_framework ] - [ run pow_test.cpp ../../test/build//boost_unit_test_framework ] - [ run log1p_expm1_test.cpp test_instances//test_instances pch_light ../../test/build//boost_unit_test_framework ] - [ run powm1_sqrtp1m1_test.cpp test_instances//test_instances pch_light ../../test/build//boost_unit_test_framework ] - [ run special_functions_test.cpp ../../test/build//boost_unit_test_framework ] - [ run test_airy.cpp test_instances//test_instances pch_light ../../test/build//boost_unit_test_framework ] - [ run test_bessel_j.cpp test_instances//test_instances pch_light ../../test/build//boost_unit_test_framework ] - [ run test_bessel_y.cpp test_instances//test_instances pch_light ../../test/build//boost_unit_test_framework ] - [ run test_bessel_i.cpp test_instances//test_instances pch_light ../../test/build//boost_unit_test_framework ] - [ run test_bessel_k.cpp test_instances//test_instances pch_light ../../test/build//boost_unit_test_framework ] - [ run test_bessel_j_prime.cpp test_instances//test_instances pch_light ../../test/build//boost_unit_test_framework ] - [ run test_bessel_y_prime.cpp test_instances//test_instances pch_light ../../test/build//boost_unit_test_framework ] - [ run test_bessel_i_prime.cpp test_instances//test_instances pch_light ../../test/build//boost_unit_test_framework ] - [ run test_bessel_k_prime.cpp test_instances//test_instances pch_light ../../test/build//boost_unit_test_framework ] -# [ run test_beta.cpp test_instances//test_instances pch_light ../../test/build//boost_unit_test_framework ] - [ run test_bessel_airy_zeros.cpp ../../test/build//boost_unit_test_framework ] - [ run test_bernoulli_constants.cpp ../../test/build//boost_unit_test_framework ] - [ run test_binomial_coeff.cpp pch ../../test/build//boost_unit_test_framework ] - [ run test_carlson.cpp test_instances//test_instances pch_light ../../test/build//boost_unit_test_framework - : # command line - : # input files - : # requirements - TEST1 - : test_carlson_1 ] - [ run test_carlson.cpp test_instances//test_instances pch_light ../../test/build//boost_unit_test_framework - : # command line - : # input files - : # requirements - TEST2 - : test_carlson_2 ] - [ run test_carlson.cpp test_instances//test_instances pch_light ../../test/build//boost_unit_test_framework - : # command line - : # input files - : # requirements - TEST3 - : test_carlson_3 ] - [ run test_carlson.cpp test_instances//test_instances pch_light ../../test/build//boost_unit_test_framework - : # command line - : # input files - : # requirements - TEST4 - : test_carlson_4 ] - [ run test_cbrt.cpp test_instances//test_instances pch_light ../../test/build//boost_unit_test_framework ] - [ run test_difference.cpp ../../test/build//boost_unit_test_framework ] - [ run test_digamma.cpp test_instances//test_instances pch_light ../../test/build//boost_unit_test_framework ] - [ run test_ellint_1.cpp test_instances//test_instances pch_light ../../test/build//boost_unit_test_framework ] - [ run test_ellint_2.cpp test_instances//test_instances pch_light ../../test/build//boost_unit_test_framework ] - [ run test_ellint_3.cpp test_instances//test_instances pch_light ../../test/build//boost_unit_test_framework ] - [ run test_ellint_d.cpp test_instances//test_instances pch_light ../../test/build//boost_unit_test_framework ] - [ run test_jacobi_theta.cpp ../../test/build//boost_unit_test_framework : : : [ requires cxx11_auto_declarations cxx11_lambdas cxx11_smart_ptr cxx11_unified_initialization_syntax ] ] - [ run test_jacobi_zeta.cpp test_instances//test_instances pch_light ../../test/build//boost_unit_test_framework ] - [ run test_heuman_lambda.cpp test_instances//test_instances pch_light ../../test/build//boost_unit_test_framework ] - [ run test_erf.cpp test_instances//test_instances pch_light ../../test/build//boost_unit_test_framework ] - [ run test_expint.cpp test_instances//test_instances pch_light ../../test/build//boost_unit_test_framework ] - [ run test_factorials.cpp pch ../../test/build//boost_unit_test_framework ] - [ run test_gamma.cpp test_instances//test_instances pch_light ../../test/build//boost_unit_test_framework ] - [ run test_gamma_mp.cpp ../../test/build//boost_unit_test_framework : : : release ] - [ run test_hankel.cpp ../../test/build//boost_unit_test_framework ] - [ run test_hermite.cpp test_instances//test_instances pch_light ../../test/build//boost_unit_test_framework ] - [ run test_ibeta.cpp test_instances//test_instances pch_light ../../test/build//boost_unit_test_framework - : # command line - : # input files - : # requirements - TEST_FLOAT - intel:off - : test_ibeta_float ] - [ run test_ibeta.cpp test_instances//test_instances pch_light ../../test/build//boost_unit_test_framework - : # command line - : # input files - : # requirements - TEST_DOUBLE - intel:off - : test_ibeta_double ] - [ run test_ibeta.cpp test_instances//test_instances pch_light ../../test/build//boost_unit_test_framework - : # command line - : # input files - : # requirements - TEST_LDOUBLE - intel:off - : test_ibeta_long_double ] - [ run test_ibeta.cpp test_instances//test_instances pch_light ../../test/build//boost_unit_test_framework - : # command line - : # input files - : # requirements - TEST_REAL_CONCEPT - TEST_DATA=1 - intel:off - : test_ibeta_real_concept1 ] - [ run test_ibeta.cpp test_instances//test_instances pch_light ../../test/build//boost_unit_test_framework - : # command line - : # input files - : # requirements - TEST_REAL_CONCEPT - TEST_DATA=2 - intel:off - : test_ibeta_real_concept2 ] - [ run test_ibeta.cpp test_instances//test_instances pch_light ../../test/build//boost_unit_test_framework - : # command line - : # input files - : # requirements - TEST_REAL_CONCEPT - TEST_DATA=3 - intel:off - : test_ibeta_real_concept3 ] - [ run test_ibeta.cpp test_instances//test_instances pch_light ../../test/build//boost_unit_test_framework - : # command line - : # input files - : # requirements - TEST_REAL_CONCEPT - TEST_DATA=4 - intel:off - : test_ibeta_real_concept4 ] - - [ run test_ibeta_derivative.cpp test_instances//test_instances pch_light ../../test/build//boost_unit_test_framework - : # command line - : # input files - : # requirements - TEST_FLOAT - intel:off - gcc:-Wno-overflow - : test_ibeta_derivative_float ] - [ run test_ibeta_derivative.cpp test_instances//test_instances pch_light ../../test/build//boost_unit_test_framework - : # command line - : # input files - : # requirements - TEST_DOUBLE - intel:off - gcc:-Wno-overflow - : test_ibeta_derivative_double ] - [ run test_ibeta_derivative.cpp test_instances//test_instances pch_light ../../test/build//boost_unit_test_framework - : # command line - : # input files - : # requirements - TEST_LDOUBLE - intel:off - gcc:-Wno-overflow - : test_ibeta_derivative_long_double ] - [ run test_ibeta_derivative.cpp test_instances//test_instances pch_light ../../test/build//boost_unit_test_framework - : # command line - : # input files - : # requirements - TEST_REAL_CONCEPT - TEST_DATA=1 - intel:off - gcc:-Wno-overflow - : test_ibeta_derivative_real_concept1 ] - [ run test_ibeta_derivative.cpp test_instances//test_instances pch_light ../../test/build//boost_unit_test_framework - : # command line - : # input files - : # requirements - TEST_REAL_CONCEPT - TEST_DATA=2 - intel:off - gcc:-Wno-overflow - : test_ibeta_derivative_real_concept2 ] - [ run test_ibeta_derivative.cpp test_instances//test_instances pch_light ../../test/build//boost_unit_test_framework - : # command line - : # input files - : # requirements - TEST_REAL_CONCEPT - TEST_DATA=3 - intel:off - gcc:-Wno-overflow - : test_ibeta_derivative_real_concept3 ] - [ run test_ibeta_derivative.cpp test_instances//test_instances pch_light ../../test/build//boost_unit_test_framework - : # command line - : # input files - : # requirements - TEST_REAL_CONCEPT - TEST_DATA=4 - intel:off - gcc:-Wno-overflow - : test_ibeta_derivative_real_concept4 ] - - [ run test_ibeta_inv.cpp test_instances//test_instances pch_light ../../test/build//boost_unit_test_framework - : # command line - : # input files - : # requirements - TEST_FLOAT - intel:off - : test_ibeta_inv_float ] - [ run test_ibeta_inv.cpp test_instances//test_instances pch_light ../../test/build//boost_unit_test_framework - : # command line - : # input files - : # requirements - TEST_DOUBLE - intel:off - : test_ibeta_inv_double ] - [ run test_ibeta_inv.cpp test_instances//test_instances pch_light ../../test/build//boost_unit_test_framework - : # command line - : # input files - : # requirements - TEST_LDOUBLE - intel:off - : test_ibeta_inv_long_double ] - [ run test_ibeta_inv.cpp test_instances//test_instances pch_light ../../test/build//boost_unit_test_framework - : # command line - : # input files - : # requirements - TEST_REAL_CONCEPT - TEST_DATA=1 - intel:off - : test_ibeta_inv_real_concept1 ] - [ run test_ibeta_inv.cpp test_instances//test_instances pch_light ../../test/build//boost_unit_test_framework - : # command line - : # input files - : # requirements - TEST_REAL_CONCEPT - TEST_DATA=2 - intel:off - : test_ibeta_inv_real_concept2 ] - [ run test_ibeta_inv.cpp test_instances//test_instances pch_light ../../test/build//boost_unit_test_framework - : # command line - : # input files - : # requirements - TEST_REAL_CONCEPT - TEST_DATA=3 - intel:off - : test_ibeta_inv_real_concept3 ] - [ run test_ibeta_inv.cpp test_instances//test_instances pch_light ../../test/build//boost_unit_test_framework - : # command line - : # input files - : # requirements - TEST_REAL_CONCEPT - TEST_DATA=4 - intel:off - : test_ibeta_inv_real_concept4 ] - [ run test_ibeta_inv_ab.cpp test_instances//test_instances pch_light ../../test/build//boost_unit_test_framework - : # command line - : # input files - : # requirements - TEST_FLOAT - intel:off - : test_ibeta_inv_ab_float ] - [ run test_ibeta_inv_ab.cpp test_instances//test_instances pch_light ../../test/build//boost_unit_test_framework - : # command line - : # input files - : # requirements - TEST_DOUBLE - intel:off - : test_ibeta_inv_ab_double ] - [ run test_ibeta_inv_ab.cpp test_instances//test_instances pch_light ../../test/build//boost_unit_test_framework - : # command line - : # input files - : # requirements - TEST_LDOUBLE - intel:off - : test_ibeta_inv_ab_long_double ] - [ run test_ibeta_inv_ab.cpp test_instances//test_instances pch_light ../../test/build//boost_unit_test_framework - : # command line - : # input files - : # requirements - TEST_REAL_CONCEPT - TEST_DATA=1 - intel:off - : test_ibeta_inv_ab_real_concept1 ] - [ run test_ibeta_inv_ab.cpp test_instances//test_instances pch_light ../../test/build//boost_unit_test_framework - : # command line - : # input files - : # requirements - TEST_REAL_CONCEPT - TEST_DATA=2 - intel:off - : test_ibeta_inv_ab_real_concept2 ] - [ run test_ibeta_inv_ab.cpp test_instances//test_instances pch_light ../../test/build//boost_unit_test_framework - : # command line - : # input files - : # requirements - TEST_REAL_CONCEPT - TEST_DATA=3 - intel:off - : test_ibeta_inv_ab_real_concept3 ] - [ run test_igamma.cpp test_instances//test_instances pch_light ../../test/build//boost_unit_test_framework ] - [ run test_igamma_inv.cpp test_instances//test_instances pch_light ../../test/build//boost_unit_test_framework - : # command line - : # input files - : # requirements - TEST_FLOAT - intel:off - : test_igamma_inv_float ] - [ run test_igamma_inv.cpp test_instances//test_instances pch_light ../../test/build//boost_unit_test_framework - : # command line - : # input files - : # requirements - TEST_DOUBLE - intel:off - : test_igamma_inv_double ] - [ run test_igamma_inv.cpp test_instances//test_instances pch_light ../../test/build//boost_unit_test_framework - : # command line - : # input files - : # requirements - TEST_LDOUBLE - intel:off - : test_igamma_inv_long_double ] - [ run test_igamma_inv.cpp test_instances//test_instances pch_light ../../test/build//boost_unit_test_framework - : # command line - : # input files - : # requirements - TEST_REAL_CONCEPT - intel:off - : test_igamma_inv_real_concept ] - [ run test_igamma_inva.cpp test_instances//test_instances pch_light ../../test/build//boost_unit_test_framework - : # command line - : # input files - : # requirements - TEST_FLOAT - intel:off - : test_igamma_inva_float ] - [ run test_igamma_inva.cpp test_instances//test_instances pch_light ../../test/build//boost_unit_test_framework - : # command line - : # input files - : # requirements - TEST_DOUBLE - intel:off - : test_igamma_inva_double ] - [ run test_igamma_inva.cpp test_instances//test_instances pch_light ../../test/build//boost_unit_test_framework - : # command line - : # input files - : # requirements - TEST_LDOUBLE - intel:off - : test_igamma_inva_long_double ] - [ run test_igamma_inva.cpp test_instances//test_instances pch_light ../../test/build//boost_unit_test_framework - : # command line - : # input files - : # requirements - TEST_REAL_CONCEPT - intel:off - : test_igamma_inva_real_concept ] - [ run test_instantiate1.cpp test_instantiate2.cpp ] - [ run test_jacobi.cpp pch_light ../../test/build//boost_unit_test_framework ] - [ run test_laguerre.cpp test_instances//test_instances pch_light ../../test/build//boost_unit_test_framework ] - - [ run test_lambert_w.cpp ../../test/build//boost_unit_test_framework ] - [ run test_lambert_w.cpp ../../test/build//boost_unit_test_framework : : : BOOST_MATH_TEST_MULTIPRECISION=1 [ check-target-builds ../config//has_float128 "GCC libquadmath and __float128 support" : BOOST_MATH_TEST_FLOAT128 "-Bstatic -lquadmath -Bdynamic" ] : test_lambert_w_multiprecision_1 ] - [ run test_lambert_w.cpp ../../test/build//boost_unit_test_framework : : : BOOST_MATH_TEST_MULTIPRECISION=2 [ check-target-builds ../config//has_float128 "GCC libquadmath and __float128 support" : BOOST_MATH_TEST_FLOAT128 "-Bstatic -lquadmath -Bdynamic" ] : test_lambert_w_multiprecision_2 ] - [ run test_lambert_w.cpp ../../test/build//boost_unit_test_framework : : : BOOST_MATH_TEST_MULTIPRECISION=3 [ check-target-builds ../config//has_float128 "GCC libquadmath and __float128 support" : BOOST_MATH_TEST_FLOAT128 "-Bstatic -lquadmath -Bdynamic" ] : test_lambert_w_multiprecision_3 ] - [ run test_lambert_w.cpp ../../test/build//boost_unit_test_framework : : : BOOST_MATH_TEST_MULTIPRECISION=4 BOOST_MATH_TEST_FLOAT128 [ check-target-builds ../config//has_float128 "GCC libquadmath and __float128 support" : BOOST_MATH_TEST_FLOAT128 "-Bstatic -lquadmath -Bdynamic" ] : test_lambert_w_multiprecision_4 ] - [ run test_lambert_w_integrals_float128.cpp ../../test/build//boost_unit_test_framework : : : release [ check-target-builds ../config//has_float128 "GCC libquadmath and __float128 support" : "-Bstatic -lquadmath -Bdynamic" : no ] [ requires cxx11_auto_declarations cxx11_lambdas cxx11_smart_ptr cxx11_unified_initialization_syntax sfinae_expr ] ] - [ run test_lambert_w_integrals_quad.cpp ../../test/build//boost_unit_test_framework : : : release [ requires cxx11_auto_declarations cxx11_lambdas cxx11_smart_ptr cxx11_unified_initialization_syntax sfinae_expr ] [ check-target-builds ../config//has_float128 "GCC libquadmath and __float128 support" : BOOST_MATH_TEST_FLOAT128 "-Bstatic -lquadmath -Bdynamic" ] ] - [ run test_lambert_w_integrals_long_double.cpp ../../test/build//boost_unit_test_framework : : : [ requires cxx11_auto_declarations cxx11_lambdas cxx11_smart_ptr cxx11_unified_initialization_syntax sfinae_expr ] ] - [ run test_lambert_w_integrals_double.cpp ../../test/build//boost_unit_test_framework : : : [ requires cxx11_auto_declarations cxx11_lambdas cxx11_smart_ptr cxx11_unified_initialization_syntax sfinae_expr ] ] - [ run test_lambert_w_integrals_float.cpp ../../test/build//boost_unit_test_framework : : : [ requires cxx11_auto_declarations cxx11_lambdas cxx11_smart_ptr cxx11_unified_initialization_syntax sfinae_expr ] ] - [ run test_lambert_w_derivative.cpp ../../test/build//boost_unit_test_framework : : : BOOST_MATH_TEST_MULTIPRECISION [ check-target-builds ../config//has_float128 "GCC libquadmath and __float128 support" : BOOST_MATH_TEST_FLOAT128 "-Bstatic -lquadmath -Bdynamic" ] ] - - [ run test_legendre.cpp test_instances//test_instances pch_light ../../test/build//boost_unit_test_framework : : : [ check-target-builds ../config//has_float128 "GCC libquadmath and __float128 support" : "-Bstatic -lquadmath -Bdynamic" ] ] - [ run chebyshev_test.cpp : : : [ requires cxx11_inline_namespaces cxx11_unified_initialization_syntax cxx11_hdr_tuple cxx11_smart_ptr cxx11_defaulted_functions cxx11_auto_declarations cxx11_range_based_for cxx11_constexpr ] [ check-target-builds ../config//has_float128 "GCC libquadmath and __float128 support" : "-Bstatic -lquadmath -Bdynamic" ] ] - [ run chebyshev_transform_test.cpp ../config//fftw3f : : : TEST1 [ requires cxx11_smart_ptr cxx11_defaulted_functions cxx11_auto_declarations cxx11_range_based_for ] [ check-target-builds ../config//has_fftw3 "libfftw3" : : no ] : chebyshev_transform_test_1 ] - [ run chebyshev_transform_test.cpp ../config//fftw3 : : : TEST2 [ requires cxx11_smart_ptr cxx11_defaulted_functions cxx11_auto_declarations cxx11_range_based_for ] [ check-target-builds ../config//has_fftw3 "libfftw3" : : no ] : chebyshev_transform_test_2 ] - [ run chebyshev_transform_test.cpp ../config//fftw3l : : : TEST3 [ requires cxx11_smart_ptr cxx11_defaulted_functions cxx11_auto_declarations cxx11_range_based_for ] [ check-target-builds ../config//has_fftw3 "libfftw3" : : no ] : chebyshev_transform_test_3 ] - [ run chebyshev_transform_test.cpp ../config//fftw3q ../config//quadmath : : : TEST4 [ requires cxx11_smart_ptr cxx11_defaulted_functions cxx11_auto_declarations cxx11_range_based_for ] [ check-target-builds ../config//has_fftw3 "libfftw3" : : no ] [ check-target-builds ../config//has_float128 "__float128" : : no ] : chebyshev_transform_test_4 ] - - [ run cardinal_trigonometric_test.cpp ../config//fftw3f : : : TEST1 [ requires cxx11_auto_declarations cxx11_range_based_for ] [ check-target-builds ../config//has_fftw3 "libfftw3" : : no ] : cardinal_trigonometric_test_1 ] - [ run cardinal_trigonometric_test.cpp ../config//fftw3 : : : TEST2 [ requires cxx11_auto_declarations cxx11_range_based_for ] [ check-target-builds ../config//has_fftw3 "libfftw3" : : no ] : cardinal_trigonometric_test_2 ] - [ run cardinal_trigonometric_test.cpp ../config//fftw3l : : : TEST3 [ requires cxx11_auto_declarations cxx11_range_based_for ] [ check-target-builds ../config//has_fftw3 "libfftw3" : : no ] : cardinal_trigonometric_test_3 ] - [ run cardinal_trigonometric_test.cpp ../config//fftw3q ../config//quadmath : : : TEST4 [ requires cxx11_auto_declarations cxx11_range_based_for ] [ check-target-builds ../config//has_fftw3 "libfftw3" : : no ] [ check-target-builds ../config//has_float128 "__float128" : : no ] : cardinal_trigonometric_test_4 ] - - - [ run test_ldouble_simple.cpp ../../test/build//boost_unit_test_framework ] - # Needs to run in release mode, as it's rather slow: - [ run test_next.cpp pch ../../test/build//boost_unit_test_framework : : : release ] - [ run test_next_decimal.cpp pch ../../test/build//boost_unit_test_framework : : : release ] - [ run test_owens_t.cpp ../../test/build//boost_unit_test_framework ] - [ run test_polygamma.cpp test_instances//test_instances pch_light ../../test/build//boost_unit_test_framework ] - [ run test_trigamma.cpp test_instances//test_instances ../../test/build//boost_unit_test_framework ] - [ run test_round.cpp pch ../../test/build//boost_unit_test_framework ] - [ run test_spherical_harmonic.cpp test_instances//test_instances pch_light ../../test/build//boost_unit_test_framework ] - [ run test_sign.cpp ../../test/build//boost_unit_test_framework ] - [ run test_tgamma_for_issue396.cpp ../../test/build//boost_unit_test_framework : : : gcc-mingw:-Wa,-mbig-obj off msvc:/bigobj ] - [ run test_tgamma_ratio.cpp test_instances//test_instances pch_light ../../test/build//boost_unit_test_framework ] - [ run test_trig.cpp test_instances//test_instances pch_light ../../test/build//boost_unit_test_framework ] - [ run test_zeta.cpp ../../test/build//boost_unit_test_framework test_instances//test_instances pch_light ] - [ run test_sinc.cpp ../../test/build//boost_unit_test_framework pch_light ] -; - -test-suite distribution_tests : - [ run test_arcsine.cpp pch ../../test/build//boost_unit_test_framework ] - [ run test_bernoulli.cpp ../../test/build//boost_unit_test_framework ] - [ run test_beta_dist.cpp ../../test/build//boost_unit_test_framework ] - [ run test_binomial.cpp ../../test/build//boost_unit_test_framework - : # command line - : # input files - : # requirements - TEST_FLOAT - intel:off - : test_binomial_float ] - [ run test_binomial.cpp ../../test/build//boost_unit_test_framework - : # command line - : # input files - : # requirements - TEST_DOUBLE - intel:off - : test_binomial_double ] - [ run test_binomial.cpp ../../test/build//boost_unit_test_framework - : # command line - : # input files - : # requirements - TEST_LDOUBLE - intel:off - : test_binomial_long_double ] - [ run test_binomial.cpp ../../test/build//boost_unit_test_framework - : # command line - : # input files - : # requirements - TEST_REAL_CONCEPT - TEST_ROUNDING=0 - intel:off - : test_binomial_real_concept0 ] - [ run test_binomial.cpp ../../test/build//boost_unit_test_framework - : # command line - : # input files - : # requirements - TEST_REAL_CONCEPT - TEST_ROUNDING=1 - intel:off - : test_binomial_real_concept1 ] - [ run test_binomial.cpp ../../test/build//boost_unit_test_framework - : # command line - : # input files - : # requirements - TEST_REAL_CONCEPT - TEST_ROUNDING=2 - intel:off - : test_binomial_real_concept2 ] - [ run test_binomial.cpp ../../test/build//boost_unit_test_framework - : # command line - : # input files - : # requirements - TEST_REAL_CONCEPT - TEST_ROUNDING=3 - intel:off - : test_binomial_real_concept3 ] - [ run test_binomial.cpp ../../test/build//boost_unit_test_framework - : # command line - : # input files - : # requirements - TEST_REAL_CONCEPT - TEST_ROUNDING=4 - intel:off - : test_binomial_real_concept4 ] - [ run test_binomial.cpp ../../test/build//boost_unit_test_framework - : # command line - : # input files - : # requirements - TEST_REAL_CONCEPT - TEST_ROUNDING=5 - intel:off - : test_binomial_real_concept5 ] - [ run test_binomial.cpp ../../test/build//boost_unit_test_framework - : # command line - : # input files - : # requirements - TEST_REAL_CONCEPT - TEST_ROUNDING=6 - intel:off - : test_binomial_real_concept6 ] - [ run test_cauchy.cpp ../../test/build//boost_unit_test_framework ] - [ run test_chi_squared.cpp ../../test/build//boost_unit_test_framework ] - [ run test_dist_overloads.cpp ../../test/build//boost_unit_test_framework ] - [ run test_exponential_dist.cpp ../../test/build//boost_unit_test_framework ] - [ run test_extreme_value.cpp ../../test/build//boost_unit_test_framework ] - [ run test_find_location.cpp pch ../../test/build//boost_unit_test_framework ] - [ run test_find_scale.cpp pch ../../test/build//boost_unit_test_framework ] - [ run test_fisher_f.cpp ../../test/build//boost_unit_test_framework ] - [ run test_gamma_dist.cpp pch ../../test/build//boost_unit_test_framework ] - [ run test_geometric.cpp ../../test/build//boost_unit_test_framework ] - [ run test_hyperexponential_dist.cpp ../../test/build//boost_unit_test_framework ] - [ run test_hypergeometric_dist.cpp ../../test/build//boost_unit_test_framework - : # command line - : # input files - : # requirements - TEST_QUANT=0 - intel:off - : test_hypergeometric_dist0 ] - [ run test_hypergeometric_dist.cpp ../../test/build//boost_unit_test_framework - : # command line - : # input files - : # requirements - TEST_QUANT=1 - intel:off - : test_hypergeometric_dist1 ] - [ run test_hypergeometric_dist.cpp ../../test/build//boost_unit_test_framework - : # command line - : # input files - : # requirements - TEST_QUANT=2 - intel:off - : test_hypergeometric_dist2 ] - [ run test_hypergeometric_dist.cpp ../../test/build//boost_unit_test_framework - : # command line - : # input files - : # requirements - TEST_QUANT=3 - intel:off - : test_hypergeometric_dist3 ] - [ run test_hypergeometric_dist.cpp ../../test/build//boost_unit_test_framework - : # command line - : # input files - : # requirements - TEST_QUANT=4 - intel:off - : test_hypergeometric_dist4 ] - [ run test_hypergeometric_dist.cpp ../../test/build//boost_unit_test_framework - : # command line - : # input files - : # requirements - TEST_QUANT=5 - intel:off - : test_hypergeometric_dist5 ] - [ run test_inverse_chi_squared_distribution.cpp ../../test/build//boost_unit_test_framework ] - [ run test_inverse_gamma_distribution.cpp ../../test/build//boost_unit_test_framework ] - [ run test_inverse_gaussian.cpp ../../test/build//boost_unit_test_framework ] - [ run test_kolmogorov_smirnov.cpp ../../test/build//boost_unit_test_framework : : : [ requires cxx11_hdr_initializer_list cxx11_auto_declarations cxx11_lambdas cxx11_unified_initialization_syntax cxx11_smart_ptr ] ] - [ run test_laplace.cpp ../../test/build//boost_unit_test_framework ] - [ run test_inv_hyp.cpp pch ../../test/build//boost_unit_test_framework ] - [ run test_logistic_dist.cpp ../../test/build//boost_unit_test_framework ] - [ run test_lognormal.cpp ../../test/build//boost_unit_test_framework ] - [ run test_negative_binomial.cpp ../../test/build//boost_unit_test_framework - : # command line - : # input files - : # requirements - TEST_FLOAT - intel:off - : test_negative_binomial_float ] - [ run test_negative_binomial.cpp ../../test/build//boost_unit_test_framework - : # command line - : # input files - : # requirements - TEST_DOUBLE - intel:off - : test_negative_binomial_double ] - [ run test_negative_binomial.cpp ../../test/build//boost_unit_test_framework - : # command line - : # input files - : # requirements - TEST_LDOUBLE - intel:off - : test_negative_binomial_long_double ] - [ run test_negative_binomial.cpp ../../test/build//boost_unit_test_framework - : # command line - : # input files - : # requirements - TEST_REAL_CONCEPT - intel:off - : test_negative_binomial_real_concept ] - [ run test_nc_chi_squared.cpp pch ../../test/build//boost_unit_test_framework - : # command line - : # input files - : # requirements - TEST_FLOAT - intel:off - : test_nc_chi_squared_float ] - [ run test_nc_chi_squared.cpp pch ../../test/build//boost_unit_test_framework - : # command line - : # input files - : # requirements - TEST_DOUBLE - intel:off - : test_nc_chi_squared_double ] - [ run test_nc_chi_squared.cpp pch ../../test/build//boost_unit_test_framework - : # command line - : # input files - : # requirements - TEST_LDOUBLE - intel:off - : test_nc_chi_squared_long_double ] - [ run test_nc_chi_squared.cpp pch ../../test/build//boost_unit_test_framework - : # command line - : # input files - : # requirements - TEST_REAL_CONCEPT - intel:off - : test_nc_chi_squared_real_concept ] - [ run test_nc_beta.cpp ../../test/build//boost_unit_test_framework - : # command line - : # input files - : # requirements - TEST_FLOAT - intel:off - : test_nc_beta_float ] - [ run test_nc_beta.cpp ../../test/build//boost_unit_test_framework - : # command line - : # input files - : # requirements - TEST_DOUBLE - intel:off - : test_nc_beta_double ] - [ run test_nc_beta.cpp ../../test/build//boost_unit_test_framework - : # command line - : # input files - : # requirements - TEST_LDOUBLE - intel:off - : test_nc_beta_long_double ] - [ run test_nc_beta.cpp ../../test/build//boost_unit_test_framework - : # command line - : # input files - : # requirements - TEST_REAL_CONCEPT - TEST_DATA=1 - intel:off - : test_nc_beta_real_concept1 ] - [ run test_nc_beta.cpp ../../test/build//boost_unit_test_framework - : # command line - : # input files - : # requirements - TEST_REAL_CONCEPT - TEST_DATA=2 - intel:off - : test_nc_beta_real_concept2 ] - [ run test_nc_f.cpp pch ../../test/build//boost_unit_test_framework ] - [ run test_nc_t.cpp pch ../../test/build//boost_unit_test_framework - : # command line - : # input files - : # requirements - TEST_FLOAT - intel:off - : test_nc_t_float ] - [ run test_nc_t.cpp pch ../../test/build//boost_unit_test_framework - : # command line - : # input files - : # requirements - TEST_DOUBLE - intel:off - : test_nc_t_double ] - [ run test_nc_t.cpp pch ../../test/build//boost_unit_test_framework - : # command line - : # input files - : # requirements - TEST_LDOUBLE - intel:off - : test_nc_t_long_double ] - [ run test_nc_t.cpp pch ../../test/build//boost_unit_test_framework - : # command line - : # input files - : # requirements - TEST_REAL_CONCEPT - intel:off - : test_nc_t_real_concept ] - [ run test_normal.cpp pch ../../test/build//boost_unit_test_framework ] - [ run test_pareto.cpp ../../test/build//boost_unit_test_framework ] - [ run test_poisson.cpp ../../test/build//boost_unit_test_framework - : # command line - : # input files - : # requirements - TEST_FLOAT - intel:off - : test_poisson_float ] - [ run test_poisson.cpp ../../test/build//boost_unit_test_framework - : # command line - : # input files - : # requirements - TEST_DOUBLE - intel:off - : test_poisson_double ] - [ run test_poisson.cpp ../../test/build//boost_unit_test_framework - : # command line - : # input files - : # requirements - TEST_LDOUBLE - intel:off - : test_poisson_long_double ] - [ run test_poisson.cpp ../../test/build//boost_unit_test_framework - : # command line - : # input files - : # requirements - TEST_REAL_CONCEPT - intel:off - : test_poisson_real_concept ] - [ run test_rayleigh.cpp ../../test/build//boost_unit_test_framework ] - [ run test_students_t.cpp ../../test/build//boost_unit_test_framework ] - [ run test_skew_normal.cpp ../../test/build//boost_unit_test_framework ] - [ run test_trapezoidal.cpp ../../test/build//boost_unit_test_framework : : : - release [ requires cxx11_lambdas cxx11_auto_declarations cxx11_decltype cxx11_unified_initialization_syntax cxx11_variadic_templates ] - [ check-target-builds ../config//has_float128 "GCC libquadmath and __float128 support" : "-Bstatic -lquadmath -Bdynamic" ] ] - [ run test_triangular.cpp pch ../../test/build//boost_unit_test_framework ] - [ run test_uniform.cpp pch ../../test/build//boost_unit_test_framework ] - [ run test_weibull.cpp ../../test/build//boost_unit_test_framework ] - - [ run compile_test/dist_bernoulli_incl_test.cpp compile_test_main ] - [ run compile_test/dist_beta_incl_test.cpp compile_test_main ] - [ run compile_test/dist_binomial_incl_test.cpp compile_test_main ] - [ run compile_test/dist_cauchy_incl_test.cpp compile_test_main ] - [ run compile_test/dist_chi_squared_incl_test.cpp compile_test_main ] - [ run compile_test/dist_complement_incl_test.cpp compile_test_main ] - [ run compile_test/dist_exponential_incl_test.cpp compile_test_main ] - [ run compile_test/dist_extreme_val_incl_test.cpp compile_test_main ] - [ run compile_test/dist_find_location_incl_test.cpp compile_test_main ] - [ run compile_test/dist_find_scale_incl_test.cpp compile_test_main ] - [ run compile_test/dist_fisher_f_incl_test.cpp compile_test_main ] - [ run compile_test/dist_gamma_incl_test.cpp compile_test_main ] - [ run compile_test/dist_inv_gamma_incl_test.cpp compile_test_main ] - [ run compile_test/dist_inv_chi_sq_incl_test.cpp compile_test_main ] - [ run compile_test/dist_hyperexponential_incl_test.cpp compile_test_main ] - [ run compile_test/dist_hypergeo_incl_test.cpp compile_test_main ] - [ run compile_test/dist_laplace_incl_test.cpp compile_test_main ] - [ run compile_test/dist_logistic_incl_test.cpp compile_test_main ] - [ run compile_test/dist_lognormal_incl_test.cpp compile_test_main ] - [ run compile_test/dist_neg_binom_incl_test.cpp compile_test_main ] - [ run compile_test/dist_nc_chi_squ_incl_test.cpp compile_test_main ] - [ run compile_test/dist_nc_beta_incl_test.cpp compile_test_main ] - [ run compile_test/dist_nc_f_incl_test.cpp compile_test_main ] - [ run compile_test/dist_nc_t_incl_test.cpp compile_test_main ] - [ run compile_test/dist_normal_incl_test.cpp compile_test_main ] - [ run compile_test/dist_poisson_incl_test.cpp compile_test_main ] - [ run compile_test/dist_students_t_incl_test.cpp compile_test_main ] - [ run compile_test/dist_triangular_incl_test.cpp compile_test_main ] - [ run compile_test/dist_uniform_incl_test.cpp compile_test_main ] - [ run compile_test/dist_weibull_incl_test.cpp compile_test_main ] - [ run compile_test/distribution_concept_check.cpp ] - - [ run test_legacy_nonfinite.cpp ../../test/build//boost_unit_test_framework ] - [ run test_basic_nonfinite.cpp ../../test/build//boost_unit_test_framework ] - [ run test_lexical_cast.cpp ../../test/build//boost_unit_test_framework ] - [ run test_nonfinite_trap.cpp ../../test/build//boost_unit_test_framework : : : off:no ] - [ run test_signed_zero.cpp ../../test/build//boost_unit_test_framework ] - [ run complex_test.cpp ../../test/build//boost_unit_test_framework ] - # - # Moved from misc for load balancing reasons: - # - [ run test_polynomial.cpp ../../test/build//boost_unit_test_framework : : : TEST1 : test_polynomial_1 ] - [ run test_polynomial.cpp ../../test/build//boost_unit_test_framework : : : TEST2 : test_polynomial_2 ] - [ run test_polynomial.cpp ../../test/build//boost_unit_test_framework : : : TEST3 : test_polynomial_3 ] - [ run polynomial_concept_check.cpp ] - - [ compile multiprc_concept_check_1.cpp : off msvc:/bigobj release off:no ] - [ compile multiprc_concept_check_2.cpp : off msvc:/bigobj release off:no ] - [ compile multiprc_concept_check_3.cpp : off msvc:/bigobj release off:no ] - [ compile multiprc_concept_check_4.cpp : off msvc:/bigobj release off:no ] - [ compile ntl_concept_check.cpp : [ check-target-builds ../config//has_ntl_rr : : no ] off ] - [ compile mpfr_concept_check.cpp : [ check-target-builds ../config//has_mpfr_class : : no ] off ] - [ compile mpreal_concept_check.cpp : [ check-target-builds ../config//has_mpreal : : no ] off ] - [ compile e_float_concept_check.cpp : [ check-target-builds ../config//has_e_float : : no ] off ] - -; - -test-suite misc : - [ run test_tr1.cpp - ../build//boost_math_tr1 - ../build//boost_math_tr1f - ../build//boost_math_c99 - ../build//boost_math_c99f - ../../test/build//boost_unit_test_framework - ] - - [ run test_tr1.cpp - ../build//boost_math_tr1l - ../build//boost_math_c99l - ../../test/build//boost_unit_test_framework - : : : - TEST_LD=1 - [ check-target-builds ../config//has_long_double_support "long double support" : : no ] - : - test_tr1_long_double - ] - - [ run test_tr1.c - ../build//boost_math_tr1 - ../build//boost_math_tr1f - ../build//boost_math_c99 - ../build//boost_math_c99f - ../../test/build//boost_unit_test_framework - : : : #requirements - : - test_tr1_c - ] - - [ run test_tr1.c - ../build//boost_math_tr1l - ../build//boost_math_c99l - ../../test/build//boost_unit_test_framework - : : : - TEST_LD=1 - [ check-target-builds ../config//has_long_double_support "long double support" : : no ] - : - test_tr1_c_long_double - ] - [ run test_constants.cpp : : : [ requires cxx17_if_constexpr cxx17_std_apply ] [ check-target-builds ../config//has_float128 "GCC libquadmath and __float128 support" : -lquadmath ] ] - [ run simple_continued_fraction_test.cpp : : : [ requires cxx17_if_constexpr cxx17_std_apply ] [ check-target-builds ../config//has_float128 "GCC libquadmath and __float128 support" : -lquadmath ] ] - [ run centered_continued_fraction_test.cpp : : : [ requires cxx17_if_constexpr cxx17_std_apply ] [ check-target-builds ../config//has_float128 "GCC libquadmath and __float128 support" : -lquadmath ] ] - [ run luroth_expansion_test.cpp : : : [ requires cxx17_if_constexpr cxx17_std_apply ] [ check-target-builds ../config//has_float128 "GCC libquadmath and __float128 support" : -lquadmath ] ] - [ run engel_expansion_test.cpp : : : [ requires cxx17_if_constexpr cxx17_std_apply ] [ check-target-builds ../config//has_float128 "GCC libquadmath and __float128 support" : -lquadmath ] ] - [ run test_classify.cpp pch ../../test/build//boost_unit_test_framework ] - [ run test_error_handling.cpp ../../test/build//boost_unit_test_framework ] - [ run legendre_stieltjes_test.cpp ../../test/build//boost_unit_test_framework : : : [ requires cxx11_auto_declarations cxx11_range_based_for ] [ check-target-builds ../config//has_float128 "GCC libquadmath and __float128 support" : -lquadmath ] ] - [ run test_minima.cpp pch ../../test/build//boost_unit_test_framework ] - [ run test_rationals.cpp ../../test/build//boost_unit_test_framework - test_rational_instances/test_rational_double1.cpp - test_rational_instances/test_rational_double2.cpp - test_rational_instances/test_rational_double3.cpp - test_rational_instances/test_rational_double4.cpp - test_rational_instances/test_rational_double5.cpp - test_rational_instances/test_rational_float1.cpp - test_rational_instances/test_rational_float2.cpp - test_rational_instances/test_rational_float3.cpp - test_rational_instances/test_rational_float4.cpp - test_rational_instances/test_rational_ldouble1.cpp - test_rational_instances/test_rational_ldouble2.cpp - test_rational_instances/test_rational_ldouble3.cpp - test_rational_instances/test_rational_ldouble4.cpp - test_rational_instances/test_rational_ldouble5.cpp - test_rational_instances/test_rational_real_concept1.cpp - test_rational_instances/test_rational_real_concept2.cpp - test_rational_instances/test_rational_real_concept3.cpp - test_rational_instances/test_rational_real_concept4.cpp - test_rational_instances/test_rational_real_concept5.cpp - ] - [ run test_policy.cpp ../../test/build//boost_unit_test_framework ] - [ run test_policy_2.cpp ../../test/build//boost_unit_test_framework ] - [ run test_policy_3.cpp ../../test/build//boost_unit_test_framework ] - [ run test_policy_4.cpp ../../test/build//boost_unit_test_framework ] - [ run test_policy_5.cpp ../../test/build//boost_unit_test_framework ] - [ run test_policy_6.cpp ../../test/build//boost_unit_test_framework ] - [ run test_policy_7.cpp ../../test/build//boost_unit_test_framework ] - [ run test_policy_8.cpp ../../test/build//boost_unit_test_framework ] - [ compile test_policy_9.cpp ] - [ run test_policy_sf.cpp ../../test/build//boost_unit_test_framework ] - [ run test_long_double_support.cpp ../../test/build//boost_unit_test_framework - : : : [ check-target-builds ../config//has_long_double_support "long double support" : : no ] ] - [ run test_recurrence.cpp : : : TEST=1 [ requires cxx11_unified_initialization_syntax cxx11_hdr_tuple cxx11_auto_declarations cxx11_decltype ] msvc:/bigobj : test_recurrence_1 ] - [ run test_recurrence.cpp : : : TEST=2 release [ check-target-builds ../config//has_float128 "GCC libquadmath and __float128 support" : BOOST_MATH_TEST_FLOAT128 "-Bstatic -lquadmath -Bdynamic" ] [ requires cxx11_unified_initialization_syntax cxx11_hdr_tuple cxx11_auto_declarations cxx11_decltype ] : test_recurrence_2 ] - [ run test_recurrence.cpp : : : TEST=3 release [ check-target-builds ../config//has_float128 "GCC libquadmath and __float128 support" : BOOST_MATH_TEST_FLOAT128 "-Bstatic -lquadmath -Bdynamic" ] [ requires cxx11_unified_initialization_syntax cxx11_hdr_tuple cxx11_auto_declarations cxx11_decltype ] : test_recurrence_3 ] - - [ run test_print_info_on_type.cpp ] - [ run test_barycentric_rational.cpp ../../test/build//boost_unit_test_framework : : : [ requires cxx11_smart_ptr cxx11_defaulted_functions cxx11_auto_declarations cxx11_unified_initialization_syntax ] [ check-target-builds ../config//has_float128 "GCC libquadmath and __float128 support" : -lquadmath ] ] - [ run test_vector_barycentric_rational.cpp ../../test/build//boost_unit_test_framework : : : [ requires cxx11_smart_ptr cxx11_defaulted_functions cxx11_auto_declarations cxx11_unified_initialization_syntax ] [ check-target-builds ../../multiprecision/config//has_eigen : : no ] ] - [ run cardinal_cubic_b_spline_test.cpp ../../test/build//boost_unit_test_framework : : : [ requires cxx11_smart_ptr cxx11_defaulted_functions ] off msvc:/bigobj release ] - [ run cardinal_b_spline_test.cpp : : : [ requires cxx11_auto_declarations cxx11_constexpr cxx11_smart_ptr cxx11_defaulted_functions ] [ check-target-builds ../config//has_float128 "GCC libquadmath and __float128 support" : -lquadmath ] ] - [ run jacobi_test.cpp : : : [ requires cxx11_auto_declarations cxx11_constexpr cxx11_smart_ptr cxx11_defaulted_functions ] [ check-target-builds ../config//has_float128 "GCC libquadmath and __float128 support" : -lquadmath ] ] - [ run gegenbauer_test.cpp : : : [ requires cxx11_auto_declarations cxx11_constexpr cxx11_smart_ptr cxx11_defaulted_functions ] [ check-target-builds ../config//has_float128 "GCC libquadmath and __float128 support" : -lquadmath ] ] - [ run daubechies_scaling_test.cpp : : : msvc:/bigobj [ requires cxx17_if_constexpr cxx17_std_apply ] [ check-target-builds ../config//has_float128 "GCC libquadmath and __float128 support" : -lquadmath ] ] - [ run daubechies_wavelet_test.cpp : : : msvc:/bigobj [ requires cxx17_if_constexpr cxx17_std_apply ] [ check-target-builds ../config//has_float128 "GCC libquadmath and __float128 support" : -lquadmath ] ] - [ run wavelet_transform_test.cpp : : : msvc:/bigobj [ requires cxx17_if_constexpr cxx17_std_apply ] [ check-target-builds ../config//has_float128 "GCC libquadmath and __float128 support" : -lquadmath ] ] - [ run agm_test.cpp : : : msvc:/bigobj [ requires cxx17_if_constexpr cxx17_std_apply ] [ check-target-builds ../config//has_float128 "GCC libquadmath and __float128 support" : -lquadmath ] ] - [ run rsqrt_test.cpp : : : msvc:/bigobj [ requires cxx17_if_constexpr cxx17_std_apply ] [ check-target-builds ../config//has_float128 "GCC libquadmath and __float128 support" : -lquadmath ] ] - [ run cohen_acceleration_test.cpp : : : msvc:/bigobj [ requires cxx17_if_constexpr cxx17_std_apply ] [ check-target-builds ../config//has_float128 "GCC libquadmath and __float128 support" : -lquadmath ] ] - [ compile compile_test/daubechies_filters_incl_test.cpp : [ requires cxx17_if_constexpr cxx17_std_apply ] ] - [ compile compile_test/daubechies_scaling_incl_test.cpp : [ requires cxx17_if_constexpr cxx17_std_apply ] ] - [ run whittaker_shannon_test.cpp : : : [ requires cxx11_auto_declarations cxx11_constexpr cxx11_smart_ptr cxx11_defaulted_functions ] ] - [ run cardinal_quadratic_b_spline_test.cpp : : : [ requires cxx11_auto_declarations cxx11_constexpr cxx11_smart_ptr cxx11_defaulted_functions ] ] - [ run cardinal_quintic_b_spline_test.cpp : : : [ requires cxx11_auto_declarations cxx11_constexpr cxx11_smart_ptr cxx11_defaulted_functions ] [ check-target-builds ../config//has_float128 "GCC libquadmath and __float128 support" : -lquadmath ] ] - [ run makima_test.cpp : : : [ requires cxx17_if_constexpr cxx17_std_apply ] [ check-target-builds ../config//has_float128 "GCC libquadmath and __float128 support" : -lquadmath ] ] - [ run pchip_test.cpp : : : [ requires cxx17_if_constexpr cxx17_std_apply ] [ check-target-builds ../config//has_float128 "GCC libquadmath and __float128 support" : -lquadmath ] ] - [ run septic_hermite_test.cpp : : : [ requires cxx17_if_constexpr cxx17_std_apply ] [ check-target-builds ../config//has_float128 "GCC libquadmath and __float128 support" : -lquadmath ] ] - [ run quintic_hermite_test.cpp : : : [ requires cxx17_if_constexpr cxx17_std_apply ] [ check-target-builds ../config//has_float128 "GCC libquadmath and __float128 support" : -lquadmath ] ] - [ run cubic_hermite_test.cpp : : : [ requires cxx17_if_constexpr cxx17_std_apply ] [ check-target-builds ../config//has_float128 "GCC libquadmath and __float128 support" : -lquadmath ] ] - [ run catmull_rom_test.cpp ../../test/build//boost_unit_test_framework : : : TEST=1 [ requires cxx11_hdr_array cxx11_hdr_initializer_list ] : catmull_rom_test_1 ] - [ run catmull_rom_test.cpp ../../test/build//boost_unit_test_framework : : : TEST=2 [ requires cxx11_hdr_array cxx11_hdr_initializer_list ] : catmull_rom_test_2 ] - [ run catmull_rom_test.cpp ../../test/build//boost_unit_test_framework : : : TEST=3 [ requires cxx11_hdr_array cxx11_hdr_initializer_list ] : catmull_rom_test_3 ] - [ run compile_test/catmull_rom_incl_test.cpp compile_test_main : : : [ requires cxx11_hdr_array cxx11_hdr_initializer_list ] ] - [ run compile_test/catmull_rom_concept_test.cpp compile_test_main : : : [ requires cxx11_hdr_array cxx11_hdr_initializer_list ] ] - [ run ooura_fourier_integral_test.cpp ../../test/build//boost_unit_test_framework : : : [ requires cxx17_if_constexpr cxx17_std_apply ] ] - [ run univariate_statistics_test.cpp ../../test/build//boost_unit_test_framework : : : [ requires cxx17_if_constexpr cxx17_std_apply ] ] - [ run empirical_cumulative_distribution_test.cpp : : : [ requires cxx17_if_constexpr cxx17_std_apply ] ] - [ run norms_test.cpp ../../test/build//boost_unit_test_framework : : : [ requires cxx17_if_constexpr cxx17_std_apply ] ] - [ run signal_statistics_test.cpp : : : [ requires cxx17_if_constexpr cxx17_std_apply ] ] - [ run anderson_darling_test.cpp : : : [ requires cxx17_if_constexpr cxx17_std_apply ] ] - [ run ljung_box_test.cpp : : : [ requires cxx17_if_constexpr cxx17_std_apply ] ] - [ run test_t_test.cpp : : : [ requires cxx17_if_constexpr cxx17_std_apply ] ] - [ run bivariate_statistics_test.cpp : : : [ requires cxx17_if_constexpr cxx17_std_apply ] ] - [ run linear_regression_test.cpp : : : [ requires cxx17_if_constexpr cxx17_std_apply ] ] - [ run test_runs_test.cpp : : : [ requires cxx17_if_constexpr cxx17_std_apply ] ] - [ run lanczos_smoothing_test.cpp ../../test/build//boost_unit_test_framework : : : [ requires cxx17_if_constexpr cxx17_std_apply ] ] - [ run condition_number_test.cpp ../../test/build//boost_unit_test_framework : : : [ requires cxx17_if_constexpr cxx17_std_apply ] ] - [ run test_real_concept.cpp ../../test/build//boost_unit_test_framework ] - [ run test_remez.cpp pch ../../test/build//boost_unit_test_framework ] - [ run test_roots.cpp pch ../../test/build//boost_unit_test_framework ] - [ run test_root_iterations.cpp pch ../../test/build//boost_unit_test_framework : : : [ requires cxx11_hdr_tuple ] ] - [ run test_root_finding_concepts.cpp ../../test/build//boost_unit_test_framework ] - [ run test_toms748_solve.cpp pch ../../test/build//boost_unit_test_framework ] - [ run compile_test/cubic_spline_incl_test.cpp compile_test_main : : : [ requires cxx11_smart_ptr cxx11_defaulted_functions cxx11_auto_declarations ] ] - [ run compile_test/barycentric_rational_incl_test.cpp compile_test_main : : : [ requires cxx11_smart_ptr cxx11_defaulted_functions cxx11_auto_declarations cxx11_unified_initialization_syntax ] ] - [ run compile_test/compl_abs_incl_test.cpp compile_test_main ] - [ run compile_test/compl_acos_incl_test.cpp compile_test_main ] - [ run compile_test/compl_acosh_incl_test.cpp compile_test_main ] - [ run compile_test/compl_asin_incl_test.cpp compile_test_main ] - [ run compile_test/compl_asinh_incl_test.cpp compile_test_main ] - [ run compile_test/compl_atan_incl_test.cpp compile_test_main ] - [ run compile_test/compl_atanh_incl_test.cpp compile_test_main ] - [ run compile_test/sf_beta_incl_test.cpp compile_test_main ] - [ run compile_test/sf_bernoulli_incl_test.cpp compile_test_main ] - [ run compile_test/sf_bessel_incl_test.cpp compile_test_main ] - [ run compile_test/sf_bessel_deriv_incl_test.cpp compile_test_main ] - [ run compile_test/sf_binomial_incl_test.cpp compile_test_main ] - [ run compile_test/sf_cbrt_incl_test.cpp compile_test_main ] - [ run compile_test/sf_cos_pi_incl_test.cpp compile_test_main ] - [ run compile_test/sf_digamma_incl_test.cpp compile_test_main ] - [ run compile_test/sf_polygamma_incl_test.cpp compile_test_main ] - [ run compile_test/sf_ellint_1_incl_test.cpp compile_test_main ] - [ run compile_test/sf_ellint_2_incl_test.cpp compile_test_main ] - [ run compile_test/sf_ellint_3_incl_test.cpp compile_test_main ] - [ run compile_test/sf_ellint_d_incl_test.cpp compile_test_main ] - [ run compile_test/sf_jacobi_theta_incl_test.cpp compile_test_main ] - [ run compile_test/sf_jacobi_zeta_incl_test.cpp compile_test_main ] - [ run compile_test/sf_heuman_lambda_incl_test.cpp compile_test_main ] - [ run compile_test/sf_ellint_rc_incl_test.cpp compile_test_main ] - [ run compile_test/sf_ellint_rd_incl_test.cpp compile_test_main ] - [ run compile_test/sf_ellint_rf_incl_test.cpp compile_test_main ] - [ run compile_test/sf_ellint_rj_incl_test.cpp compile_test_main ] - [ run compile_test/sf_ellint_rg_incl_test.cpp compile_test_main ] - [ run compile_test/sf_erf_incl_test.cpp compile_test_main ] - [ run compile_test/sf_expint_incl_test.cpp compile_test_main ] - [ run compile_test/sf_expm1_incl_test.cpp compile_test_main ] - [ run compile_test/sf_factorials_incl_test.cpp compile_test_main ] - [ run compile_test/sf_fpclassify_incl_test.cpp compile_test_main ] - [ run compile_test/sf_gamma_incl_test.cpp compile_test_main ] - [ run compile_test/sf_hermite_incl_test.cpp compile_test_main ] - [ run compile_test/sf_hypot_incl_test.cpp compile_test_main ] - [ run compile_test/sf_laguerre_incl_test.cpp compile_test_main ] - [ compile compile_test/sf_lanczos_incl_test.cpp ] - [ run compile_test/sf_legendre_incl_test.cpp compile_test_main ] - [ run compile_test/sf_legendre_stieltjes_incl_test.cpp compile_test_main : : : [ requires cxx11_auto_declarations ] ] - [ run compile_test/sf_log1p_incl_test.cpp compile_test_main ] - [ compile compile_test/sf_math_fwd_incl_test.cpp ] - [ run compile_test/sf_modf_incl_test.cpp compile_test_main ] - [ run compile_test/sf_next_incl_test.cpp compile_test_main ] - [ run compile_test/sf_powm1_incl_test.cpp compile_test_main ] - [ run compile_test/sf_prime_incl_test.cpp compile_test_main ] - [ run compile_test/sf_relative_distance_incl_test.cpp compile_test_main ] - [ run compile_test/sf_round_incl_test.cpp compile_test_main ] - [ run compile_test/sf_sign_incl_test.cpp compile_test_main ] - [ run compile_test/sf_sin_pi_incl_test.cpp compile_test_main ] - [ run compile_test/sf_sinc_incl_test.cpp compile_test_main ] - [ run compile_test/sf_sinhc_incl_test.cpp compile_test_main ] - [ run compile_test/sf_sph_harm_incl_test.cpp compile_test_main ] - [ run compile_test/sf_sqrt1pm1_incl_test.cpp compile_test_main ] - [ run compile_test/sf_trunc_incl_test.cpp compile_test_main ] - [ run compile_test/sf_ulp_incl_test.cpp compile_test_main ] - [ run compile_test/sf_zeta_incl_test.cpp compile_test_main ] - [ run compile_test/std_real_concept_check.cpp ] - [ compile compile_test/std_real_concept_check.cpp : EMULATE32 : std_real_concept_check_32 ] - [ compile compile_test/std_real_concept_check.cpp : EMULATE64 : std_real_concept_check_64 ] - [ compile compile_test/std_real_concept_check.cpp : EMULATE80 : std_real_concept_check_80 ] - [ compile compile_test/std_real_concept_check.cpp : EMULATE128 : std_real_concept_check_128 ] - [ run compile_test/cstdfloat_concept_check_1.cpp - : : : [ check-target-builds ../config//has_intel_quad "Intel _Quad datatype support" : -Qoption,cpp,--extended_float_type ] - [ check-target-builds ../config//has_float128 "GCC libquadmath and __float128 support" : -lquadmath ] ] - [ run compile_test/cstdfloat_concept_check_2.cpp ] - [ run compile_test/cstdfloat_concept_check_3.cpp ] - [ run compile_test/cstdfloat_concept_check_4.cpp ] - [ run test_cstdfloat.cpp ../../test/build//boost_unit_test_framework : : : [ check-target-builds ../config//has_float128 "GCC libquadmath and __float128 support" : -lquadmath ] ] - [ run compile_test/sf_airy_incl_test.cpp compile_test_main ] - [ run compile_test/sf_hankel_incl_test.cpp compile_test_main ] - [ run compile_test/sf_jacobi_incl_test.cpp compile_test_main ] - [ run compile_test/sf_owens_t_incl_test.cpp compile_test_main ] - [ run compile_test/dist_skew_norm_incl_test.cpp compile_test_main ] - [ run compile_test/constants_incl_test.cpp compile_test_main ] - [ run compile_test/trapezoidal_incl_test.cpp compile_test_main : : : [ requires cxx11_auto_declarations cxx11_lambdas cxx11_decltype cxx11_unified_initialization_syntax cxx11_variadic_templates ] ] - [ compile compile_test/test_traits.cpp ] - [ compile compile_test/tools_config_inc_test.cpp ] - [ compile compile_test/tools_fraction_inc_test.cpp ] - [ compile compile_test/tools_minima_inc_test.cpp ] - [ compile compile_test/tools_polynomial_inc_test.cpp ] - [ compile compile_test/tools_precision_inc_test.cpp ] - [ compile compile_test/tools_rational_inc_test.cpp ] - [ compile compile_test/tools_real_cast_inc_test.cpp ] - [ compile compile_test/tools_remez_inc_test.cpp ] - [ compile compile_test/tools_roots_inc_test.cpp ] - [ compile compile_test/tools_series_inc_test.cpp ] - [ compile compile_test/tools_solve_inc_test.cpp ] - [ compile compile_test/tools_stats_inc_test.cpp ] - [ compile compile_test/tools_test_data_inc_test.cpp ] - [ compile compile_test/tools_test_inc_test.cpp ] - [ compile compile_test/tools_toms748_inc_test.cpp ] - [ compile compile_test/cubic_spline_concept_test.cpp : [ requires cxx11_smart_ptr cxx11_defaulted_functions ] ] - [ compile compile_test/barycentric_rational_concept_test.cpp : [ requires cxx11_smart_ptr cxx11_defaulted_functions cxx11_unified_initialization_syntax ] ] - [ compile compile_test/sf_legendre_stieltjes_concept_test.cpp : [ requires cxx11_auto_declarations cxx11_defaulted_functions cxx11_lambdas ] ] - [ compile compile_test/trapezoidal_concept_test.cpp : [ requires cxx11_auto_declarations cxx11_lambdas cxx11_decltype cxx11_unified_initialization_syntax cxx11_variadic_templates ] ] - [ run octonion_test.cpp - ../../test/build//boost_unit_test_framework ] - [ run quaternion_constexpr_test.cpp ] - [ run quaternion_test.cpp - ../../test/build//boost_unit_test_framework : : : [ check-target-builds ../config//has_float128 "GCC libquadmath and __float128 support" : -lquadmath ] ] - [ run quaternion_mult_incl_test.cpp - quaternion_mi1.cpp - quaternion_mi2.cpp - ../../test/build//boost_unit_test_framework ] - -# [ run __temporary_test.cpp test_instances//test_instances : : : always_show_run_output off ] - [ compile test_no_long_double_policy.cpp ] -; - -test-suite quadrature : - [ run tanh_sinh_quadrature_test.cpp ../../test/build//boost_unit_test_framework - : : : msvc:/bigobj TEST1 [ check-target-builds ../config//has_float128 "GCC libquadmath and __float128 support" : -lquadmath ] - [ requires cxx11_auto_declarations cxx11_lambdas cxx11_smart_ptr cxx11_unified_initialization_syntax sfinae_expr ] : - tanh_sinh_quadrature_test_1 ] - [ run tanh_sinh_quadrature_test.cpp ../../test/build//boost_unit_test_framework - : : : msvc:/bigobj TEST1A [ check-target-builds ../config//has_float128 "GCC libquadmath and __float128 support" : -lquadmath ] - [ requires cxx11_auto_declarations cxx11_lambdas cxx11_smart_ptr cxx11_unified_initialization_syntax sfinae_expr ] : - tanh_sinh_quadrature_test_1a ] - [ run tanh_sinh_quadrature_test.cpp ../../test/build//boost_unit_test_framework - : : : release msvc:/bigobj TEST1B [ check-target-builds ../config//has_float128 "GCC libquadmath and __float128 support" : -lquadmath ] - [ requires cxx11_auto_declarations cxx11_lambdas cxx11_smart_ptr cxx11_unified_initialization_syntax sfinae_expr ] : - tanh_sinh_quadrature_test_1b ] - [ run tanh_sinh_quadrature_test.cpp ../../test/build//boost_unit_test_framework - : : : msvc:/bigobj TEST2 [ check-target-builds ../config//has_float128 "GCC libquadmath and __float128 support" : -lquadmath ] - [ requires cxx11_auto_declarations cxx11_lambdas cxx11_smart_ptr cxx11_unified_initialization_syntax sfinae_expr ] : - tanh_sinh_quadrature_test_2 ] - [ run tanh_sinh_quadrature_test.cpp ../../test/build//boost_unit_test_framework - : : : release msvc:/bigobj TEST2A [ check-target-builds ../config//has_float128 "GCC libquadmath and __float128 support" : -lquadmath ] - [ requires cxx11_auto_declarations cxx11_lambdas cxx11_smart_ptr cxx11_unified_initialization_syntax sfinae_expr ] : - tanh_sinh_quadrature_test_2a ] - [ run tanh_sinh_quadrature_test.cpp ../../test/build//boost_unit_test_framework - : : : msvc:/bigobj TEST3 [ check-target-builds ../config//has_float128 "GCC libquadmath and __float128 support" : -lquadmath ] - [ requires cxx11_auto_declarations cxx11_lambdas cxx11_smart_ptr cxx11_unified_initialization_syntax sfinae_expr ] : - tanh_sinh_quadrature_test_3 ] - [ run tanh_sinh_quadrature_test.cpp ../../test/build//boost_unit_test_framework - : : : release msvc:/bigobj TEST3A [ check-target-builds ../config//has_float128 "GCC libquadmath and __float128 support" : -lquadmath ] - [ requires cxx11_auto_declarations cxx11_lambdas cxx11_smart_ptr cxx11_unified_initialization_syntax sfinae_expr ] : - tanh_sinh_quadrature_test_3a ] - [ run tanh_sinh_quadrature_test.cpp ../../test/build//boost_unit_test_framework - : : : release msvc:/bigobj TEST4 [ check-target-builds ../config//has_float128 "GCC libquadmath and __float128 support" : -lquadmath ] - [ requires cxx11_auto_declarations cxx11_lambdas cxx11_smart_ptr cxx11_unified_initialization_syntax sfinae_expr ] : - tanh_sinh_quadrature_test_4 ] - [ run tanh_sinh_quadrature_test.cpp ../../test/build//boost_unit_test_framework - : : : release msvc:/bigobj TEST5 [ check-target-builds ../config//has_float128 "GCC libquadmath and __float128 support" : -lquadmath ] - [ requires cxx11_auto_declarations cxx11_lambdas cxx11_smart_ptr cxx11_unified_initialization_syntax sfinae_expr ] : - tanh_sinh_quadrature_test_5 ] - [ run tanh_sinh_quadrature_test.cpp ../../test/build//boost_unit_test_framework - : : : msvc:/bigobj TEST6 [ check-target-builds ../config//has_float128 "GCC libquadmath and __float128 support" : -lquadmath ] - [ requires cxx11_auto_declarations cxx11_lambdas cxx11_smart_ptr cxx11_unified_initialization_syntax sfinae_expr ] : - tanh_sinh_quadrature_test_6 ] - [ run tanh_sinh_quadrature_test.cpp ../../test/build//boost_unit_test_framework - : : : release msvc:/bigobj TEST6A [ check-target-builds ../config//has_float128 "GCC libquadmath and __float128 support" : -lquadmath ] - [ requires cxx11_auto_declarations cxx11_lambdas cxx11_smart_ptr cxx11_unified_initialization_syntax sfinae_expr ] : - tanh_sinh_quadrature_test_6a ] - [ run tanh_sinh_quadrature_test.cpp ../../test/build//boost_unit_test_framework - : : : release msvc:/bigobj TEST7 [ check-target-builds ../config//has_float128 "GCC libquadmath and __float128 support" : -lquadmath ] - [ requires cxx11_auto_declarations cxx11_lambdas cxx11_smart_ptr cxx11_unified_initialization_syntax sfinae_expr ] : - tanh_sinh_quadrature_test_7 ] - [ run tanh_sinh_quadrature_test.cpp ../../test/build//boost_unit_test_framework - : : : release msvc:/bigobj TEST8 [ check-target-builds ../config//has_float128 "GCC libquadmath and __float128 support" : -lquadmath ] - [ requires cxx11_auto_declarations cxx11_lambdas cxx11_smart_ptr cxx11_unified_initialization_syntax sfinae_expr ] : - tanh_sinh_quadrature_test_8 ] - [ run tanh_sinh_quadrature_test.cpp ../../test/build//boost_unit_test_framework - : : : release msvc:/bigobj TEST9 - [ requires cxx11_auto_declarations cxx11_lambdas cxx11_smart_ptr cxx11_unified_initialization_syntax sfinae_expr ] : - tanh_sinh_quadrature_test_9 ] - - [ run tanh_sinh_mpfr.cpp ../tools//mpfr ../tools//gmp : : : [ check-target-builds ../config//has_mpfr : : no ] [ requires cxx11_hdr_initializer_list cxx11_auto_declarations cxx11_lambdas cxx11_unified_initialization_syntax cxx11_smart_ptr ] release clang:-Wno-literal-range ] - [ run sinh_sinh_quadrature_test.cpp ../../test/build//boost_unit_test_framework - : : : release [ check-target-builds ../config//has_float128 "GCC libquadmath and __float128 support" : -lquadmath ] [ requires cxx11_auto_declarations cxx11_lambdas cxx11_smart_ptr cxx11_unified_initialization_syntax ] ] - [ run exp_sinh_quadrature_test.cpp ../../test/build//boost_unit_test_framework - : : : TEST1 [ check-target-builds ../config//has_float128 "GCC libquadmath and __float128 support" : -lquadmath ] [ requires cxx11_auto_declarations cxx11_lambdas cxx11_smart_ptr cxx11_unified_initialization_syntax ] : exp_sinh_quadrature_test_1 ] - - [ run exp_sinh_quadrature_test.cpp ../../test/build//boost_unit_test_framework - : : : release TEST2 [ check-target-builds ../config//has_float128 "GCC libquadmath and __float128 support" : -lquadmath ] - [ requires cxx11_auto_declarations cxx11_lambdas cxx11_smart_ptr cxx11_unified_initialization_syntax ] : exp_sinh_quadrature_test_2 ] - [ run exp_sinh_quadrature_test.cpp ../../test/build//boost_unit_test_framework - : : : TEST3 [ check-target-builds ../config//has_float128 "GCC libquadmath and __float128 support" : -lquadmath ] - [ requires cxx11_auto_declarations cxx11_lambdas cxx11_smart_ptr cxx11_unified_initialization_syntax ] : exp_sinh_quadrature_test_3 ] - [ run exp_sinh_quadrature_test.cpp ../../test/build//boost_unit_test_framework - : : : release TEST4 [ check-target-builds ../config//has_float128 "GCC libquadmath and __float128 support" : -lquadmath ] - [ requires cxx11_auto_declarations cxx11_lambdas cxx11_smart_ptr cxx11_unified_initialization_syntax ] : exp_sinh_quadrature_test_4 ] - [ run exp_sinh_quadrature_test.cpp ../../test/build//boost_unit_test_framework - : : : release TEST5 [ check-target-builds ../config//has_float128 "GCC libquadmath and __float128 support" : -lquadmath ] - [ requires cxx11_auto_declarations cxx11_lambdas cxx11_smart_ptr cxx11_unified_initialization_syntax ] : exp_sinh_quadrature_test_5 ] - [ run exp_sinh_quadrature_test.cpp ../../test/build//boost_unit_test_framework - : : : release TEST6 [ check-target-builds ../config//has_float128 "GCC libquadmath and __float128 support" : -lquadmath ] - [ requires cxx11_auto_declarations cxx11_lambdas cxx11_smart_ptr cxx11_unified_initialization_syntax ] : exp_sinh_quadrature_test_6 ] - [ run exp_sinh_quadrature_test.cpp ../../test/build//boost_unit_test_framework - : : : release TEST7 [ check-target-builds ../config//has_float128 "GCC libquadmath and __float128 support" : -lquadmath ] - [ requires cxx11_auto_declarations cxx11_lambdas cxx11_smart_ptr cxx11_unified_initialization_syntax ] : exp_sinh_quadrature_test_7 ] - [ run exp_sinh_quadrature_test.cpp ../../test/build//boost_unit_test_framework - : : : release TEST8 [ check-target-builds ../config//has_float128 "GCC libquadmath and __float128 support" : -lquadmath ] - [ requires cxx11_auto_declarations cxx11_lambdas cxx11_smart_ptr cxx11_unified_initialization_syntax ] : exp_sinh_quadrature_test_8 ] - [ run exp_sinh_quadrature_test.cpp ../../test/build//boost_unit_test_framework - : : : release TEST9 [ check-target-builds ../config//has_float128 "GCC libquadmath and __float128 support" : -lquadmath ] - [ requires cxx11_auto_declarations cxx11_lambdas cxx11_smart_ptr cxx11_unified_initialization_syntax ] : exp_sinh_quadrature_test_9 ] - - [ run compile_test/exp_sinh_incl_test.cpp compile_test_main : : : [ requires cxx11_auto_declarations cxx11_lambdas cxx11_smart_ptr cxx11_unified_initialization_syntax ] ] - [ run compile_test/sinh_sinh_incl_test.cpp compile_test_main : : : [ requires cxx11_auto_declarations cxx11_lambdas cxx11_smart_ptr cxx11_unified_initialization_syntax ] ] - [ run compile_test/tanh_sinh_incl_test.cpp compile_test_main : : : [ requires cxx11_auto_declarations cxx11_lambdas cxx11_smart_ptr cxx11_unified_initialization_syntax sfinae_expr ] ] - [ compile compile_test/exp_sinh_concept_test.cpp : [ requires cxx11_auto_declarations cxx11_lambdas cxx11_smart_ptr cxx11_unified_initialization_syntax ] ] - [ compile compile_test/sinh_sinh_concept_test.cpp : [ requires cxx11_auto_declarations cxx11_lambdas cxx11_smart_ptr cxx11_unified_initialization_syntax ] ] - [ compile compile_test/tanh_sinh_concept_test.cpp : [ requires cxx11_auto_declarations cxx11_lambdas cxx11_smart_ptr cxx11_unified_initialization_syntax sfinae_expr ] ] - - [ run gauss_quadrature_test.cpp : : : TEST1 [ check-target-builds ../config//has_float128 "GCC libquadmath and __float128 support" : -lquadmath ] - [ requires cxx11_auto_declarations cxx11_lambdas cxx11_smart_ptr cxx11_unified_initialization_syntax ] off msvc:/bigobj release : gauss_quadrature_test_1 ] - [ run gauss_quadrature_test.cpp : : : TEST2 [ check-target-builds ../config//has_float128 "GCC libquadmath and __float128 support" : -lquadmath ] - [ requires cxx11_auto_declarations cxx11_lambdas cxx11_smart_ptr cxx11_unified_initialization_syntax ] off msvc:/bigobj release : gauss_quadrature_test_2 ] - [ run gauss_quadrature_test.cpp : : : TEST3 [ check-target-builds ../config//has_float128 "GCC libquadmath and __float128 support" : -lquadmath ] - [ requires cxx11_auto_declarations cxx11_lambdas cxx11_smart_ptr cxx11_unified_initialization_syntax ] off msvc:/bigobj release : gauss_quadrature_test_3 ] - [ run gauss_kronrod_quadrature_test.cpp : : : TEST1 [ check-target-builds ../config//has_float128 "GCC libquadmath and __float128 support" : -lquadmath ] - [ requires cxx11_auto_declarations cxx11_lambdas cxx11_smart_ptr cxx11_unified_initialization_syntax ] off msvc:/bigobj release : gauss_kronrod_quadrature_test_1 ] - [ run gauss_kronrod_quadrature_test.cpp : : : TEST1A [ check-target-builds ../config//has_float128 "GCC libquadmath and __float128 support" : -lquadmath ] - [ requires cxx11_auto_declarations cxx11_lambdas cxx11_smart_ptr cxx11_unified_initialization_syntax ] off msvc:/bigobj release : gauss_kronrod_quadrature_test_1a ] - [ run gauss_kronrod_quadrature_test.cpp : : : TEST2 [ check-target-builds ../config//has_float128 "GCC libquadmath and __float128 support" : -lquadmath ] - [ requires cxx11_auto_declarations cxx11_lambdas cxx11_smart_ptr cxx11_unified_initialization_syntax ] off msvc:/bigobj release : gauss_kronrod_quadrature_test_2 ] - [ run gauss_kronrod_quadrature_test.cpp : : : TEST3 [ check-target-builds ../config//has_float128 "GCC libquadmath and __float128 support" : -lquadmath ] - [ requires cxx11_auto_declarations cxx11_lambdas cxx11_smart_ptr cxx11_unified_initialization_syntax ] off msvc:/bigobj release : gauss_kronrod_quadrature_test_3 ] - [ run adaptive_gauss_kronrod_quadrature_test.cpp : : : TEST1 [ check-target-builds ../config//has_float128 "GCC libquadmath and __float128 support" : -lquadmath ] - [ requires cxx11_auto_declarations cxx11_lambdas cxx11_smart_ptr cxx11_unified_initialization_syntax ] off msvc:/bigobj release : adaptive_gauss_quadrature_test_1 ] - [ run adaptive_gauss_kronrod_quadrature_test.cpp : : : TEST1A [ check-target-builds ../config//has_float128 "GCC libquadmath and __float128 support" : -lquadmath ] - [ requires cxx11_auto_declarations cxx11_lambdas cxx11_smart_ptr cxx11_unified_initialization_syntax ] off msvc:/bigobj release : adaptive_gauss_quadrature_test_1a ] - [ run adaptive_gauss_kronrod_quadrature_test.cpp : : : TEST2 [ check-target-builds ../config//has_float128 "GCC libquadmath and __float128 support" : -lquadmath ] - [ requires cxx11_auto_declarations cxx11_lambdas cxx11_smart_ptr cxx11_unified_initialization_syntax ] off msvc:/bigobj release : adaptive_gauss_quadrature_test_2 ] - [ run adaptive_gauss_kronrod_quadrature_test.cpp : : : TEST3 [ check-target-builds ../config//has_float128 "GCC libquadmath and __float128 support" : -lquadmath ] - [ requires cxx11_auto_declarations cxx11_lambdas cxx11_smart_ptr cxx11_unified_initialization_syntax ] off msvc:/bigobj release : adaptive_gauss_quadrature_test_3 ] - - [ run naive_monte_carlo_test.cpp ../../atomic/build//boost_atomic : : : - msvc:/bigobj TEST=1 [ requires cxx11_auto_declarations cxx11_lambdas cxx11_unified_initialization_syntax cxx11_hdr_thread cxx11_hdr_atomic cxx11_decltype cxx11_hdr_future cxx11_hdr_chrono cxx11_hdr_random cxx11_allocator ] - linux:"-pthread" : naive_monte_carlo_test_1 - ] - [ run naive_monte_carlo_test.cpp ../../atomic/build//boost_atomic : : : - msvc:/bigobj TEST=2 [ requires cxx11_auto_declarations cxx11_lambdas cxx11_unified_initialization_syntax cxx11_hdr_thread cxx11_hdr_atomic cxx11_decltype cxx11_hdr_future cxx11_hdr_chrono cxx11_hdr_random cxx11_allocator ] - linux:"-pthread" : naive_monte_carlo_test_2 - ] - [ run naive_monte_carlo_test.cpp ../../atomic/build//boost_atomic : : : - msvc:/bigobj TEST=3 [ requires cxx11_auto_declarations cxx11_lambdas cxx11_unified_initialization_syntax cxx11_hdr_thread cxx11_hdr_atomic cxx11_decltype cxx11_hdr_future cxx11_hdr_chrono cxx11_hdr_random cxx11_allocator ] - linux:"-pthread" : naive_monte_carlo_test_3 - ] - [ run naive_monte_carlo_test.cpp ../../atomic/build//boost_atomic : : : - msvc:/bigobj TEST=4 [ requires cxx11_auto_declarations cxx11_lambdas cxx11_unified_initialization_syntax cxx11_hdr_thread cxx11_hdr_atomic cxx11_decltype cxx11_hdr_future cxx11_hdr_chrono cxx11_hdr_random cxx11_allocator ] - linux:"-pthread" : naive_monte_carlo_test_4 - ] - [ run naive_monte_carlo_test.cpp ../../atomic/build//boost_atomic : : : - msvc:/bigobj TEST=5 [ requires cxx11_auto_declarations cxx11_lambdas cxx11_unified_initialization_syntax cxx11_hdr_thread cxx11_hdr_atomic cxx11_decltype cxx11_hdr_future cxx11_hdr_chrono cxx11_hdr_random cxx11_allocator ] - linux:"-pthread" : naive_monte_carlo_test_5 - ] - [ run naive_monte_carlo_test.cpp ../../atomic/build//boost_atomic : : : - msvc:/bigobj TEST=6 [ requires cxx11_auto_declarations cxx11_lambdas cxx11_unified_initialization_syntax cxx11_hdr_thread cxx11_hdr_atomic cxx11_decltype cxx11_hdr_future cxx11_hdr_chrono cxx11_hdr_random cxx11_allocator ] - linux:"-pthread" : naive_monte_carlo_test_6 - ] - [ run naive_monte_carlo_test.cpp ../../atomic/build//boost_atomic : : : - msvc:/bigobj TEST=7 [ requires cxx11_auto_declarations cxx11_lambdas cxx11_unified_initialization_syntax cxx11_hdr_thread cxx11_hdr_atomic cxx11_decltype cxx11_hdr_future cxx11_hdr_chrono cxx11_hdr_random cxx11_allocator ] - linux:"-pthread" : naive_monte_carlo_test_7 - ] - [ run naive_monte_carlo_test.cpp ../../atomic/build//boost_atomic : : : - msvc:/bigobj TEST=8 [ requires cxx11_auto_declarations cxx11_lambdas cxx11_unified_initialization_syntax cxx11_hdr_thread cxx11_hdr_atomic cxx11_decltype cxx11_hdr_future cxx11_hdr_chrono cxx11_hdr_random cxx11_allocator ] - linux:"-pthread" : naive_monte_carlo_test_8 - ] - [ run naive_monte_carlo_test.cpp ../../atomic/build//boost_atomic : : : - msvc:/bigobj TEST=9 [ requires cxx11_auto_declarations cxx11_lambdas cxx11_unified_initialization_syntax cxx11_hdr_thread cxx11_hdr_atomic cxx11_decltype cxx11_hdr_future cxx11_hdr_chrono cxx11_hdr_random cxx11_allocator ] - linux:"-pthread" : naive_monte_carlo_test_9 - ] - [ run naive_monte_carlo_test.cpp ../../atomic/build//boost_atomic : : : - msvc:/bigobj TEST=10 [ requires cxx11_auto_declarations cxx11_lambdas cxx11_unified_initialization_syntax cxx11_hdr_thread cxx11_hdr_atomic cxx11_decltype cxx11_hdr_future cxx11_hdr_chrono cxx11_hdr_random cxx11_allocator ] - linux:"-pthread" : naive_monte_carlo_test_10 - ] - [ run naive_monte_carlo_test.cpp ../../atomic/build//boost_atomic : : : - msvc:/bigobj TEST=11 [ requires cxx11_auto_declarations cxx11_lambdas cxx11_unified_initialization_syntax cxx11_hdr_thread cxx11_hdr_atomic cxx11_decltype cxx11_hdr_future cxx11_hdr_chrono cxx11_hdr_random cxx11_allocator ] - linux:"-pthread" : naive_monte_carlo_test_11 - ] - [ run naive_monte_carlo_test.cpp ../../atomic/build//boost_atomic : : : - msvc:/bigobj TEST=12 [ requires cxx11_auto_declarations cxx11_lambdas cxx11_unified_initialization_syntax cxx11_hdr_thread cxx11_hdr_atomic cxx11_decltype cxx11_hdr_future cxx11_hdr_chrono cxx11_hdr_random cxx11_allocator ] - linux:"-pthread" : naive_monte_carlo_test_12 - ] - [ run naive_monte_carlo_test.cpp ../../atomic/build//boost_atomic : : : - msvc:/bigobj TEST=13 [ requires cxx11_auto_declarations cxx11_lambdas cxx11_unified_initialization_syntax cxx11_hdr_thread cxx11_hdr_atomic cxx11_decltype cxx11_hdr_future cxx11_hdr_chrono cxx11_hdr_random cxx11_allocator ] - linux:"-pthread" : naive_monte_carlo_test_13 - ] - [ run naive_monte_carlo_test.cpp ../../atomic/build//boost_atomic : : : - msvc:/bigobj TEST=14 [ requires cxx11_auto_declarations cxx11_lambdas cxx11_unified_initialization_syntax cxx11_hdr_thread cxx11_hdr_atomic cxx11_decltype cxx11_hdr_future cxx11_hdr_chrono cxx11_hdr_random cxx11_allocator ] - linux:"-pthread" : naive_monte_carlo_test_14 - ] - [ run naive_monte_carlo_test.cpp ../../atomic/build//boost_atomic : : : - msvc:/bigobj TEST=15 [ requires cxx11_auto_declarations cxx11_lambdas cxx11_unified_initialization_syntax cxx11_hdr_thread cxx11_hdr_atomic cxx11_decltype cxx11_hdr_future cxx11_hdr_chrono cxx11_hdr_random cxx11_allocator ] - linux:"-pthread" : naive_monte_carlo_test_15 - ] - [ run naive_monte_carlo_test.cpp ../../atomic/build//boost_atomic : : : - msvc:/bigobj TEST=16 [ requires cxx11_auto_declarations cxx11_lambdas cxx11_unified_initialization_syntax cxx11_hdr_thread cxx11_hdr_atomic cxx11_decltype cxx11_hdr_future cxx11_hdr_chrono cxx11_hdr_random cxx11_allocator ] - linux:"-pthread" : naive_monte_carlo_test_16 - ] - [ run naive_monte_carlo_test.cpp ../../atomic/build//boost_atomic : : : - msvc:/bigobj TEST=17 [ requires cxx11_auto_declarations cxx11_lambdas cxx11_unified_initialization_syntax cxx11_hdr_thread cxx11_hdr_atomic cxx11_decltype cxx11_hdr_future cxx11_hdr_chrono cxx11_hdr_random cxx11_allocator ] - linux:"-pthread" : naive_monte_carlo_test_17 - ] - [ run naive_monte_carlo_test.cpp ../../atomic/build//boost_atomic : : : - msvc:/bigobj TEST=18 [ requires cxx11_auto_declarations cxx11_lambdas cxx11_unified_initialization_syntax cxx11_hdr_thread cxx11_hdr_atomic cxx11_decltype cxx11_hdr_future cxx11_hdr_chrono cxx11_hdr_random cxx11_allocator ] - linux:"-pthread" : naive_monte_carlo_test_18 - ] - [ run naive_monte_carlo_test.cpp ../../atomic/build//boost_atomic : : : - msvc:/bigobj TEST=19 [ requires cxx11_auto_declarations cxx11_lambdas cxx11_unified_initialization_syntax cxx11_hdr_thread cxx11_hdr_atomic cxx11_decltype cxx11_hdr_future cxx11_hdr_chrono cxx11_hdr_random cxx11_allocator ] - linux:"-pthread" : naive_monte_carlo_test_19 - ] - [ run naive_monte_carlo_test.cpp ../../atomic/build//boost_atomic : : : - msvc:/bigobj TEST=20 [ requires cxx11_auto_declarations cxx11_lambdas cxx11_unified_initialization_syntax cxx11_hdr_thread cxx11_hdr_atomic cxx11_decltype cxx11_hdr_future cxx11_hdr_chrono cxx11_hdr_random cxx11_allocator ] - linux:"-pthread" : naive_monte_carlo_test_20 - ] - [ run naive_monte_carlo_test.cpp ../../atomic/build//boost_atomic : : : - msvc:/bigobj TEST=21 [ requires cxx11_auto_declarations cxx11_lambdas cxx11_unified_initialization_syntax cxx11_hdr_thread cxx11_hdr_atomic cxx11_decltype cxx11_hdr_future cxx11_hdr_chrono cxx11_hdr_random cxx11_allocator ] - linux:"-pthread" : naive_monte_carlo_test_21 - ] - [ run naive_monte_carlo_test.cpp ../../atomic/build//boost_atomic : : : - msvc:/bigobj TEST=22 [ requires cxx11_auto_declarations cxx11_lambdas cxx11_unified_initialization_syntax cxx11_hdr_thread cxx11_hdr_atomic cxx11_decltype cxx11_hdr_future cxx11_hdr_chrono cxx11_hdr_random cxx11_allocator ] - linux:"-pthread" : naive_monte_carlo_test_22 - ] - [ run naive_monte_carlo_test.cpp ../../atomic/build//boost_atomic : : : - msvc:/bigobj TEST=23 [ requires cxx11_auto_declarations cxx11_lambdas cxx11_unified_initialization_syntax cxx11_hdr_thread cxx11_hdr_atomic cxx11_decltype cxx11_hdr_future cxx11_hdr_chrono cxx11_hdr_random cxx11_allocator ] - linux:"-pthread" : naive_monte_carlo_test_23 - ] - [ compile compile_test/naive_monte_carlo_incl_test.cpp ../../atomic/build//boost_atomic : - [ requires cxx11_auto_declarations cxx11_lambdas cxx11_unified_initialization_syntax cxx11_hdr_thread cxx11_hdr_atomic cxx11_decltype cxx11_hdr_future cxx11_hdr_chrono cxx11_hdr_random cxx11_allocator ] - linux:"-pthread" - ] - [ compile compile_test/naive_monte_carlo_concept_test.cpp ../../atomic/build//boost_atomic : - [ requires cxx11_auto_declarations cxx11_lambdas cxx11_unified_initialization_syntax cxx11_hdr_thread cxx11_hdr_atomic cxx11_decltype cxx11_hdr_future cxx11_hdr_chrono cxx11_hdr_random cxx11_allocator ] - linux:"-pthread" - ] - - [ compile compile_test/gauss_concept_test.cpp : [ requires cxx11_auto_declarations cxx11_lambdas cxx11_smart_ptr cxx11_unified_initialization_syntax ] ] - [ compile compile_test/gauss_kronrod_concept_test.cpp : [ requires cxx11_auto_declarations cxx11_lambdas cxx11_smart_ptr cxx11_unified_initialization_syntax ] ] - - [ run test_numerical_differentiation.cpp ../../test/build//boost_unit_test_framework : : : msvc:/bigobj [ requires cxx11_auto_declarations cxx11_constexpr ] ] - [ run compile_test/numerical_differentiation_incl_test.cpp compile_test_main : : : [ requires cxx11_auto_declarations cxx11_constexpr ] ] - [ compile compile_test/numerical_differentiation_concept_test.cpp : [ requires cxx11_auto_declarations cxx11_constexpr ] ] - [ run test_autodiff_1.cpp ../../test/build//boost_unit_test_framework : : : gcc-mingw:-Wa,-mbig-obj off msvc:/bigobj release [ check-target-builds ../config//has_float128 "GCC libquadmath and __float128 support" : -lquadmath ] [ requires cxx11_inline_namespaces ] ] - [ run test_autodiff_2.cpp ../../test/build//boost_unit_test_framework : : : gcc-mingw:-Wa,-mbig-obj off msvc:/bigobj release [ check-target-builds ../config//has_float128 "GCC libquadmath and __float128 support" : -lquadmath ] [ requires cxx11_inline_namespaces ] ] - [ run test_autodiff_3.cpp ../../test/build//boost_unit_test_framework : : : gcc-mingw:-Wa,-mbig-obj off msvc:/bigobj release [ check-target-builds ../config//has_float128 "GCC libquadmath and __float128 support" : -lquadmath ] [ requires cxx11_inline_namespaces ] ] - [ run test_autodiff_4.cpp ../../test/build//boost_unit_test_framework : : : gcc-mingw:-Wa,-mbig-obj off msvc:/bigobj release [ check-target-builds ../config//has_float128 "GCC libquadmath and __float128 support" : -lquadmath ] [ requires cxx11_inline_namespaces ] ] - [ run test_autodiff_5.cpp ../../test/build//boost_unit_test_framework : : : gcc-mingw:-Wa,-mbig-obj off msvc:/bigobj release [ check-target-builds ../config//has_float128 "GCC libquadmath and __float128 support" : -lquadmath ] [ requires cxx11_inline_namespaces ] ] - [ run test_autodiff_6.cpp ../../test/build//boost_unit_test_framework : : : gcc-mingw:-Wa,-mbig-obj off msvc:/bigobj release [ check-target-builds ../config//has_float128 "GCC libquadmath and __float128 support" : -lquadmath ] [ requires cxx11_inline_namespaces ] ] - [ run test_autodiff_7.cpp ../../test/build//boost_unit_test_framework : : : gcc-mingw:-Wa,-mbig-obj off msvc:/bigobj release [ check-target-builds ../config//has_float128 "GCC libquadmath and __float128 support" : -lquadmath ] [ requires cxx11_inline_namespaces ] ] - [ run test_autodiff_8.cpp ../../test/build//boost_unit_test_framework : : : gcc-mingw:-Wa,-mbig-obj off msvc:/bigobj release [ check-target-builds ../config//has_float128 "GCC libquadmath and __float128 support" : -lquadmath ] [ requires cxx11_inline_namespaces ] ] - [ compile compile_test/autodiff_incl_test.cpp : gcc-mingw:-Wa,-mbig-obj off msvc:/bigobj release [ check-target-builds ../config//has_float128 "GCC libquadmath and __float128 support" : -lquadmath ] [ requires cxx11_inline_namespaces ] ] -; - -# -# These tests are run by default when you invoke the Jamfile, but -# they are deliberately NOT run from the CI scripts as they soak up -# too much time: -# -test-suite long-running-tests : - [ run test_0F1.cpp ../../test/build//boost_unit_test_framework : : : [ requires cxx11_auto_declarations cxx11_lambdas cxx11_unified_initialization_syntax cxx11_smart_ptr ] TEST=3 release [ check-target-builds ../config//has_float128 "GCC libquadmath and __float128 support" : BOOST_MATH_TEST_FLOAT128 "-Bstatic -lquadmath -Bdynamic" ] : test_0F1_3 ] - [ run test_0F1.cpp ../../test/build//boost_unit_test_framework : : : [ requires cxx11_auto_declarations cxx11_lambdas cxx11_unified_initialization_syntax cxx11_smart_ptr ] TEST=4 release : test_0F1_4 ] - [ run test_1F1.cpp ../../test/build//boost_unit_test_framework : : : [ requires cxx11_auto_declarations cxx11_lambdas cxx11_unified_initialization_syntax cxx11_smart_ptr ] TEST=5 clang:-Wno-literal-range : test_1F1_real_concept ] - [ run test_1F1.cpp ../../test/build//boost_unit_test_framework : : : [ requires cxx11_auto_declarations cxx11_lambdas cxx11_unified_initialization_syntax cxx11_smart_ptr ] TEST=6 release [ check-target-builds ../config//has_float128 "GCC libquadmath and __float128 support" : BOOST_MATH_TEST_FLOAT128 "-Bstatic -lquadmath -Bdynamic" ] clang:-Wno-literal-range : test_1F1_quad ] - [ run test_1F1.cpp ../../test/build//boost_unit_test_framework : : : [ requires cxx11_auto_declarations cxx11_lambdas cxx11_unified_initialization_syntax cxx11_smart_ptr ] TEST=7 release clang:-Wno-literal-range : test_1F1_dec_40 ] - [ run test_1F1_regularized.cpp ../../test/build//boost_unit_test_framework : : : [ requires cxx11_auto_declarations cxx11_lambdas cxx11_unified_initialization_syntax cxx11_smart_ptr ] TEST=6 release [ check-target-builds ../config//has_float128 "GCC libquadmath and __float128 support" : BOOST_MATH_TEST_FLOAT128 "-Bstatic -lquadmath -Bdynamic" ] clang:-Wno-literal-range : test_1F1_regularized_quad ] - [ run test_1F1_regularized.cpp ../../test/build//boost_unit_test_framework : : : [ requires cxx11_auto_declarations cxx11_lambdas cxx11_unified_initialization_syntax cxx11_smart_ptr ] TEST=7 release clang:-Wno-literal-range : test_1F1_regularized_dec_40 ] - [ run test_1F1_log.cpp ../../test/build//boost_unit_test_framework : : : release [ requires cxx11_auto_declarations cxx11_lambdas cxx11_unified_initialization_syntax cxx11_smart_ptr ] TEST=6 release [ check-target-builds ../config//has_float128 "GCC libquadmath and __float128 support" : BOOST_MATH_TEST_FLOAT128 "-Bstatic -lquadmath -Bdynamic" ] clang:-Wno-literal-range : test_1F1_log_quad ] - [ run test_1F1_log.cpp ../../test/build//boost_unit_test_framework : : : release [ requires cxx11_auto_declarations cxx11_lambdas cxx11_unified_initialization_syntax cxx11_smart_ptr ] TEST=7 release clang:-Wno-literal-range : test_1F1_log_dec_40 ] - [ run test_pFq.cpp ../../test/build//boost_unit_test_framework : : : [ requires cxx11_hdr_initializer_list cxx11_auto_declarations cxx11_lambdas cxx11_unified_initialization_syntax cxx11_smart_ptr ] TEST=6 release [ check-target-builds ../config//has_float128 "GCC libquadmath and __float128 support" : BOOST_MATH_TEST_FLOAT128 "-Bstatic -lquadmath -Bdynamic" ] clang:-Wno-literal-range : test_pFq_quad ] - [ run test_pFq.cpp ../../test/build//boost_unit_test_framework : : : [ requires cxx11_hdr_initializer_list cxx11_auto_declarations cxx11_lambdas cxx11_unified_initialization_syntax cxx11_smart_ptr ] TEST=7 release clang:-Wno-literal-range : test_pFq_dec_40 ] - [ run test_pFq_precision.cpp ../tools//mpfr ../tools//gmp ../../test/build//boost_unit_test_framework /boost/system//boost_system /boost/chrono//boost_chrono : : : [ check-target-builds ../config//has_mpfr : : no ] [ requires cxx11_hdr_initializer_list cxx11_auto_declarations cxx11_lambdas cxx11_unified_initialization_syntax cxx11_smart_ptr ] release clang:-Wno-literal-range ] - [ run test_constant_generate.cpp : : : release USE_CPP_FLOAT=1 off:no ] -; - -build-project ../example ; -# Expect policy_ref_snips13 to fail (message about no Cauchy Mean). - - -rule get_float128_tests -{ - local result ; - for local source in [ glob float128/*.cpp ] - { - result += [ run $(source) - /boost/test//boost_unit_test_framework/static - /boost/regex//boost_regex/static - : # command line - : # input files - : # requirements - [ check-target-builds ../config//has_intel_quad "Intel _Quad datatype support" : -Qoption,cpp,--extended_float_type BOOST_MATH_USE_FLOAT128 ] - [ check-target-builds ../config//has_float128 "GCC libquadmath and __float128 support" : -lquadmath ] - [ check-target-builds ../config//has_128bit_floatmax_t "128-bit floatmax_t" : : no ] - BOOST_ALL_NO_LIB - : $(source:B)_floatmax_t ] ; - } - return $(result) ; -} - -test-suite float128_tests : [ get_float128_tests ] ; From aedf8601c95a3e3a0c4959a93ba6db58a59b4456 Mon Sep 17 00:00:00 2001 From: Christopher Kormanyos Date: Sat, 19 Dec 2020 09:05:30 +0100 Subject: [PATCH 14/17] [CI SKIP] Remove useless semicolons and warnings --- include/boost/math/constants/constants.hpp | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/include/boost/math/constants/constants.hpp b/include/boost/math/constants/constants.hpp index 474eff704..3f8b7e185 100644 --- a/include/boost/math/constants/constants.hpp +++ b/include/boost/math/constants/constants.hpp @@ -322,12 +322,12 @@ namespace boost{ namespace math BOOST_DEFINE_MATH_CONSTANT(two_div_root_pi, 1.12837916709551257389615890312154517168810125, "1.12837916709551257389615890312154517168810125865799771368817144342128493688298682897348732040421472688605669581272") #if __cplusplus >= 201103L || (defined(_MSC_VER) && _MSC_VER >= 1900) - BOOST_DEFINE_MATH_CONSTANT(first_feigenbaum, 4.66920160910299067185320382046620161725818557747576863274, "4.6692016091029906718532038204662016172581855774757686327456513430041343302113147371386897440239480138171"); - BOOST_DEFINE_MATH_CONSTANT(plastic, 1.324717957244746025960908854478097340734404056901733364534, "1.32471795724474602596090885447809734073440405690173336453401505030282785124554759405469934798178728032991"); - BOOST_DEFINE_MATH_CONSTANT(gauss, 0.834626841674073186281429732799046808993993013490347002449, "0.83462684167407318628142973279904680899399301349034700244982737010368199270952641186969116035127532412906785"); - BOOST_DEFINE_MATH_CONSTANT(dottie, 0.739085133215160641655312087673873404013411758900757464965, "0.739085133215160641655312087673873404013411758900757464965680635773284654883547594599376106931766531849801246"); - BOOST_DEFINE_MATH_CONSTANT(reciprocal_fibonacci, 3.35988566624317755317201130291892717968890513, "3.35988566624317755317201130291892717968890513373196848649555381532513031899668338361541621645679008729704"); - BOOST_DEFINE_MATH_CONSTANT(laplace_limit, 0.662743419349181580974742097109252907056233549115022417, "0.66274341934918158097474209710925290705623354911502241752039253499097185308651127724965480259895818168"); + BOOST_DEFINE_MATH_CONSTANT(first_feigenbaum, 4.66920160910299067185320382046620161725818557747576863274, "4.6692016091029906718532038204662016172581855774757686327456513430041343302113147371386897440239480138171") + BOOST_DEFINE_MATH_CONSTANT(plastic, 1.324717957244746025960908854478097340734404056901733364534, "1.32471795724474602596090885447809734073440405690173336453401505030282785124554759405469934798178728032991") + BOOST_DEFINE_MATH_CONSTANT(gauss, 0.834626841674073186281429732799046808993993013490347002449, "0.83462684167407318628142973279904680899399301349034700244982737010368199270952641186969116035127532412906785") + BOOST_DEFINE_MATH_CONSTANT(dottie, 0.739085133215160641655312087673873404013411758900757464965, "0.739085133215160641655312087673873404013411758900757464965680635773284654883547594599376106931766531849801246") + BOOST_DEFINE_MATH_CONSTANT(reciprocal_fibonacci, 3.35988566624317755317201130291892717968890513, "3.35988566624317755317201130291892717968890513373196848649555381532513031899668338361541621645679008729704") + BOOST_DEFINE_MATH_CONSTANT(laplace_limit, 0.662743419349181580974742097109252907056233549115022417, "0.66274341934918158097474209710925290705623354911502241752039253499097185308651127724965480259895818168") #endif } // namespace constants From 5057e069c72dfd052f3b783b35ece5931b8ad81c Mon Sep 17 00:00:00 2001 From: Christopher Kormanyos Date: Sat, 19 Dec 2020 09:45:06 +0100 Subject: [PATCH 15/17] [CI SKIP] Suggest use c++11 header when needed --- include/boost/math/special_functions/fpclassify.hpp | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/include/boost/math/special_functions/fpclassify.hpp b/include/boost/math/special_functions/fpclassify.hpp index 3c1733e66..7967d6652 100644 --- a/include/boost/math/special_functions/fpclassify.hpp +++ b/include/boost/math/special_functions/fpclassify.hpp @@ -11,7 +11,11 @@ #pragma once #endif +#ifdef BOOST_MATH_USE_STD_FPCLASSIFY +#include +#else #include +#endif #include #include #include From b4fce630b7dacc9784427d8c27905f7c6ed20838 Mon Sep 17 00:00:00 2001 From: Christopher Kormanyos Date: Sat, 19 Dec 2020 10:33:49 +0100 Subject: [PATCH 16/17] Many CIs OK local try find what up on servers --- include/boost/math/special_functions/gamma.hpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/include/boost/math/special_functions/gamma.hpp b/include/boost/math/special_functions/gamma.hpp index cabe517ac..681a76190 100644 --- a/include/boost/math/special_functions/gamma.hpp +++ b/include/boost/math/special_functions/gamma.hpp @@ -1,7 +1,7 @@ -// Copyright John Maddock 2006-7, 2013-14. +// Copyright John Maddock 2006-7, 2013-20. // Copyright Paul A. Bristow 2007, 2013-14. // Copyright Nikhar Agrawal 2013-14 -// Copyright Christopher Kormanyos 2013-14 +// Copyright Christopher Kormanyos 2013-14, 2020 // Use, modification and distribution are subject to the // Boost Software License, Version 1.0. (See accompanying file From 75b9abc9ba1f84dacb997d09bc1829135127ad4a Mon Sep 17 00:00:00 2001 From: jzmaddock Date: Sat, 19 Dec 2020 19:37:22 +0000 Subject: [PATCH 17/17] Revert "[CI SKIP] Suggest use c++11 header when needed" This reverts commit 5057e069c72dfd052f3b783b35ece5931b8ad81c. --- include/boost/math/special_functions/fpclassify.hpp | 4 ---- 1 file changed, 4 deletions(-) diff --git a/include/boost/math/special_functions/fpclassify.hpp b/include/boost/math/special_functions/fpclassify.hpp index 7967d6652..3c1733e66 100644 --- a/include/boost/math/special_functions/fpclassify.hpp +++ b/include/boost/math/special_functions/fpclassify.hpp @@ -11,11 +11,7 @@ #pragma once #endif -#ifdef BOOST_MATH_USE_STD_FPCLASSIFY -#include -#else #include -#endif #include #include #include