Lapack: [バージョン3.9.0] slasq3の無限ループ

作成日 2020年01月21日  ·  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少なくとも3.7.0以降、slasq関数は変更されていません。 あなたの説明から、TAUが十分に小さくなることは決してないので、それはループしていますか?

これは以前のバージョンで機能していたと思いますか? AFAIK少なくとも3.7.0以降、slasq関数は変更されていません。 あなたの説明から、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 評価