gpt4 book ai didi

c++ - 何时使用 DBL_EPSILON/epsilon

转载 作者:塔克拉玛干 更新时间:2023-11-03 01:49:08 31 4
gpt4 key购买 nike

DBL_EPSILON/std::numeric_limits::epsilon 会给我最小的值,当加一时会有所不同。

我无法理解如何将这些知识应用到有用的东西中。

epsilon 比计算机可以处理的最小值大得多,因此使用比 epsilon 更小的值是安全的假设似乎是正确的?

我正在处理的值之间的比率是否应该小于 1/epsilon?

最佳答案

DBL_EPSILON 的定义不是那样的。它是 1 和 1 之后的下一个可表示数字之间的差值(您的定义假定舍入模式设置为“向 0”或“向负无穷大”,这并不总是正确的)。

如果您对数值分析有足够的了解,这将很有用。但我担心这个地方不是了解它的最佳地点。例如,您可以使用它来构建一个比较函数,该函数会像这样判断两个 float 是否近似相等

bool approximatively_equal(double x, double y, int ulp)
{
return fabs(x-y) <= ulp*DBL_EPSILON*max(fabs(x), fabs(y));
}

(但不知道如何确定 ulp,你会迷路;如果中间结果是非正规的,这个函数可能会出现问题;fp 计算很复杂,很难做到稳健)

关于c++ - 何时使用 DBL_EPSILON/epsilon,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3109941/

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