我正在编写一个涉及大量指数函数调用的Fortran程序.我发现当exp()函数的参数是变量时,计算速度比使用常量值作为函数参数慢20多倍.例如,在以下两个示例程序中,程序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
Run Code Online (Sandbox Code Playgroud)
=====================
program B
integer i
real b
do i=1,100000000
b=exp(1.234)
end do
stop
end program B
Run Code Online (Sandbox Code Playgroud)
当使用变量作为exp()函数参数是不可避免的时候,如何提高exp()计算效率?