
On 2012-11-26 15:07, Gaetano Mendola wrote:
On 11/26/2012 02:42 PM, Tim Blechmann wrote:
I'm wandering if this is to be expected, the following code fails if compiled with --fast-math:
//==================================================== #include <boost/math/special_functions/fpclassify.hpp> int main() { const float a = 0.0f/0.0f; assert(not boost::math::isfinite(a)); }
Which fails - does the 0/0 actually yield an infinity? Or is it isfinite that fails?
Either way is hard to make guarentees once you enable an option like that.
The following code:
[snip]
so I believe somehow even with --fast-math it should be possible to make it "working" (if it has to be).
rtfm: you asked the compiler to assume that neither arguments nor results are NaNs or Infs. if your code uses or generates NaNs or Infs its behavior is undefined.
rtfp (p = post): I'm saying that "if it has to be fixed" somehow boost::math::isfinite can still detect if a float has a "nan" configuration I was even asking if that was expected behavior by "boost::math::isfinite" or not.
If boost::math::isfinite has to be "compatible" with ::isfinite() then yes it's normal, this can be specified in the boost documentation.
Gaetano
Interesting as this may be, I am receiving all your mails twice (maybe a result of sending a copy to gmane.comp.lib.boost.devel?). Can you please try to change your settings? Thanks and regards, Roland