This question is more out of curiosity than a complaint or suggestion, but
I'm just wondering.

The behavior of R on calculations that result in NaN seems a bit
inconsistent.

# this is expected:
> 0/0
[1] NaN

# but this gives a warning
> sin(Inf)
[1] NaN
Warning message:
In sin(Inf) : NaNs produced

# and this again does not
> exp(NaN)
[1] NaN


Conceptually, I like to think that R computes over the real line augmented
with NaN, Inf, -Inf, NaN, and NA (which is technically also NaN). As far as
I know, this set is closed under R's arithmetic operations and mathematical
functions (following the IEEE standard on double precision). If that's the
case, the result sin(Inf)=NaN seems normal to me and a warning is
unnecessary.

So why the choice to have warning on sin(Inf), but not on 0/0 or exp(Nan)?
Is it just historical or am I missing a reasoning or some standard?


Best,
Mark

> sessionInfo()
R version 3.2.2 (2015-08-14)
Platform: x86_64-pc-linux-gnu (64-bit)
Running under: Ubuntu 14.04.3 LTS

locale:
 [1] LC_CTYPE=en_US.UTF-8       LC_NUMERIC=C
 [3] LC_TIME=nl_NL.UTF-8        LC_COLLATE=en_US.UTF-8
 [5] LC_MONETARY=nl_NL.UTF-8    LC_MESSAGES=en_US.UTF-8
 [7] LC_PAPER=nl_NL.UTF-8       LC_NAME=C
 [9] LC_ADDRESS=C               LC_TELEPHONE=C
[11] LC_MEASUREMENT=nl_NL.UTF-8 LC_IDENTIFICATION=C

        [[alternative HTML version deleted]]

______________________________________________
R-devel@r-project.org mailing list
https://stat.ethz.ch/mailman/listinfo/r-devel

Reply via email to