gpt4 book ai didi

c++ - 关于浮点计算的准确度/精度,可以提出什么声明(如果有的话)?

转载 作者:塔克拉玛干 更新时间:2023-11-03 00:55:50 24 4
gpt4 key购买 nike

我正在开发一个进行大量浮点计算的应用程序。我们在具有 double 浮点值的 Intel x86 上使用 VC++。我们声称我们的计算精确到 n 个十进制数字(现在是 7,但试图声称是 15)。

当我们的结果略有变化(由于代码重构、清理等)时,我们会根据其他来源来验证我们的结果。我知道很多因素都会影响整体精度,例如 FPU 控制状态、编译器/优化器、浮点模型和操作本身的整体顺序(即算法本身),但考虑到固有的不确定性在 FP 计算中(例如,无法表示 0.1),要求所有计算的任何特定精度似乎是无效的。

我的问题是:在不进行任何类型的分析(例如区间分析)的情况下,对 FP 计算的准确性做出任何一般性声明是否有效?如果是这样,可以提出什么主张,为什么?

编辑:

假设输入数据精确到小数点后 n 位,如果使用 double ,是否可以保证任何任意计算的结果?例如,如果输入数据有 8 位有效小数位,则输出将至少有 5 位有效小数位... ?

我们正在使用数学库,不知道它们可能会或可能不会做出任何保证。我们使用的算法不一定以任何方式进行精度分析。但即使给定一个特定的算法,实现也会影响结果(例如,只是改变两个加法运算的顺序)。使用 double 时是否有任何内在保证?

另一个编辑:

我们确实根据其他来源验证了我们的结果。那么,当我们达到 10 位数的准确度时,我们只是走运吗?

最佳答案

对于所有此类问题,我只能用文章 What Every Computer Scientist Should Know About Floating-Point Arithmetic 来简单回答。 .对于您所谈论的工作类型,它绝对是必不可少的。

关于c++ - 关于浮点计算的准确度/精度,可以提出什么声明(如果有的话)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2263690/

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