使用 Numba 的机器 epsilon
Machine epsilon with Numba
我正在尝试使用 Numba.In 我的代码来加速我的代码,我必须使用 numpy.finfo(float).eps
中声明的机器 epsilon,根据文档,它等于 2**-52
。我的问题如下:
Numba 中有什么东西可以代替机器 eps 吗?
如果不是,将其声明为常量有什么缺点吗?
您可以在 Numba njit
函数中使用 np.finfo(np.float64).eps
。这适用于 Numba 0.54.1。见以下代码:
@nb.njit('float64()')
def test():
return np.finfo(np.float64).eps
test() # Returns 2.220446049250313e-16
声明一个常量也可以。在这两种情况下,Numba 都会生成一个很好的汇编代码,直接 return(预先计算的)常量。
我正在尝试使用 Numba.In 我的代码来加速我的代码,我必须使用 numpy.finfo(float).eps
中声明的机器 epsilon,根据文档,它等于 2**-52
。我的问题如下:
Numba 中有什么东西可以代替机器 eps 吗?
如果不是,将其声明为常量有什么缺点吗?
您可以在 Numba njit
函数中使用 np.finfo(np.float64).eps
。这适用于 Numba 0.54.1。见以下代码:
@nb.njit('float64()')
def test():
return np.finfo(np.float64).eps
test() # Returns 2.220446049250313e-16
声明一个常量也可以。在这两种情况下,Numba 都会生成一个很好的汇编代码,直接 return(预先计算的)常量。