Pregunta

Intenté hacer precisión cuádruple en FORTRAN[real(kind=16)], pero sigo recibiendo un error

C:\User\User\AppData\Local\Temp/ccUMY6b.0:forcefunction.f95:(.text+0x437):
undefined reference to 'qcos_'

Intenté cambiar qcos a cos pero,

C:\User\User\AppData\Local\Temp/ccM5CBUM.0:forcefunction.f95:(.text+0x2fd1):
undefined reference to '_g95_qcos_r16'

Mismo problema para sin, abs, acos, asin, sqrt

¿Fue útil?

Solución

kind=16 no es necesariamente precisión cuádruple.Los valores de tipo no están definidos por el estándar del lenguaje y no son portátiles entre compiladores.Es posible que dieciséis no sea el valor adecuado para la precisión cuádruple en su compilador.

No todos los compiladores admiten precisión cuádruple en todas las arquitecturas.Puede comprobarlo imprimiendo los siguientes valores:

selected_real_kind (14)
selected_real_kind (17)
selected_real_kind (32)

El primero solicita doble precisión, el siguiente una precisión intermedia (10 bytes) que a veces está disponible en los procesadores Intel, y el último cuádruple.Si el compilador no admite el número solicitado de dígitos decimales, el selected_real_kind la función regresará -1.

Otros consejos

Puedo confirmar su problema en mi sistema con G95 4.0.3.

de acuerdo con este hilo http://coding.derkeiler.com/archive/ortez/comp.lang.orte/2009-02/msg00668.html Las funciones intrínsecas aún no se implementan para la precisión cuádruple.Por lo tanto, tiene que cambiar el compilador, o usar solo precisión.

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