2010-01-29 28 views

回答

1

編輯:依賴於編譯器:見下面我的編輯。 編輯結束

我第二個米克夏普的建議,它將在運行時評估。出於好奇,我編譯了PI=4.D0*DATAN(1.D0)Silverfrost's ftn77 compiler並查看了生成的二進制文件。相關部分看起來像這樣:

fld1     ; push 1.D0 onto the FPU register stack 
call ATAN_X 
fmul dbl_404000 ; multiply by 4.D0 

確實,這裏沒有編譯器的巧妙。

這當然可能與另一個編譯器(例如g77)不同。 編輯:顯然,使用g77(gcc的fortran77前端),可以(默認啓用)使用gcc的built-in atan functionauto-fold PI=4.D0*DATAN(1.D0) into a constant編輯結束

+0

哇,謝謝。我可以問你以前看過二進制文件嗎? – ccook 2010-01-29 17:11:49

+0

我使用了IDA 2010-01-29 18:05:38

+0

感謝您提供關於g77的鏈接和更新。 – ccook 2010-01-29 21:22:38

1

呼叫至數學函數通常在運行時評估。畢竟,沒有什麼能阻止你編寫自己的數學函數。如果在編譯時進行評估,這是不可能的。

+0

好點,謝謝。 – ccook 2010-01-29 14:27:21