Pregunta

Cuando se utiliza el siguiente cálculo de PI en FORTRAN77, será el compilador evaluar este valor o va a ser evaluado en tiempo de ejecución?

  

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

¿Fue útil?

Solución

Editar : depende del compilador: ver a mi Editar a continuación. Edit End

i segunda sugerencia de Mick Sharpe que será evaluado en tiempo de ejecución. sólo por curiosidad, he recopilado PI=4.D0*DATAN(1.D0) con de ftn77 compilador y mirado el Silverfrost binario generado. las miradas de las piezas correspondientes de esta manera:

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

así que de hecho, ningún compilador de inteligencia aquí.

esto por supuesto puede ser diferente con otro compilador (por ejemplo. G77). Editar : al parecer, con G77 (el front-end FORTRAN77 para GCC) es posible (y activado de forma predeterminada) para utilizar de gcc función integrada de atan a PI=4.D0*DATAN(1.D0) auto-pliegue en una constante . Edit End

Otros consejos

Las llamadas a funciones matemáticas se evalúan normalmente en tiempo de ejecución. Después de todo, no hay nada que le impida escribir sus propias funciones matemáticas. Esto no sería posible si se evaluaron en tiempo de compilación.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top