diff --git a/test/test_igamma.hpp b/test/test_igamma.hpp index 85b86f421..b03419667 100644 --- a/test/test_igamma.hpp +++ b/test/test_igamma.hpp @@ -18,7 +18,6 @@ #include #include #include "functor.hpp" -#include #include "handle_test_result.hpp" #include "table_type.hpp" @@ -280,7 +279,7 @@ void test_spots(T, const char* name = nullptr) BOOST_CHECK_CLOSE(::boost::math::lgamma_q(static_cast(800), static_cast(1000.25)), static_cast(-24.43514173634027477093666725985191846106997808357863808910970142L), tolerance * (boost::math::tools::digits() > 54 ? 20 : 1)); // Once we get large a,x then error start to accumulate no matter what we do: BOOST_CHECK_CLOSE(::boost::math::lgamma_q(static_cast(1200), static_cast(1249.75)), static_cast(-2.565496161584661216769813239648606145255794643472303927896044375L), tolerance * (std::is_floating_point::value ? 1 : 4)); - BOOST_CHECK_CLOSE(::boost::math::lgamma_q(static_cast(1200), static_cast(1250.25)), static_cast(-2.591934862117586205519309712218581885256650074210410262843591453L), tolerance * ((std::numeric_limits::max_digits10 >= 36) ? 750 : (std::is_same::value ? 1 : 50))); + BOOST_CHECK_CLOSE(::boost::math::lgamma_q(static_cast(1200), static_cast(1250.25)), static_cast(-2.591934862117586205519309712218581885256650074210410262843591453L), tolerance * ((std::numeric_limits::max_digits10 >= 36 || std::is_same::value) ? 750 : (std::is_same::value ? 1 : 50))); // Test fails on ARM64 and s390x long doubles and real_concept types unless tolerance is adjusted BOOST_CHECK_CLOSE(::boost::math::lgamma_q(static_cast(2200), static_cast(2249.75)), static_cast(-1.933779894897391651410597618307863427927461116308937004149240320L), tolerance * (std::is_floating_point::value ? 1 : 10)); BOOST_CHECK_CLOSE(::boost::math::lgamma_q(static_cast(2200), static_cast(2250.25)), static_cast(-1.950346484067948344620463026377077515919992808640737320057812268L), tolerance * (std::is_same::value ? 1 : (std::is_floating_point::value ? 100 : 200))); //