Modify

Opened 5 years ago

Closed 5 years ago

Last modified 5 years ago

#6517 closed Bugs (fixed)

boost::math::isfinite returns false for unsigned int 0

Reported by: Bob Carpenter <carp@…> Owned by: johnmaddock
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.

Attachments (0)

Change History (3)

comment:1 Changed 5 years ago by johnmaddock

  • Status changed from new to assigned

comment:2 Changed 5 years ago by johnmaddock

  • Resolution set to fixed
  • Status changed from assigned to closed

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

comment:3 Changed 5 years ago by johnmaddock

  • Milestone changed from To Be Determined to Boost 1.52.0

Add Comment

Modify Ticket

Change Properties
Set your email in Preferences
Action
as closed The owner will remain johnmaddock.
The resolution will be deleted. Next status will be 'reopened'.
Author


E-mail address and user name can be saved in the Preferences.

 
Note: See TracTickets for help on using tickets.