[R] Interesting quirk with fractions and rounding / using == for floating point
peter dalgaard
pdalgd at gmail.com
Sun Apr 23 15:37:09 CEST 2017
> On 23 Apr 2017, at 14:49 , J C Nash <profjcnash at gmail.com> wrote:
>
>
> So equality in floating point is not always "wrong", though it should be used
> with some attention to what is going on.
>
> Apologies to those (e.g., Peter D.) who have heard this all before. I suspect
> there are many to whom it is new.
Peter D. still insists on never trusting exact equality, though. There was at least one case in the R sources where age-old code got itself into a condition where a residual terme that provably should decrease on every iteration oscillated between two values of 1-2 ulp in magnitude without ever reaching 0. The main thing is that you cannot trust optimising compilers these days. There is, e.g., no guarantee that a compiler will not transform
(x_new + offset) == (x_old + offset)
to
(x_new + offset) - (x_old + offset) == 0
to
(x_new - x_old) + (offset - offset) == 0
to.... well, you get the point.
-pd
--
Peter Dalgaard, Professor,
Center for Statistics, Copenhagen Business School
Solbjerg Plads 3, 2000 Frederiksberg, Denmark
Phone: (+45)38153501
Office: A 4.23
Email: pd.mes at cbs.dk Priv: PDalgd at gmail.com
More information about the R-help
mailing list