Check for NaN in ?GECON (Reference-LAPACK PR765)tags/v0.3.22^2
@@ -106,6 +106,7 @@ | |||||
*> INFO is INTEGER | *> INFO is INTEGER | ||||
*> = 0: successful exit | *> = 0: successful exit | ||||
*> < 0: if INFO = -i, the i-th argument had an illegal value | *> < 0: if INFO = -i, the i-th argument had an illegal value | ||||
*> =-5: if ANORM is NAN or negative. | |||||
*> \endverbatim | *> \endverbatim | ||||
* | * | ||||
* Authors: | * Authors: | ||||
@@ -153,10 +154,10 @@ | |||||
INTEGER ISAVE( 3 ) | INTEGER ISAVE( 3 ) | ||||
* .. | * .. | ||||
* .. External Functions .. | * .. External Functions .. | ||||
LOGICAL LSAME | |||||
LOGICAL LSAME, SISNAN | |||||
INTEGER ICAMAX | INTEGER ICAMAX | ||||
REAL SLAMCH | REAL SLAMCH | ||||
EXTERNAL LSAME, ICAMAX, SLAMCH | |||||
EXTERNAL LSAME, ICAMAX, SLAMCH, SISNAN | |||||
* .. | * .. | ||||
* .. External Subroutines .. | * .. External Subroutines .. | ||||
EXTERNAL CLACN2, CLATRS, CSRSCL, XERBLA | EXTERNAL CLACN2, CLATRS, CSRSCL, XERBLA | ||||
@@ -182,7 +183,7 @@ | |||||
INFO = -2 | INFO = -2 | ||||
ELSE IF( LDA.LT.MAX( 1, N ) ) THEN | ELSE IF( LDA.LT.MAX( 1, N ) ) THEN | ||||
INFO = -4 | INFO = -4 | ||||
ELSE IF( ANORM.LT.ZERO ) THEN | |||||
ELSE IF( ANORM.LT.ZERO .OR. SISNAN( ANORM ) ) THEN | |||||
INFO = -5 | INFO = -5 | ||||
END IF | END IF | ||||
IF( INFO.NE.0 ) THEN | IF( INFO.NE.0 ) THEN | ||||
@@ -106,6 +106,7 @@ | |||||
*> INFO is INTEGER | *> INFO is INTEGER | ||||
*> = 0: successful exit | *> = 0: successful exit | ||||
*> < 0: if INFO = -i, the i-th argument had an illegal value | *> < 0: if INFO = -i, the i-th argument had an illegal value | ||||
*> =-5: if ANORM is NAN or negative. | |||||
*> \endverbatim | *> \endverbatim | ||||
* | * | ||||
* Authors: | * Authors: | ||||
@@ -152,10 +153,10 @@ | |||||
INTEGER ISAVE( 3 ) | INTEGER ISAVE( 3 ) | ||||
* .. | * .. | ||||
* .. External Functions .. | * .. External Functions .. | ||||
LOGICAL LSAME | |||||
LOGICAL LSAME, DISNAN | |||||
INTEGER IDAMAX | INTEGER IDAMAX | ||||
DOUBLE PRECISION DLAMCH | DOUBLE PRECISION DLAMCH | ||||
EXTERNAL LSAME, IDAMAX, DLAMCH | |||||
EXTERNAL LSAME, IDAMAX, DLAMCH, DISNAN | |||||
* .. | * .. | ||||
* .. External Subroutines .. | * .. External Subroutines .. | ||||
EXTERNAL DLACN2, DLATRS, DRSCL, XERBLA | EXTERNAL DLACN2, DLATRS, DRSCL, XERBLA | ||||
@@ -175,7 +176,7 @@ | |||||
INFO = -2 | INFO = -2 | ||||
ELSE IF( LDA.LT.MAX( 1, N ) ) THEN | ELSE IF( LDA.LT.MAX( 1, N ) ) THEN | ||||
INFO = -4 | INFO = -4 | ||||
ELSE IF( ANORM.LT.ZERO ) THEN | |||||
ELSE IF( ANORM.LT.ZERO .OR. DISNAN( ANORM ) ) THEN | |||||
INFO = -5 | INFO = -5 | ||||
END IF | END IF | ||||
IF( INFO.NE.0 ) THEN | IF( INFO.NE.0 ) THEN | ||||
@@ -106,6 +106,7 @@ | |||||
*> INFO is INTEGER | *> INFO is INTEGER | ||||
*> = 0: successful exit | *> = 0: successful exit | ||||
*> < 0: if INFO = -i, the i-th argument had an illegal value | *> < 0: if INFO = -i, the i-th argument had an illegal value | ||||
*> =-5: if ANORM is NAN or negative. | |||||
*> \endverbatim | *> \endverbatim | ||||
* | * | ||||
* Authors: | * Authors: | ||||
@@ -152,10 +153,10 @@ | |||||
INTEGER ISAVE( 3 ) | INTEGER ISAVE( 3 ) | ||||
* .. | * .. | ||||
* .. External Functions .. | * .. External Functions .. | ||||
LOGICAL LSAME | |||||
LOGICAL LSAME, SISNAN | |||||
INTEGER ISAMAX | INTEGER ISAMAX | ||||
REAL SLAMCH | REAL SLAMCH | ||||
EXTERNAL LSAME, ISAMAX, SLAMCH | |||||
EXTERNAL LSAME, ISAMAX, SLAMCH, SISNAN | |||||
* .. | * .. | ||||
* .. External Subroutines .. | * .. External Subroutines .. | ||||
EXTERNAL SLACN2, SLATRS, SRSCL, XERBLA | EXTERNAL SLACN2, SLATRS, SRSCL, XERBLA | ||||
@@ -175,7 +176,7 @@ | |||||
INFO = -2 | INFO = -2 | ||||
ELSE IF( LDA.LT.MAX( 1, N ) ) THEN | ELSE IF( LDA.LT.MAX( 1, N ) ) THEN | ||||
INFO = -4 | INFO = -4 | ||||
ELSE IF( ANORM.LT.ZERO ) THEN | |||||
ELSE IF( ANORM.LT.ZERO .OR. SISNAN( ANORM ) ) THEN | |||||
INFO = -5 | INFO = -5 | ||||
END IF | END IF | ||||
IF( INFO.NE.0 ) THEN | IF( INFO.NE.0 ) THEN | ||||
@@ -106,6 +106,7 @@ | |||||
*> INFO is INTEGER | *> INFO is INTEGER | ||||
*> = 0: successful exit | *> = 0: successful exit | ||||
*> < 0: if INFO = -i, the i-th argument had an illegal value | *> < 0: if INFO = -i, the i-th argument had an illegal value | ||||
*> =-5: if ANORM is NAN or negative. | |||||
*> \endverbatim | *> \endverbatim | ||||
* | * | ||||
* Authors: | * Authors: | ||||
@@ -153,10 +154,10 @@ | |||||
INTEGER ISAVE( 3 ) | INTEGER ISAVE( 3 ) | ||||
* .. | * .. | ||||
* .. External Functions .. | * .. External Functions .. | ||||
LOGICAL LSAME | |||||
LOGICAL LSAME, DISNAN | |||||
INTEGER IZAMAX | INTEGER IZAMAX | ||||
DOUBLE PRECISION DLAMCH | DOUBLE PRECISION DLAMCH | ||||
EXTERNAL LSAME, IZAMAX, DLAMCH | |||||
EXTERNAL LSAME, IZAMAX, DLAMCH, DISNAN | |||||
* .. | * .. | ||||
* .. External Subroutines .. | * .. External Subroutines .. | ||||
EXTERNAL XERBLA, ZDRSCL, ZLACN2, ZLATRS | EXTERNAL XERBLA, ZDRSCL, ZLACN2, ZLATRS | ||||
@@ -182,7 +183,7 @@ | |||||
INFO = -2 | INFO = -2 | ||||
ELSE IF( LDA.LT.MAX( 1, N ) ) THEN | ELSE IF( LDA.LT.MAX( 1, N ) ) THEN | ||||
INFO = -4 | INFO = -4 | ||||
ELSE IF( ANORM.LT.ZERO ) THEN | |||||
ELSE IF( ANORM.LT.ZERO .OR. DISNAN( ANORM ) ) THEN | |||||
INFO = -5 | INFO = -5 | ||||
END IF | END IF | ||||
IF( INFO.NE.0 ) THEN | IF( INFO.NE.0 ) THEN | ||||