有人在应用程序中使用过Kahan求和吗?什么时候可以使用额外的精度?
我听说在某些平台上,双重操作比 float 操作要快。如何在我的机器上测试?
最佳答案
当您对数字求和时,Kahan summation效果很好,并且您需要最小化最坏情况的浮点错误。如果没有这种技术,则如果两个数字的大小因可用的有效数字而不同(例如1 + 1e-12),则可能会使加法运算的精度大大降低。 Kahan总和弥补了这一点。
浮点问题的绝佳资源在这里,“每个计算机科学家都应了解的浮点算术知识”:http://www.validlab.com/goldberg/paper.pdf
关于单精度和 double 性能:是的,单精度可以显着提高,但这取决于特定的机器。另请:https://www.hpcwire.com/2006/06/16/less_is_more_exploiting_single_precision_math_in_hpc-1/
最好的测试方法是编写一个简短的示例,使用单精度(浮点)和 double 来测试您关心的操作,并测量运行时间。
关于algorithm - 卡汉加法,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/4940072/