fortran66のブログ

fortran について書きます。

2012-04-11から1日間の記事一覧

ソース

module m_kahan implicit none contains function sum_kahan(xx) result(s) real, intent(in) :: xx(:) real :: c, s, x, t integer :: i c = 0.0 s = 0.0 do i = 1, size(xx) x = xx(i) - c t = s + x c = (t - s) - x s = t end do return end function su…

Kahan和

Intel Fortran の intrinsic function の SUM は、大きな配列の和をとる時、配列の並びで大きく値が変わる。(浮動小数点では交換則が成り立っていないが、その誤差が大きく見えてくる。)これは、倍精度変数をアキュームレータにするか、いわゆる Kahan 和…