Index: bessel.hpp =================================================================== --- bessel.hpp (revision 51816) +++ bessel.hpp (working copy) @@ -244,8 +244,12 @@ if(v == 0.5f) { // common special case, note try and avoid overflow in exp(x): - T e = exp(x / 2); - return e * (e / sqrt(2 * x * constants::pi())); + if(x >= tools::log_max_value()) + { + T e = exp(x / 2); + return e * (e / sqrt(2 * x * constants::pi())); + } + return sqrt(2 / (x * constants::pi())) * sinh(x); } if(policies::digits() <= 64) {