Merge pull request #3211 from martin-frbg/lapack471

Handle norm NaN value in xGESDD (Reference LAPACK PR471)
This commit is contained in:
Martin Kroeker 2021-05-02 18:44:29 +02:00 committed by GitHub
commit b67a92c19f
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
4 changed files with 24 additions and 8 deletions

View File

@ -281,9 +281,9 @@
$ CUNGQR, CUNMBR, SBDSDC, SLASCL, XERBLA
* ..
* .. External Functions ..
LOGICAL LSAME
LOGICAL LSAME, SISNAN
REAL SLAMCH, CLANGE
EXTERNAL LSAME, SLAMCH, CLANGE
EXTERNAL LSAME, SLAMCH, CLANGE, SISNAN
* ..
* .. Intrinsic Functions ..
INTRINSIC INT, MAX, MIN, SQRT
@ -647,6 +647,10 @@
* Scale A if max element outside range [SMLNUM,BIGNUM]
*
ANRM = CLANGE( 'M', M, N, A, LDA, DUM )
IF( SISNAN ( ANRM ) ) THEN
INFO = -4
RETURN
END IF
ISCL = 0
IF( ANRM.GT.ZERO .AND. ANRM.LT.SMLNUM ) THEN
ISCL = 1

View File

@ -267,9 +267,9 @@
$ XERBLA
* ..
* .. External Functions ..
LOGICAL LSAME
LOGICAL LSAME, DISNAN
DOUBLE PRECISION DLAMCH, DLANGE
EXTERNAL DLAMCH, DLANGE, LSAME
EXTERNAL DLAMCH, DLANGE, LSAME, DISNAN
* ..
* .. Intrinsic Functions ..
INTRINSIC INT, MAX, MIN, SQRT
@ -599,6 +599,10 @@
* Scale A if max element outside range [SMLNUM,BIGNUM]
*
ANRM = DLANGE( 'M', M, N, A, LDA, DUM )
IF( DISNAN( ANRM ) ) THEN
INFO = -4
RETURN
END IF
ISCL = 0
IF( ANRM.GT.ZERO .AND. ANRM.LT.SMLNUM ) THEN
ISCL = 1

View File

@ -267,9 +267,9 @@
$ XERBLA
* ..
* .. External Functions ..
LOGICAL LSAME
LOGICAL LSAME, SISNAN
REAL SLAMCH, SLANGE
EXTERNAL SLAMCH, SLANGE, LSAME
EXTERNAL SLAMCH, SLANGE, LSAME, SISNAN
* ..
* .. Intrinsic Functions ..
INTRINSIC INT, MAX, MIN, SQRT
@ -599,6 +599,10 @@
* Scale A if max element outside range [SMLNUM,BIGNUM]
*
ANRM = SLANGE( 'M', M, N, A, LDA, DUM )
IF( SISNAN( ANRM ) ) THEN
INFO = -4
RETURN
END IF
ISCL = 0
IF( ANRM.GT.ZERO .AND. ANRM.LT.SMLNUM ) THEN
ISCL = 1

View File

@ -281,9 +281,9 @@
$ ZLASET, ZUNGBR, ZUNGLQ, ZUNGQR, ZUNMBR
* ..
* .. External Functions ..
LOGICAL LSAME
LOGICAL LSAME, DISNAN
DOUBLE PRECISION DLAMCH, ZLANGE
EXTERNAL LSAME, DLAMCH, ZLANGE
EXTERNAL LSAME, DLAMCH, ZLANGE, DISNAN
* ..
* .. Intrinsic Functions ..
INTRINSIC INT, MAX, MIN, SQRT
@ -647,6 +647,10 @@
* Scale A if max element outside range [SMLNUM,BIGNUM]
*
ANRM = ZLANGE( 'M', M, N, A, LDA, DUM )
IF( DISNAN( ANRM ) ) THEN
INFO = -4
RETURN
END IF
ISCL = 0
IF( ANRM.GT.ZERO .AND. ANRM.LT.SMLNUM ) THEN
ISCL = 1