Lapack: [Versión 3.9.0] Bucle infinito en slasq3

Creado en 21 ene. 2020  ·  7Comentarios  ·  Fuente: Reference-LAPACK/lapack

Cuando los parámetros de entrada a "slasq3" siguen el siguiente patrón:
i0 = 3, n0 = 16, pp = 1, desig = 0.2f, qmax = 0.2f, nfail = 4, iter = 1, ndiv = 2, ieee = 0, ttype = -1
esta función cae en la línea de código intermedio de bucle infinito 332 ~ 362.
Reproducir al 100%.

Comentario más útil

¿Tendría un reproductor completo para esto, en particular con los valores contenidos en la matriz z ? No puedo reproducir el problema con los datos que proporcionó y una z aleatoria, e imagino que sucederán cosas malas, incluso cuando alguno de los elementos de la matriz sea un NaN.

Todos 7 comentarios

¿Crees que esto solía funcionar en versiones anteriores? AFAIK, ninguna de las funciones de slasq se modificó desde al menos 3.7.0. Según su descripción, ¿es un bucle ya que TAU nunca se vuelve lo suficientemente pequeño?

¿Crees que esto solía funcionar en versiones anteriores? AFAIK, ninguna de las funciones de slasq se modificó desde al menos 3.7.0. Según su descripción, ¿es un bucle ya que TAU nunca se vuelve lo suficientemente pequeño?

Lo siento, solo verifiqué en 3.9.0 hasta ahora porque esta es la única versión disponible.

¿Tendría un reproductor completo para esto, en particular con los valores contenidos en la matriz z ? No puedo reproducir el problema con los datos que proporcionó y una z aleatoria, e imagino que sucederán cosas malas, incluso cuando alguno de los elementos de la matriz sea un NaN.

si dmin es nan, debería establecerse en algún valor legítimo erróneo; evitaría el infinito.

También pensé en esto, pero si estoy en lo cierto acerca de las reglas para comparar con NaN, probablemente este no sea el problema.

No hay bucle infinito usando 4b3c7c249f6a2cfed76603d9987cf5164fa6f9e1 para construir el código:

      PROGRAM testSLASQ3
      IMPLICIT NONE

*     .. Scalar Arguments ..
      LOGICAL            IEEE
      INTEGER            I0, ITER, N0, NDIV, NFAIL, PP, TTYPE
      REAL               DESIG, DMIN, DMIN1, DMIN2, DN, DN1, DN2, G,
     &                   QMAX, SIGMA, TAU
*     .. Array Arguments ..
      REAL               Z( 64 )
*     .. Subroutines ..
      EXTERNAL           SLASQ3

      PARAMETER ( IEEE=.FALSE. )
      PARAMETER ( I0 = 3 )
      PARAMETER ( QMAX = 1.0 )

      ITER=1
      N0=16
      NDIV=2
      NFAIL=4
      PP=1
      TTYPE=-1
      DESIG=0.2
      DMIN1=0.1
      DMIN2=0.1
      DN=1.0
      DN1=1.0
      DN2=1.0
      G=1.0
      TAU=1.0

      Z = (/0.1,0.2,0.3,0.4,0.5,0.6,0.7,0.8,0.9,1.0,
     &      0.1,0.2,0.3,0.4,0.5,0.6,
     &      0.1,0.2,0.3,0.4,0.5,0.6,0.7,0.8,0.9,1.0,
     &      0.1,0.2,0.3,0.4,0.5,0.6,
     &      0.1,0.2,0.3,0.4,0.5,0.6,0.7,0.8,0.9,1.0,
     &      0.1,0.2,0.3,0.4,0.5,0.6,
     &      0.1,0.2,0.3,0.4,0.5,0.6,0.7,0.8,0.9,1.0,
     &      0.1,0.2,0.3,0.4,0.5,0.6/)

      CALL SLASQ3( I0, N0, Z, PP, DMIN, SIGMA, DESIG, QMAX, NFAIL,
     &                   ITER, NDIV, IEEE, TTYPE, DMIN1, DMIN2, DN, DN1,
     &                   DN2, G, TAU )

      END PROGRAM testSLASQ3

Basándonos en la publicación de cerremos este problema entonces.
@ Peter9606 gracias por informar del problema, si el problema vuelve, por favor regrese con nosotros.
Julien.

¿Fue útil esta página
0 / 5 - 0 calificaciones

Temas relacionados

h-vetinari picture h-vetinari  ·  8Comentarios

nboelter picture nboelter  ·  3Comentarios

Dichloromethane picture Dichloromethane  ·  11Comentarios

christoph-conrads picture christoph-conrads  ·  26Comentarios

JHenneberg picture JHenneberg  ·  10Comentarios