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;

具體應用大概是在算法過程中減少誤差而使用。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章