Hello, Under R 4.5.0 on Windows (x86-64), I get:
> sqrt(.Machine$double.xmax)^2 [1] Inf > sqrt(.Machine$double.xmax)*sqrt(.Machine$double.xmax) [1] Inf On other hand on other platforms, including Debian Linux (x86-64), I get: d> sqrt(.Machine$double.xmax)^2 [1] 1.797693134862315508561e+308 d> sqrt(.Machine$double.xmax)*sqrt(.Machine$double.xmax) [1] 1.797693134862315508561e+308 Windows is running inside a VirtualBox instance on the same host as Linux. I don't have direct results from the MacOS platforms, but based on the symptoms that had led me to investigate, the behaviour is as the Linux. Adding to the mystery, if I implement the same operation in C, e.g., library(inline) sqrsqrt <- cfunction(sig = c(x = "numeric"), language = "C", " double sqrtx = sqrt(Rf_asReal(x)); return Rf_ScalarReal(sqrtx*sqrtx); ") R on Linux yields: d> sqrsqrt(.Machine$double.xmax) [1] 1.797693134862315508561e+308 i.e., the same number, whereas R on Windows yields: d> sqrsqrt(.Machine$double.xmax) [1] 1.797693134862315508804e+308 which is not Inf but not the same as Linux either. Lastly, on both platforms, d> sqrsqrt(.Machine$double.xmax) < .Machine$double.xmax [1] TRUE I am not sure if this is a bug, intended behaviour, or something else. Best Regards, Pavel ______________________________________________ R-devel@r-project.org mailing list https://stat.ethz.ch/mailman/listinfo/r-devel