Fortran77编译器处理的PI=4.D0*DATAN(1中。D0)
题
在使用下列来计算PI在fortran77,将编译器评价,这值或者将其评估在运行时间?
PI=4.D0*DATAN(1中。D0)
解决方案
编辑:取决于编译器:看见我的编辑下。 编辑结束
我的第二米克夏普的建议,即它将评估在运行时间。只是出于好奇,我编写了 PI=4.D0*DATAN(1.D0)
与 Silverfrost的ftn77编译器 看着所产生的二进制的。相关部分看起来像这样:
fld1 ; push 1.D0 onto the FPU register stack
call ATAN_X
fmul dbl_404000 ; multiply by 4.D0
因此,事实上,没有编译器聪明的在这里。
这当然可能是不同的,另一个编译器(例如。77国集团). 编辑:显然,与77国集团(第fortran77前结束海湾合作委员会)是可能的(和默认)使用的海湾合作委员会 内atan功能 要 自动折叠 PI=4.D0*DATAN(1.D0)
进入一恒定. 编辑结束
其他提示
呼叫至数学函数通常在运行时评估。毕竟,有什么能阻止你编写自己的数学函数。如果他们在编译时评价这将是不可能的。
不隶属于 StackOverflow