[英]Java equivalent to Matlab's `eps` or Numpy/Python's `spacing` function (floating-point relative accuracy)
Matlab的內置eps
函數[1]可以取一個數值X
並返回“從abs(X)
到下一個更大的相同精度的浮點數的正距離”。
>> eps(1)
ans =
2.2204e-16
>> eps(single(1))
ans =
1.1921e-07
>> eps(1e6)
ans =
1.1642e-10
>> eps(single(1e6))
ans =
0.0625
同樣,Numpy提供了spacing
函數[2]:
In [18]: import numpy as np
In [19]: np.spacing(1)
Out[19]: 2.2204460492503131e-16
In [20]: np.spacing(np.single(1))
Out[20]: 1.1920929e-07
In [21]: np.spacing(1e6)
Out[21]: 1.1641532182693481e-10
In [22]: np.spacing(np.single(1e6))
Out[22]: 0.0625
Java中是否存在等效函數(因此像Clojure這樣的JVM語言)?
你想要java.lang.math.ulp :
返回參數的ulp大小。
double
值的ulp是該浮點值與接下來幅度較大的double
值之間的正距離。 注意,對於非NaN x,ulp(-x) == ulp(x)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.