Domanda

Quando si utilizza il seguente calcolo di PI in Fortran77, sarà il compilatore di valutare questo valore o sarà valutata in fase di esecuzione?

  

PI = 4.D0 * Datan (1.D0)

È stato utile?

Soluzione

Modifica : dipende dal compilatore: vedere la mia modifica sotto. EDIT END

i secondo suggerimento di Mick Sharpe che sarà valutata in fase di esecuzione. solo per curiosità, ho compilato PI=4.D0*DATAN(1.D0) con di ftn77 compilatore e guardato il Silverfrost binario generato. le pertinenti sguardi parte in questo modo:

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

così effettivamente, nessun compilatore bravura qui.

questo ovviamente potrebbe essere diverso con un altro compilatore (ad es. G77). Modifica : a quanto pare, con G77 (il Fortran77 front-end per gcc) è possibile (e abilitato per impostazione predefinita) per utilizzare di gcc funzione built-in Atan per auto-piega PI=4.D0*DATAN(1.D0) in una costante . EDIT END

Altri suggerimenti

Le chiamate a funzioni matematiche sono normalmente valutati in fase di esecuzione. Dopo tutto, non c'è nulla che impedisca di scrivere le proprie funzioni matematiche. Questo non sarebbe possibile se fossero valutati in fase di compilazione.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top