id summary reporter owner description type status milestone component version severity resolution keywords cc 10104 program aborts with log1p(-2.0Q) Charles Karney John Maddock "The math functions, e.g., log1p, for float128 do not handle parameters outside the normal domain. Thus sqrt(-2.0Q) produces a nan as does log1p(-2.0), but log1p(-2.0Q) crashes. (Similar remarks apply to hypot and probably other similarly defined functions.) {{{ #include #include #include #include int main() { double x = -2; boost::multiprecision::float128 y = -2; std::cout << std::sqrt(x) << ""\n"" << std::log1p(x) << ""\n""; std::cout << sqrt(y) << ""\n""; std::cout << boost::math::log1p(y) << ""\n""; } }}} produces {{{ -nan -nan -nan terminate called after throwing an instance of 'boost::exception_detail::clone_impl >' what(): Error in function boost::math::log1p(N5boost14multiprecision6numberINS0_8backends16float128_backendELNS0_26expression_template_optionE0EEE): log1p(x) requires x > -1, but got x = -2. Aborted (core dumped) }}} " Bugs closed To Be Determined multiprecision Boost 1.54.0 Problem invalid