diff --git a/include/boost/math/quadrature/detail/ooura_fourier_integrals_detail.hpp b/include/boost/math/quadrature/detail/ooura_fourier_integrals_detail.hpp index 49677a8d2..c677852da 100644 --- a/include/boost/math/quadrature/detail/ooura_fourier_integrals_detail.hpp +++ b/include/boost/math/quadrature/detail/ooura_fourier_integrals_detail.hpp @@ -195,11 +195,15 @@ public: lweights_.reserve(levels); for (size_t i = 0; i < levels; ++i) { - if (std::is_same::value) { + BOOST_MATH_IF_CONSTEXPR (std::is_same::value) { add_level(i); } - else if (std::is_same::value) { + else BOOST_MATH_IF_CONSTEXPR (std::is_same::value) { +#ifndef BOOST_MATH_NO_LONG_DOUBLE_MATH_FUNCTIONS add_level(i); +#else + add_level(i); +#endif } else { add_level(i); @@ -266,11 +270,15 @@ public: size_t max_additional_levels = 4; while (big_nodes_.size() < requested_levels_ + max_additional_levels) { size_t ii = big_nodes_.size(); - if (std::is_same::value) { + BOOST_MATH_IF_CONSTEXPR (std::is_same::value) { add_level(ii); } - else if (std::is_same::value) { + else BOOST_MATH_IF_CONSTEXPR (std::is_same::value) { +#ifndef BOOST_MATH_NO_LONG_DOUBLE_MATH_FUNCTIONS add_level(ii); +#else + add_level(ii); +#endif } else { add_level(ii); @@ -464,11 +472,15 @@ public: lweights_.reserve(levels); for (size_t i = 0; i < levels; ++i) { - if (std::is_same::value) { + BOOST_MATH_IF_CONSTEXPR (std::is_same::value) { add_level(i); } - else if (std::is_same::value) { + else BOOST_MATH_IF_CONSTEXPR (std::is_same::value) { +#ifndef BOOST_MATH_NO_LONG_DOUBLE_MATH_FUNCTIONS add_level(i); +#else + add_level(i); +#endif } else { add_level(i); @@ -512,11 +524,15 @@ public: size_t max_additional_levels = 4; while (big_nodes_.size() < requested_levels_ + max_additional_levels) { size_t ii = big_nodes_.size(); - if (std::is_same::value) { + BOOST_MATH_IF_CONSTEXPR (std::is_same::value) { add_level(ii); } - else if (std::is_same::value) { + else BOOST_MATH_IF_CONSTEXPR (std::is_same::value) { +#ifndef BOOST_MATH_NO_LONG_DOUBLE_MATH_FUNCTIONS add_level(ii); +#else + add_level(ii); +#endif } else { add_level(ii);