#6517 closed Bugs (fixed)
boost::math::isfinite returns false for unsigned int 0
| Reported by: | Owned by: | John Maddock | |
|---|---|---|---|
| Milestone: | Boost 1.52.0 | Component: | math |
| Version: | Boost 1.48.0 | Severity: | Problem |
| Keywords: | math isfinite | Cc: |
Description
from: boost/math/distributions/detail/common_error_handling.hpp
(boost::math::isfinite)(0U) returns 0
(boost::math::isfinite)(1U) returns 1
To recreate the problem, the following program:
#include <iostream> #include <boost/math/distributions/detail/common_error_handling.hpp> int main(int argc, char* argv[]) {
std::cout << "isfinite(0U)=" << (boost::math::isfinite)(0U) << std::endl; std::cout << "isfinite(1U)=" << (boost::math::isfinite)(0U) << std::endl;
}
prints:
isfinite(0U)=0 isfinite(1U)=0
This can't happen with the std::isinf() tests because they only take floating point args, so the unsigned int would get cast.
Change History (3)
comment:1 by , 10 years ago
| Status: | new → assigned |
|---|
comment:2 by , 10 years ago
| Resolution: | → fixed |
|---|---|
| Status: | assigned → closed |
comment:3 by , 10 years ago
| Milestone: | To Be Determined → Boost 1.52.0 |
|---|

(In [79438]) Allow fpclassify and friends to be used with integer types via the usual promotion mechanism. Fixes #6517.