卡汉总结

Jim*_*ard 5 algorithm floating-point

有没有人在申请中使用过Kahan总结?什么时候额外的精度会有用?

我听说在某些平台上,双重操作比浮动操作更快.如何在我的机器上测试?

pay*_*yne 9

当您对数字求和时,Kahan求和很有效,并且您需要最小化最坏情况的浮点错误.如果没有这种技术,如果有两个数字的大小与可用的有效数字不同(例如1 + 1e-12),则添加操作可能会严重损失精度.Kahan总和补偿了这一点.

浮点问题的优秀资源在这里,"计算机科学家应该了解浮点数":http: //www.validlab.com/goldberg/paper.pdf

在单精度和双精度性能上:是的,单精度可以明显更快,但它取决于特定的机器.请参阅:http: //www.hpcwire.com/features/17885244.html

测试的最佳方法是编写一个简短的示例来测试您关注的操作,使用单一(浮点)和双精度,并测量运行时.

  • 使用Kahan算法的地方之一是[java.util.stream.DoublePipeline#average](https://github.com/frohoff/jdk8u-jdk/blob/master/src/share/classes/java/util/在JDK中流/ DoublePipeline.java#L422). (2认同)