Lapack: [Version 3.9.0] Boucle infinie en slasq3

Créé le 21 janv. 2020  ·  7Commentaires  ·  Source: Reference-LAPACK/lapack

Lorsque les paramètres d'entrée dans "slasq3" suivent le modèle ci-dessous :
i0 =3, n0=16, pp=1,desig=0.2f, qmax=0.2f, nfail=4,iter=1, ndiv = 2, ieee = 0, ttype = -1
cette fonction tombe dans une boucle infinie entre les lignes de code 332 ~ 362.
100% reproduire.

Commentaire le plus utile

Auriez-vous un reproducteur complet pour cela, notamment avec les valeurs contenues dans le tableau z ? Je ne peux pas reproduire le problème avec les données que vous avez fournies et un z aléatoire, et j'imagine que de mauvaises choses se passeront même si l'un des éléments du tableau est un NaN.

Tous les 7 commentaires

Pensez-vous que cela fonctionnait dans les versions précédentes ? AFAIK aucune des fonctions slasq n'a été modifiée depuis au moins 3.7.0. D'après votre description, c'est en boucle car TAU n'est jamais assez petit ?

Pensez-vous que cela fonctionnait dans les versions précédentes ? AFAIK aucune des fonctions slasq n'a été modifiée depuis au moins 3.7.0. D'après votre description, c'est en boucle car TAU n'est jamais assez petit ?

Désolé, je n'ai vérifié que sur 3.9.0 jusqu'à présent car c'est la seule version disponible.

Auriez-vous un reproducteur complet pour cela, notamment avec les valeurs contenues dans le tableau z ? Je ne peux pas reproduire le problème avec les données que vous avez fournies et un z aléatoire, et j'imagine que de mauvaises choses se passeront même si l'un des éléments du tableau est un NaN.

si dmin est nan, il doit être défini sur une valeur erronée légitime ; empêcherait l'infini.

J'y ai également pensé, mais si j'ai raison sur les règles de comparaison avec NaN, ce n'est probablement pas le problème.

Pas de boucle infinie en utilisant 4b3c7c249f6a2cfed76603d9987cf5164fa6f9e1 pour construire le code :

      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

Sur la base du post de @weslleyspereira , fermons alors ce problème.
@ Peter9606 merci d'avoir signalé le problème, si le problème revient, revenez nous voir.
Julien.

Cette page vous a été utile?
0 / 5 - 0 notes