From: Gennadiy Rozental (gennadiy.rozental_at_[hidden])
Date: 2007-05-17 14:09:10
"Paul A Bristow" <pbristow_at_[hidden]> wrote in message
>>> Why do you expect two infinity values to be close with any tolerance?
>>Interesting question: if the too values are the same, then I
>>expected BOOST_CHECK_CLOSE to pass. But then we get into
>>discussions about whether two infinities are really the same :-)
> Well we certainly don't want any philosophical discussions :-))
> In BOOST_CHECK we are really comparing two bit patterns - both of which
> are std::numeric_limits<T>::infinity() and will presumably
This is not exactly true in general. BOOST_CHECK uses operator==.
BOOST_CHECK_CLOSE doesn't compare bit patterns either. It uses some advanced
algorithm. So we may decide what is the desirable outcome.
> pass a BOOST_CHECK_EQUAL test, so I also would expect a BOOST_CHECK_CLOSE
> pass, whatever the tolerance.
> But most important is to try to agree and to document our conclusion?
Getting back to our FP we need to decide
0. == 0.
NaN == NaN
Inf == Inf.
My guess is that curent algorithm produces false in all three cases.
My vote would be to keep it this way.
> Paul A Bristow
> Prizet Farmhouse, Kendal, Cumbria UK LA8 8AB
> +44 1539561830 & SMS, Mobile +44 7714 330204 & SMS
> Unsubscribe & other changes:
Boost list run by bdawes at acm.org, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk