非常に多数の指数関数呼び出しを含む Fortran プログラムを作成しています。関数の引数がexp()
変数の場合、関数の引数として定数値を使用する場合よりも計算速度が 20 倍以上遅くなることがわかりました。たとえば、次の 2 つのサンプル プログラムでは、プログラム A はプログラム B よりもはるかに低速です。
program A
real a,b
integer i
a=1.234
do i=1,100000000
b=exp(a)
end do
stop
end program A
=====================
program B
integer i
real b
do i=1,100000000
b=exp(1.234)
end do
stop
end program B
やむを得ず関数の引数に変数を使用する場合、計算exp()
効率を上げるにはどうすればよいでしょうか?exp()