【发布时间】:2013-10-09 02:28:31
【问题描述】:
我想了解什么是机器 epsilon。根据维基百科,可以这样计算:
def machineEpsilon(func=float):
machine_epsilon = func(1)
while func(1)+func(machine_epsilon) != func(1):
machine_epsilon_last = machine_epsilon
machine_epsilon = func(machine_epsilon) / func(2)
return machine_epsilon_last
但是,它只适用于双精度数。我有兴趣修改它以支持单精度数字。我读到可以使用 numpy,尤其是 numpy.float32 类。有人可以帮忙修改功能吗?
【问题讨论】:
-
该函数足够通用,可以处理所有精度。只需将
numpy.float32作为参数传递给函数!