gpt4 book ai didi

Java 相当于 Matlab 的 `eps` 或 Numpy/Python 的 `spacing` 函数(浮点相对精度)

转载 作者:太空狗 更新时间:2023-10-30 01:23:04 25 4
gpt4 key购买 nike

背景

Matlab 内置的 eps 函数 [1] 可以取一个数值 X 并返回“与 abs(X) 的正距离到具有相同精度的下一个更大的 float ”。

>> 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 :

Returns the size of an ulp of the argument. An ulp of a double value is the positive distance between this floating-point value and the double value next larger in magnitude. Note that for non-NaN x, ulp(-x) == ulp(x)

另外,可用于 floats .一些background on ULPs .

关于Java 相当于 Matlab 的 `eps` 或 Numpy/Python 的 `spacing` 函数(浮点相对精度),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17069793/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com