kahan算法

Posted hyl天梦

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了kahan算法相关的知识,希望对你有一定的参考价值。

kahan 算法

kahan 算法使用来减少浮点数计算误差的。

众所周知,因为存储空间原因,浮点数之间的加法满足交换律但并不满足结合律,会有一定的误差产生。而 kahan 算法的目的是减少误差,具体方法是每一次都记录下来当前的误差,在下一个数中进行修正。

代码:


float sum=0.0f,c=0.0f;
for(int i=1;i<=n;i++)
    float a=f[i]-c;
    float b=sum+a;
    c=b-sum-a;sum=b;

return sum;

具体应用大概是在算法过程中减少误差而使用。

以上是关于kahan算法的主要内容,如果未能解决你的问题,请参考以下文章

算法都有哪些分类

Java 虚拟机原理垃圾回收算法 ( 标记-清除算法 | 复制算法 | 标记-整理算法 )

Java 虚拟机原理垃圾回收算法 ( 标记-清除算法 | 复制算法 | 标记-整理算法 )

页面置换算法(最佳置换算法FIFO置换算法LRU置换算法LFU置换算法)

算法的描述、特性以及概念

算法篇贪心算法介绍——基于Python实现的爬山算法