Lapack: [Версия 3.9.0] Бесконечный цикл в slasq3

Созданный на 21 янв. 2020  ·  7Комментарии  ·  Источник: Reference-LAPACK/lapack

Когда входные параметры для "slasq3" выполняются следующим образом:
i0 = 3, n0 = 16, pp = 1, desig = 0.2f, qmax = 0.2f, nfail = 4, iter = 1, ndiv = 2, ieee = 0, ttype = -1
эта функция попадает в бесконечный цикл между строками кода 332 ~ 362.
100% воспроизводить.

Самый полезный комментарий

У вас есть для этого полный воспроизводитель, в частности, со значениями, содержащимися в массиве z ? Я не могу воспроизвести проблему с предоставленными вами данными и случайным z, и я предполагаю, что плохие вещи произойдут, даже если любой из элементов массива является NaN.

Все 7 Комментарий

Как вы думаете, это работало в более ранних версиях? AFAIK ни одна из функций slasq не была изменена, по крайней мере, с версии 3.7.0. Судя по вашему описанию, это зацикливание, поскольку TAU никогда не становится достаточно маленьким?

Как вы думаете, это работало в более ранних версиях? AFAIK ни одна из функций slasq не была изменена, по крайней мере, с версии 3.7.0. Судя по вашему описанию, это зацикливание, поскольку TAU никогда не становится достаточно маленьким?

Извините, я пока проверял только на 3.9.0, так как это единственная доступная версия.

У вас есть для этого полный воспроизводитель, в частности, со значениями, содержащимися в массиве z ? Я не могу воспроизвести проблему с предоставленными вами данными и случайным z, и я предполагаю, что плохие вещи произойдут, даже если любой из элементов массива является NaN.

если dmin - это nan, ему следует установить какое-то допустимое ошибочное значение; предотвратила бы бесконечность.

Я тоже думал об этом, но если я прав относительно правил сравнения с NaN, это, вероятно, не проблема.

Нет бесконечного цикла с использованием 4b3c7c249f6a2cfed76603d9987cf5164fa6f9e1 для построения кода:

      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

На основании сообщения @weslleyspereira , давайте тогда закроем эту проблему.
@ Peter9606 благодарим за сообщение о проблеме. Если проблема не
Жюльен.

Была ли эта страница полезной?
0 / 5 - 0 рейтинги