除算のご利用は計画的に

浮動小数点の四則演算を速度で比較すると、加算=減算=乗算>>除算(一般論)、ということになるので多少他の演算が増えようが除算は減らす方がいい。ただし実際には試行錯誤が必要。ということで、上記のプログラムを2倍アンロールして除算を減らしてみる。


sum = 0.0;
for( i = 1 ; i <= n ; i += 2 ) {
sqr1 = i * i;
sqr2 = (i + 1) * (i + 1);
sum += (sqr1 + sqr2) / (sqr1 * sqr2)
}
1回のループにおいて、元の2倍アンロールは加減乗が6回、除が2回なのに対し、後者は加減乗が6回、除が1回となってる。これで速度比較をしたら分かるが、後者の方が速いハズ。