How does the R-gmp package treat "Inf"? -
i noticed following when running gmp
r
:
rgames> log2(inf) [1] inf rgames> log2(as.bigz(inf)) [1] 8000
what's happening here? or gmp
language (or gmp::log2.bigz
method) not support concept of "inf" ?
edit: josh's comment correct: it's not log2
function per se rather fact as.bigz
appears convert inf
2^8000
bigz
integer. changed title match.
btw, there's this:
rgames> log2(-inf) [1] nan warning message: nans produced rgames> log2(as.bigz(-inf)) [1] nan
edit: stupid. log2(negative_anything)
nan
but,
rgames> log2(-as.bigz(-inf)) [1] 8000
fits josh's answer.
posting josh's detective work him, per request:
if download sources gmp
, , search "inf" in $gmp-home$/src/bigintegerr.cc
, you'll find following lines:
/// new: numeric '+- inf' give +- "large" instead of na
and bit later
else { // dj +- inf : use large ( = +- 2 ^ 80000 -- arbitrarily )
my guess since gmp library doesn't have concept/representation of inf
, r package authors had make decision how pass on user-supplied inf
values external library. looks used convert inf
na
, , convert 2^80000
.
Comments
Post a Comment