我对这样的“战争故事”很感兴趣:
我编写了一个涉及浮点数总和的程序,但我没有使用 Kahan 求和。
总和是
bad_sum
,程序给了我一个错误的结果。我的一位同事比我更精通数值分析,他查看了代码并建议我使用 Kahan 求和,现在求和,
good_sum
程序给了我正确的结果。
我对现实生活中的生产代码感兴趣,而不是为了解释 Kahan 求和算法而“人为”创建的代码示例。
特别是(bad_sum-good_sum)/good_sum
您的应用程序的相对误差是多少?
到目前为止,我还没有类似的故事要讲。也许我会做一些测试(在输入数据集上运行我的程序,记录程序结果和有和没有 Kahan 的总和,估计相对误差)。