在 Windows 中使用 R 基函数tanh
为大(实部,虚部为 0)值估计双曲正切时,函数返回“NaN”:
tanh(356 + 0i)
> NaN + 0i
但是,在 Mac 中,相同的值返回 1(与“真实”数学值一致应该接近 1):
tanh(356 + 0i)
> 1 + 0i
问题1:有人知道为什么会这样吗?
额外信息
这似乎不是浮点问题,因为 Mac 似乎tanh
为任意大的值返回 1:
tanh(999999677873648767519238192348124812341234182374817239847812738481234871823+0i)
> 1 + 0i
这个问题似乎与虚部有关:
tanh(356)
> 1
在 Windows 和 Mac 中。这个问题似乎是系统(或处理器?)特定的,因为我们已经尝试过:
- 配备 El Capitan v 10.11.6处理器的 Mac:2.7 GHz Intel Core i5
- 配备 Sierra v 10.12.3处理器的 Mac:3.2 GHz Intel Core i5
- Windows 10 Home v 1607处理器:Intel Core m3-SY30 CPU@ 0.90 GHz 1.51 GHz
- Windows 7 Home Premium Service Pack 1处理器:Intel Core i5-2410M CPU @2.30 GHz 2.30GHz。
这些 Windows 机器抛出NaN
,Mac 的1 + 0i
. 在所有情况下,我们都使用“最新”(64 位)的 R 版本 3.3.3。