From 37783e519ae951f9759db0cc69287d18b3da9a42 Mon Sep 17 00:00:00 2001 From: jzmaddock Date: Sun, 21 May 2017 08:49:06 +0100 Subject: [PATCH] Bessel_I0: decimal number types shouldn't use numeric_limits::digits to judge precision. --- include/boost/math/special_functions/detail/bessel_i0.hpp | 4 +++- include/boost/math/special_functions/detail/bessel_i1.hpp | 2 ++ 2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/include/boost/math/special_functions/detail/bessel_i0.hpp b/include/boost/math/special_functions/detail/bessel_i0.hpp index 5896db8f7..738a098c2 100644 --- a/include/boost/math/special_functions/detail/bessel_i0.hpp +++ b/include/boost/math/special_functions/detail/bessel_i0.hpp @@ -532,7 +532,9 @@ template inline T bessel_i0(const T& x) { typedef mpl::int_< - std::numeric_limits::digits == 0 ? + (std::numeric_limits::radix != 2) ? + -1 : + (std::numeric_limits::digits == 0) ? 0 : std::numeric_limits::digits <= 24 ? 24 : diff --git a/include/boost/math/special_functions/detail/bessel_i1.hpp b/include/boost/math/special_functions/detail/bessel_i1.hpp index 0f9ba96bd..af7d1dcd9 100644 --- a/include/boost/math/special_functions/detail/bessel_i1.hpp +++ b/include/boost/math/special_functions/detail/bessel_i1.hpp @@ -555,6 +555,8 @@ template inline T bessel_i1(const T& x) { typedef mpl::int_< + (std::numeric_limits::radix != 2) ? + -1 : std::numeric_limits::digits == 0 ? 0 : std::numeric_limits::digits <= 24 ?