ELSE IF( LDAF.LT.MAX( 1, N ) ) THEN
INFO = -8
ELSE IF( LDB.LT.MAX( 1, N ) ) THEN
- INFO = -11
+ INFO = -12
ELSE IF( LDX.LT.MAX( 1, N ) ) THEN
- INFO = -13
+ INFO = -14
END IF
IF( INFO.NE.0 ) THEN
CALL XERBLA( 'CHERFSX', -INFO )
IF ( RCOND_TMP .LT. ILLRCOND_THRESH ) THEN
ERR_BNDS_COMP( J, LA_LINRX_ERR_I ) = 1.0
ERR_BNDS_COMP( J, LA_LINRX_TRUST_I ) = 0.0
- IF ( PARAMS( LA_LINRX_CWISE_I ) .EQ. 1.0
+ IF ( .NOT. IGNORE_CWISE
$ .AND. INFO.LT.N + J ) INFO = N + J
ELSE IF ( ERR_BNDS_COMP( J, LA_LINRX_ERR_I )
$ .LT. ERR_LBND ) THEN
NOTRANS = LSAME( TRANS, 'N' )
IF ( .NOT. NOTRANS .AND. .NOT. LSAME( TRANS, 'T' ) .AND. .NOT.
$ LSAME( TRANS, 'C' ) ) THEN
+ INFO = -1
ELSE IF( N.LT.0 ) THEN
INFO = -2
+ ELSE IF( LDA.LT.MAX( 1, N ) ) THEN
+ INFO = -4
+ ELSE IF( LDAF.LT.MAX( 1, N ) ) THEN
+ INFO = -6
END IF
IF( INFO.NE.0 ) THEN
CALL XERBLA( 'CLA_GERCOND_C', -INFO )
INFO = -1
ELSE IF( N.LT.0 ) THEN
INFO = -2
+ ELSE IF( LDA.LT.MAX( 1, N ) ) THEN
+ INFO = -4
+ ELSE IF( LDAF.LT.MAX( 1, N ) ) THEN
+ INFO = -6
END IF
IF( INFO.NE.0 ) THEN
CALL XERBLA( 'CLA_GERCOND_X', -INFO )
* .. Local Scalars ..
INTEGER KASE, I, J
REAL AINVNM, ANORM, TMP
- LOGICAL UP
+ LOGICAL UP, UPPER
COMPLEX ZDUM
* ..
* .. Local Arrays ..
CLA_HERCOND_C = 0.0E+0
*
INFO = 0
- IF( N.LT.0 ) THEN
+ UPPER = LSAME( UPLO, 'U' )
+ IF( .NOT.UPPER .AND. .NOT.LSAME( UPLO, 'L' ) ) THEN
+ INFO = -1
+ ELSE IF( N.LT.0 ) THEN
INFO = -2
+ ELSE IF( LDA.LT.MAX( 1, N ) ) THEN
+ INFO = -4
+ ELSE IF( LDAF.LT.MAX( 1, N ) ) THEN
+ INFO = -6
END IF
IF( INFO.NE.0 ) THEN
CALL XERBLA( 'CLA_HERCOND_C', -INFO )
* .. Local Scalars ..
INTEGER KASE, I, J
REAL AINVNM, ANORM, TMP
- LOGICAL UP
+ LOGICAL UP, UPPER
COMPLEX ZDUM
* ..
* .. Local Arrays ..
CLA_HERCOND_X = 0.0E+0
*
INFO = 0
- IF( N.LT.0 ) THEN
+ UPPER = LSAME( UPLO, 'U' )
+ IF( .NOT.UPPER .AND. .NOT.LSAME( UPLO, 'L' ) ) THEN
+ INFO = -1
+ ELSE IF ( N.LT.0 ) THEN
INFO = -2
+ ELSE IF( LDA.LT.MAX( 1, N ) ) THEN
+ INFO = -4
+ ELSE IF( LDAF.LT.MAX( 1, N ) ) THEN
+ INFO = -6
END IF
IF( INFO.NE.0 ) THEN
CALL XERBLA( 'CLA_HERCOND_X', -INFO )
*> \verbatim
*> INFO is INTEGER
*> = 0: Successful exit.
-*> < 0: if INFO = -i, the ith argument to CHETRS had an illegal
+*> < 0: if INFO = -i, the ith argument to CLA_HERFSX_EXTENDED had an illegal
*> value
*> \endverbatim
*
$ DZRAT, PREVNORMDX, PREV_DZ_Z, DXRATMAX,
$ DZRATMAX, DX_X, DZ_Z, FINAL_DX_X, FINAL_DZ_Z,
$ EPS, HUGEVAL, INCR_THRESH
- LOGICAL INCR_PREC
+ LOGICAL INCR_PREC, UPPER
COMPLEX ZDUM
* ..
* .. Parameters ..
* ..
* .. Executable Statements ..
*
- IF (INFO.NE.0) RETURN
+ INFO = 0
+ UPPER = LSAME( UPLO, 'U' )
+ IF( .NOT.UPPER .AND. .NOT.LSAME( UPLO, 'L' ) ) THEN
+ INFO = -2
+ ELSE IF( N.LT.0 ) THEN
+ INFO = -3
+ ELSE IF( NRHS.LT.0 ) THEN
+ INFO = -4
+ ELSE IF( LDA.LT.MAX( 1, N ) ) THEN
+ INFO = -6
+ ELSE IF( LDAF.LT.MAX( 1, N ) ) THEN
+ INFO = -8
+ ELSE IF( LDB.LT.MAX( 1, N ) ) THEN
+ INFO = -13
+ ELSE IF( LDY.LT.MAX( 1, N ) ) THEN
+ INFO = -15
+ END IF
+ IF( INFO.NE.0 ) THEN
+ CALL XERBLA( 'CLA_HERFSX_EXTENDED', -INFO )
+ RETURN
+ END IF
EPS = SLAMCH( 'Epsilon' )
HUGEVAL = SLAMCH( 'Overflow' )
* Force HUGEVAL to Inf
INTEGER KASE
REAL AINVNM, ANORM, TMP
INTEGER I, J
- LOGICAL UP
+ LOGICAL UP, UPPER
COMPLEX ZDUM
* ..
* .. Local Arrays ..
CLA_PORCOND_C = 0.0E+0
*
INFO = 0
- IF( N.LT.0 ) THEN
+ UPPER = LSAME( UPLO, 'U' )
+ IF( .NOT.UPPER .AND. .NOT.LSAME( UPLO, 'L' ) ) THEN
+ INFO = -1
+ ELSE IF( N.LT.0 ) THEN
INFO = -2
+ ELSE IF( LDA.LT.MAX( 1, N ) ) THEN
+ INFO = -4
+ ELSE IF( LDAF.LT.MAX( 1, N ) ) THEN
+ INFO = -6
END IF
IF( INFO.NE.0 ) THEN
CALL XERBLA( 'CLA_PORCOND_C', -INFO )
* .. Local Scalars ..
INTEGER KASE, I, J
REAL AINVNM, ANORM, TMP
- LOGICAL UP
+ LOGICAL UP, UPPER
COMPLEX ZDUM
* ..
* .. Local Arrays ..
CLA_PORCOND_X = 0.0E+0
*
INFO = 0
- IF( N.LT.0 ) THEN
+ UPPER = LSAME( UPLO, 'U' )
+ IF( .NOT.UPPER .AND. .NOT.LSAME( UPLO, 'L' ) ) THEN
+ INFO = -1
+ ELSE IF ( N.LT.0 ) THEN
INFO = -2
+ ELSE IF( LDA.LT.MAX( 1, N ) ) THEN
+ INFO = -4
+ ELSE IF( LDAF.LT.MAX( 1, N ) ) THEN
+ INFO = -6
END IF
IF( INFO.NE.0 ) THEN
CALL XERBLA( 'CLA_PORCOND_X', -INFO )
INTEGER KASE
REAL AINVNM, ANORM, TMP
INTEGER I, J
- LOGICAL UP
+ LOGICAL UP, UPPER
COMPLEX ZDUM
* ..
* .. Local Arrays ..
CLA_SYRCOND_C = 0.0E+0
*
INFO = 0
- IF( N.LT.0 ) THEN
+ UPPER = LSAME( UPLO, 'U' )
+ IF( .NOT.UPPER .AND. .NOT.LSAME( UPLO, 'L' ) ) THEN
+ INFO = -1
+ ELSE IF( N.LT.0 ) THEN
INFO = -2
+ ELSE IF( LDA.LT.MAX( 1, N ) ) THEN
+ INFO = -4
+ ELSE IF( LDAF.LT.MAX( 1, N ) ) THEN
+ INFO = -6
END IF
IF( INFO.NE.0 ) THEN
CALL XERBLA( 'CLA_SYRCOND_C', -INFO )
INTEGER KASE
REAL AINVNM, ANORM, TMP
INTEGER I, J
- LOGICAL UP
+ LOGICAL UP, UPPER
COMPLEX ZDUM
* ..
* .. Local Arrays ..
CLA_SYRCOND_X = 0.0E+0
*
INFO = 0
- IF( N.LT.0 ) THEN
+ UPPER = LSAME( UPLO, 'U' )
+ IF( .NOT.UPPER .AND. .NOT.LSAME( UPLO, 'L' ) ) THEN
+ INFO = -1
+ ELSE IF ( N.LT.0 ) THEN
INFO = -2
+ ELSE IF( LDA.LT.MAX( 1, N ) ) THEN
+ INFO = -4
+ ELSE IF( LDAF.LT.MAX( 1, N ) ) THEN
+ INFO = -6
END IF
IF( INFO.NE.0 ) THEN
CALL XERBLA( 'CLA_SYRCOND_X', -INFO )
*> \verbatim
*> INFO is INTEGER
*> = 0: Successful exit.
-*> < 0: if INFO = -i, the ith argument to CSYTRS had an illegal
+*> < 0: if INFO = -i, the ith argument to CLA_SYRFSX_EXTENDED had an illegal
*> value
*> \endverbatim
*
$ DZRAT, PREVNORMDX, PREV_DZ_Z, DXRATMAX,
$ DZRATMAX, DX_X, DZ_Z, FINAL_DX_X, FINAL_DZ_Z,
$ EPS, HUGEVAL, INCR_THRESH
- LOGICAL INCR_PREC
+ LOGICAL INCR_PREC, UPPER
COMPLEX ZDUM
* ..
* .. Parameters ..
* ..
* .. Executable Statements ..
*
- IF ( INFO.NE.0 ) RETURN
+ INFO = 0
+ UPPER = LSAME( UPLO, 'U' )
+ IF( .NOT.UPPER .AND. .NOT.LSAME( UPLO, 'L' ) ) THEN
+ INFO = -2
+ ELSE IF( N.LT.0 ) THEN
+ INFO = -3
+ ELSE IF( NRHS.LT.0 ) THEN
+ INFO = -4
+ ELSE IF( LDA.LT.MAX( 1, N ) ) THEN
+ INFO = -6
+ ELSE IF( LDAF.LT.MAX( 1, N ) ) THEN
+ INFO = -8
+ ELSE IF( LDB.LT.MAX( 1, N ) ) THEN
+ INFO = -13
+ ELSE IF( LDY.LT.MAX( 1, N ) ) THEN
+ INFO = -15
+ END IF
+ IF( INFO.NE.0 ) THEN
+ CALL XERBLA( 'CLA_SYRFSX_EXTENDED', -INFO )
+ RETURN
+ END IF
EPS = SLAMCH( 'Epsilon' )
HUGEVAL = SLAMCH( 'Overflow' )
* Force HUGEVAL to Inf
ELSE IF( LDAF.LT.MAX( 1, N ) ) THEN
INFO = -8
ELSE IF( LDB.LT.MAX( 1, N ) ) THEN
- INFO = -11
+ INFO = -12
ELSE IF( LDX.LT.MAX( 1, N ) ) THEN
- INFO = -13
+ INFO = -14
END IF
IF( INFO.NE.0 ) THEN
CALL XERBLA( 'CSYRFSX', -INFO )
IF ( RCOND_TMP .LT. ILLRCOND_THRESH ) THEN
ERR_BNDS_COMP( J, LA_LINRX_ERR_I ) = 1.0
ERR_BNDS_COMP( J, LA_LINRX_TRUST_I ) = 0.0
- IF ( PARAMS( LA_LINRX_CWISE_I ) .EQ. 1.0
+ IF ( .NOT. IGNORE_CWISE
$ .AND. INFO.LT.N + J ) INFO = N + J
ELSE IF ( ERR_BNDS_COMP( J, LA_LINRX_ERR_I )
$ .LT. ERR_LBND ) THEN
INFO = 0
IF( N.LT.0 ) THEN
INFO = -2
+ ELSE IF( LDA.LT.MAX( 1, N ) ) THEN
+ INFO = -4
+ ELSE IF( LDAF.LT.MAX( 1, N ) ) THEN
+ INFO = -6
END IF
IF( INFO.NE.0 ) THEN
CALL XERBLA( 'DLA_SYRCOND', -INFO )
*> \verbatim
*> INFO is INTEGER
*> = 0: Successful exit.
-*> < 0: if INFO = -i, the ith argument to DSYTRS had an illegal
+*> < 0: if INFO = -i, the ith argument to DLA_SYRFSX_EXTENDED had an illegal
*> value
*> \endverbatim
*
$ DZRAT, PREVNORMDX, PREV_DZ_Z, DXRATMAX,
$ DZRATMAX, DX_X, DZ_Z, FINAL_DX_X, FINAL_DZ_Z,
$ EPS, HUGEVAL, INCR_THRESH
- LOGICAL INCR_PREC
+ LOGICAL INCR_PREC, UPPER
* ..
* .. Parameters ..
INTEGER UNSTABLE_STATE, WORKING_STATE, CONV_STATE,
* ..
* .. Executable Statements ..
*
- IF ( INFO.NE.0 ) RETURN
+ INFO = 0
+ UPPER = LSAME( UPLO, 'U' )
+ IF( .NOT.UPPER .AND. .NOT.LSAME( UPLO, 'L' ) ) THEN
+ INFO = -2
+ ELSE IF( N.LT.0 ) THEN
+ INFO = -3
+ ELSE IF( NRHS.LT.0 ) THEN
+ INFO = -4
+ ELSE IF( LDA.LT.MAX( 1, N ) ) THEN
+ INFO = -6
+ ELSE IF( LDAF.LT.MAX( 1, N ) ) THEN
+ INFO = -8
+ ELSE IF( LDB.LT.MAX( 1, N ) ) THEN
+ INFO = -13
+ ELSE IF( LDY.LT.MAX( 1, N ) ) THEN
+ INFO = -15
+ END IF
+ IF( INFO.NE.0 ) THEN
+ CALL XERBLA( 'DLA_SYRFSX_EXTENDED', -INFO )
+ RETURN
+ END IF
EPS = DLAMCH( 'Epsilon' )
HUGEVAL = DLAMCH( 'Overflow' )
* Force HUGEVAL to Inf
ELSE IF( LDAF.LT.MAX( 1, N ) ) THEN
INFO = -8
ELSE IF( LDB.LT.MAX( 1, N ) ) THEN
- INFO = -11
+ INFO = -12
ELSE IF( LDX.LT.MAX( 1, N ) ) THEN
- INFO = -13
+ INFO = -14
END IF
IF( INFO.NE.0 ) THEN
CALL XERBLA( 'DSYRFSX', -INFO )
IF ( RCOND_TMP .LT. ILLRCOND_THRESH ) THEN
ERR_BNDS_COMP( J, LA_LINRX_ERR_I ) = 1.0D+0
ERR_BNDS_COMP( J, LA_LINRX_TRUST_I ) = 0.0D+0
- IF ( PARAMS( LA_LINRX_CWISE_I ) .EQ. 1.0D+0
+ IF ( .NOT. IGNORE_CWISE
$ .AND. INFO.LT.N + J ) INFO = N + J
ELSE IF ( ERR_BNDS_COMP( J, LA_LINRX_ERR_I )
$ .LT. ERR_LBND ) THEN
INFO = 0
IF( N.LT.0 ) THEN
INFO = -2
+ ELSE IF( LDA.LT.MAX( 1, N ) ) THEN
+ INFO = -4
+ ELSE IF( LDAF.LT.MAX( 1, N ) ) THEN
+ INFO = -6
END IF
IF( INFO.NE.0 ) THEN
CALL XERBLA( 'SLA_SYRCOND', -INFO )
*> \verbatim
*> INFO is INTEGER
*> = 0: Successful exit.
-*> < 0: if INFO = -i, the ith argument to SSYTRS had an illegal
+*> < 0: if INFO = -i, the ith argument to SLA_SYRFSX_EXTENDED had an illegal
*> value
*> \endverbatim
*
$ DZRAT, PREVNORMDX, PREV_DZ_Z, DXRATMAX,
$ DZRATMAX, DX_X, DZ_Z, FINAL_DX_X, FINAL_DZ_Z,
$ EPS, HUGEVAL, INCR_THRESH
- LOGICAL INCR_PREC
+ LOGICAL INCR_PREC, UPPER
* ..
* .. Parameters ..
INTEGER UNSTABLE_STATE, WORKING_STATE, CONV_STATE,
* ..
* .. Executable Statements ..
*
- IF ( INFO.NE.0 ) RETURN
+ INFO = 0
+ UPPER = LSAME( UPLO, 'U' )
+ IF( .NOT.UPPER .AND. .NOT.LSAME( UPLO, 'L' ) ) THEN
+ INFO = -2
+ ELSE IF( N.LT.0 ) THEN
+ INFO = -3
+ ELSE IF( NRHS.LT.0 ) THEN
+ INFO = -4
+ ELSE IF( LDA.LT.MAX( 1, N ) ) THEN
+ INFO = -6
+ ELSE IF( LDAF.LT.MAX( 1, N ) ) THEN
+ INFO = -8
+ ELSE IF( LDB.LT.MAX( 1, N ) ) THEN
+ INFO = -13
+ ELSE IF( LDY.LT.MAX( 1, N ) ) THEN
+ INFO = -15
+ END IF
+ IF( INFO.NE.0 ) THEN
+ CALL XERBLA( 'SLA_SYRFSX_EXTENDED', -INFO )
+ RETURN
+ END IF
EPS = SLAMCH( 'Epsilon' )
HUGEVAL = SLAMCH( 'Overflow' )
* Force HUGEVAL to Inf
ELSE IF( LDAF.LT.MAX( 1, N ) ) THEN
INFO = -8
ELSE IF( LDB.LT.MAX( 1, N ) ) THEN
- INFO = -11
+ INFO = -12
ELSE IF( LDX.LT.MAX( 1, N ) ) THEN
- INFO = -13
+ INFO = -14
END IF
IF( INFO.NE.0 ) THEN
CALL XERBLA( 'SSYRFSX', -INFO )
IF ( RCOND_TMP .LT. ILLRCOND_THRESH ) THEN
ERR_BNDS_COMP( J, LA_LINRX_ERR_I ) = 1.0
ERR_BNDS_COMP( J, LA_LINRX_TRUST_I ) = 0.0
- IF ( PARAMS( LA_LINRX_CWISE_I ) .EQ. 1.0
+ IF ( .NOT. IGNORE_CWISE
$ .AND. INFO.LT.N + J ) INFO = N + J
ELSE IF ( ERR_BNDS_COMP( J, LA_LINRX_ERR_I )
$ .LT. ERR_LBND ) THEN
* .. Local Scalars ..
CHARACTER(1) NORM
LOGICAL RCEQU
- INTEGER IINFO, J, PREC_TYPE, REF_TYPE
+ INTEGER J, PREC_TYPE, REF_TYPE
INTEGER N_NORMS
DOUBLE PRECISION ANORM, RCOND_TMP
DOUBLE PRECISION ILLRCOND_THRESH, ERR_LBND, CWISE_WRONG
ELSE IF( LDAF.LT.MAX( 1, N ) ) THEN
INFO = -8
ELSE IF( LDB.LT.MAX( 1, N ) ) THEN
- INFO = -11
+ INFO = -12
ELSE IF( LDX.LT.MAX( 1, N ) ) THEN
- INFO = -13
+ INFO = -14
END IF
IF( INFO.NE.0 ) THEN
CALL XERBLA( 'ZHERFSX', -INFO )
NORM = 'I'
ANORM = ZLANHE( NORM, UPLO, N, A, LDA, RWORK )
CALL ZHECON( UPLO, N, AF, LDAF, IPIV, ANORM, RCOND, WORK,
- $ IINFO )
+ $ INFO )
*
* Perform refinement on each right-hand side
*
$ WORK, RWORK, WORK(N+1),
$ TRANSFER (RWORK(1:2*N), (/ (ZERO, ZERO) /), N), RCOND,
$ ITHRESH, RTHRESH, UNSTABLE_THRESH, IGNORE_CWISE,
- $ IINFO )
+ $ INFO )
END IF
ERR_LBND = MAX( 10.0D+0, SQRT( DBLE( N ) ) ) * DLAMCH( 'Epsilon' )
*
IF ( RCEQU ) THEN
RCOND_TMP = ZLA_HERCOND_C( UPLO, N, A, LDA, AF, LDAF, IPIV,
- $ S, .TRUE., IINFO, WORK, RWORK )
+ $ S, .TRUE., INFO, WORK, RWORK )
ELSE
RCOND_TMP = ZLA_HERCOND_C( UPLO, N, A, LDA, AF, LDAF, IPIV,
- $ S, .FALSE., IINFO, WORK, RWORK )
+ $ S, .FALSE., INFO, WORK, RWORK )
END IF
DO J = 1, NRHS
*
IF ( ERR_BNDS_COMP( J, LA_LINRX_ERR_I ) .LT. CWISE_WRONG )
$ THEN
RCOND_TMP = ZLA_HERCOND_X( UPLO, N, A, LDA, AF, LDAF,
- $ IPIV, X( 1, J ), IINFO, WORK, RWORK )
+ $ IPIV, X( 1, J ), INFO, WORK, RWORK )
ELSE
RCOND_TMP = 0.0D+0
END IF
IF ( RCOND_TMP .LT. ILLRCOND_THRESH ) THEN
ERR_BNDS_COMP( J, LA_LINRX_ERR_I ) = 1.0D+0
ERR_BNDS_COMP( J, LA_LINRX_TRUST_I ) = 0.0D+0
- IF ( .NOT. IGNORE_CWISE
- $ .AND. INFO.LT.N + J ) INFO = N + J
+ IF ( .NOT. IGNORE_CWISE
+ $ .AND. INFO.LT.N + J ) INFO = N + J
ELSE IF ( ERR_BNDS_COMP( J, LA_LINRX_ERR_I )
$ .LT. ERR_LBND ) THEN
ERR_BNDS_COMP( J, LA_LINRX_ERR_I ) = ERR_LBND
NOTRANS = LSAME( TRANS, 'N' )
IF ( .NOT. NOTRANS .AND. .NOT. LSAME( TRANS, 'T' ) .AND. .NOT.
$ LSAME( TRANS, 'C' ) ) THEN
+ INFO = -1
ELSE IF( N.LT.0 ) THEN
INFO = -2
+ ELSE IF( LDA.LT.MAX( 1, N ) ) THEN
+ INFO = -4
+ ELSE IF( LDAF.LT.MAX( 1, N ) ) THEN
+ INFO = -6
END IF
IF( INFO.NE.0 ) THEN
CALL XERBLA( 'ZLA_GERCOND_C', -INFO )
INFO = -1
ELSE IF( N.LT.0 ) THEN
INFO = -2
+ ELSE IF( LDA.LT.MAX( 1, N ) ) THEN
+ INFO = -4
+ ELSE IF( LDAF.LT.MAX( 1, N ) ) THEN
+ INFO = -6
END IF
IF( INFO.NE.0 ) THEN
CALL XERBLA( 'ZLA_GERCOND_X', -INFO )
* .. Local Scalars ..
INTEGER KASE, I, J
DOUBLE PRECISION AINVNM, ANORM, TMP
- LOGICAL UP
+ LOGICAL UP, UPPER
COMPLEX*16 ZDUM
* ..
* .. Local Arrays ..
ZLA_HERCOND_C = 0.0D+0
*
INFO = 0
- IF( N.LT.0 ) THEN
+ UPPER = LSAME( UPLO, 'U' )
+ IF( .NOT.UPPER .AND. .NOT.LSAME( UPLO, 'L' ) ) THEN
+ INFO = -1
+ ELSE IF( N.LT.0 ) THEN
INFO = -2
+ ELSE IF( LDA.LT.MAX( 1, N ) ) THEN
+ INFO = -4
+ ELSE IF( LDAF.LT.MAX( 1, N ) ) THEN
+ INFO = -6
END IF
IF( INFO.NE.0 ) THEN
CALL XERBLA( 'ZLA_HERCOND_C', -INFO )
* .. Local Scalars ..
INTEGER KASE, I, J
DOUBLE PRECISION AINVNM, ANORM, TMP
- LOGICAL UP
+ LOGICAL UP, UPPER
COMPLEX*16 ZDUM
* ..
* .. Local Arrays ..
ZLA_HERCOND_X = 0.0D+0
*
INFO = 0
- IF( N.LT.0 ) THEN
+ UPPER = LSAME( UPLO, 'U' )
+ IF( .NOT.UPPER .AND. .NOT.LSAME( UPLO, 'L' ) ) THEN
+ INFO = -1
+ ELSE IF ( N.LT.0 ) THEN
INFO = -2
+ ELSE IF( LDA.LT.MAX( 1, N ) ) THEN
+ INFO = -4
+ ELSE IF( LDAF.LT.MAX( 1, N ) ) THEN
+ INFO = -6
END IF
IF( INFO.NE.0 ) THEN
CALL XERBLA( 'ZLA_HERCOND_X', -INFO )
*> \verbatim
*> INFO is INTEGER
*> = 0: Successful exit.
-*> < 0: if INFO = -i, the ith argument to ZHETRS had an illegal
+*> < 0: if INFO = -i, the ith argument to ZLA_HERFSX_EXTENDED had an illegal
*> value
*> \endverbatim
*
$ DZRAT, PREVNORMDX, PREV_DZ_Z, DXRATMAX,
$ DZRATMAX, DX_X, DZ_Z, FINAL_DX_X, FINAL_DZ_Z,
$ EPS, HUGEVAL, INCR_THRESH
- LOGICAL INCR_PREC
+ LOGICAL INCR_PREC, UPPER
COMPLEX*16 ZDUM
* ..
* .. Parameters ..
* ..
* .. Executable Statements ..
*
- IF (INFO.NE.0) RETURN
+ INFO = 0
+ UPPER = LSAME( UPLO, 'U' )
+ IF( .NOT.UPPER .AND. .NOT.LSAME( UPLO, 'L' ) ) THEN
+ INFO = -2
+ ELSE IF( N.LT.0 ) THEN
+ INFO = -3
+ ELSE IF( NRHS.LT.0 ) THEN
+ INFO = -4
+ ELSE IF( LDA.LT.MAX( 1, N ) ) THEN
+ INFO = -6
+ ELSE IF( LDAF.LT.MAX( 1, N ) ) THEN
+ INFO = -8
+ ELSE IF( LDB.LT.MAX( 1, N ) ) THEN
+ INFO = -13
+ ELSE IF( LDY.LT.MAX( 1, N ) ) THEN
+ INFO = -15
+ END IF
+ IF( INFO.NE.0 ) THEN
+ CALL XERBLA( 'ZLA_HERFSX_EXTENDED', -INFO )
+ RETURN
+ END IF
EPS = DLAMCH( 'Epsilon' )
HUGEVAL = DLAMCH( 'Overflow' )
* Force HUGEVAL to Inf
INTEGER KASE
DOUBLE PRECISION AINVNM, ANORM, TMP
INTEGER I, J
- LOGICAL UP
+ LOGICAL UP, UPPER
COMPLEX*16 ZDUM
* ..
* .. Local Arrays ..
ZLA_PORCOND_C = 0.0D+0
*
INFO = 0
- IF( N.LT.0 ) THEN
+ UPPER = LSAME( UPLO, 'U' )
+ IF( .NOT.UPPER .AND. .NOT.LSAME( UPLO, 'L' ) ) THEN
+ INFO = -1
+ ELSE IF( N.LT.0 ) THEN
INFO = -2
+ ELSE IF( LDA.LT.MAX( 1, N ) ) THEN
+ INFO = -4
+ ELSE IF( LDAF.LT.MAX( 1, N ) ) THEN
+ INFO = -6
END IF
IF( INFO.NE.0 ) THEN
CALL XERBLA( 'ZLA_PORCOND_C', -INFO )
* .. Local Scalars ..
INTEGER KASE, I, J
DOUBLE PRECISION AINVNM, ANORM, TMP
- LOGICAL UP
+ LOGICAL UP, UPPER
COMPLEX*16 ZDUM
* ..
* .. Local Arrays ..
ZLA_PORCOND_X = 0.0D+0
*
INFO = 0
- IF( N.LT.0 ) THEN
+ UPPER = LSAME( UPLO, 'U' )
+ IF( .NOT.UPPER .AND. .NOT.LSAME( UPLO, 'L' ) ) THEN
+ INFO = -1
+ ELSE IF ( N.LT.0 ) THEN
INFO = -2
+ ELSE IF( LDA.LT.MAX( 1, N ) ) THEN
+ INFO = -4
+ ELSE IF( LDAF.LT.MAX( 1, N ) ) THEN
+ INFO = -6
END IF
IF( INFO.NE.0 ) THEN
CALL XERBLA( 'ZLA_PORCOND_X', -INFO )
INTEGER KASE
DOUBLE PRECISION AINVNM, ANORM, TMP
INTEGER I, J
- LOGICAL UP
+ LOGICAL UP, UPPER
COMPLEX*16 ZDUM
* ..
* .. Local Arrays ..
ZLA_SYRCOND_C = 0.0D+0
*
INFO = 0
- IF( N.LT.0 ) THEN
+ UPPER = LSAME( UPLO, 'U' )
+ IF( .NOT.UPPER .AND. .NOT.LSAME( UPLO, 'L' ) ) THEN
+ INFO = -1
+ ELSE IF( N.LT.0 ) THEN
INFO = -2
+ ELSE IF( LDA.LT.MAX( 1, N ) ) THEN
+ INFO = -4
+ ELSE IF( LDAF.LT.MAX( 1, N ) ) THEN
+ INFO = -6
END IF
IF( INFO.NE.0 ) THEN
CALL XERBLA( 'ZLA_SYRCOND_C', -INFO )
INTEGER KASE
DOUBLE PRECISION AINVNM, ANORM, TMP
INTEGER I, J
- LOGICAL UP
+ LOGICAL UP, UPPER
COMPLEX*16 ZDUM
* ..
* .. Local Arrays ..
ZLA_SYRCOND_X = 0.0D+0
*
INFO = 0
- IF( N.LT.0 ) THEN
+ UPPER = LSAME( UPLO, 'U' )
+ IF( .NOT.UPPER .AND. .NOT.LSAME( UPLO, 'L' ) ) THEN
+ INFO = -1
+ ELSE IF( N.LT.0 ) THEN
INFO = -2
+ ELSE IF( LDA.LT.MAX( 1, N ) ) THEN
+ INFO = -4
+ ELSE IF( LDAF.LT.MAX( 1, N ) ) THEN
+ INFO = -6
END IF
IF( INFO.NE.0 ) THEN
CALL XERBLA( 'ZLA_SYRCOND_X', -INFO )
*> \verbatim
*> INFO is INTEGER
*> = 0: Successful exit.
-*> < 0: if INFO = -i, the ith argument to ZSYTRS had an illegal
+*> < 0: if INFO = -i, the ith argument to ZLA_HERFSX_EXTENDED had an illegal
*> value
*> \endverbatim
*
$ DZRAT, PREVNORMDX, PREV_DZ_Z, DXRATMAX,
$ DZRATMAX, DX_X, DZ_Z, FINAL_DX_X, FINAL_DZ_Z,
$ EPS, HUGEVAL, INCR_THRESH
- LOGICAL INCR_PREC
+ LOGICAL INCR_PREC, UPPER
COMPLEX*16 ZDUM
* ..
* .. Parameters ..
* ..
* .. Executable Statements ..
*
- IF ( INFO.NE.0 ) RETURN
+ INFO = 0
+ UPPER = LSAME( UPLO, 'U' )
+ IF( .NOT.UPPER .AND. .NOT.LSAME( UPLO, 'L' ) ) THEN
+ INFO = -2
+ ELSE IF( N.LT.0 ) THEN
+ INFO = -3
+ ELSE IF( NRHS.LT.0 ) THEN
+ INFO = -4
+ ELSE IF( LDA.LT.MAX( 1, N ) ) THEN
+ INFO = -6
+ ELSE IF( LDAF.LT.MAX( 1, N ) ) THEN
+ INFO = -8
+ ELSE IF( LDB.LT.MAX( 1, N ) ) THEN
+ INFO = -13
+ ELSE IF( LDY.LT.MAX( 1, N ) ) THEN
+ INFO = -15
+ END IF
+ IF( INFO.NE.0 ) THEN
+ CALL XERBLA( 'ZLA_HERFSX_EXTENDED', -INFO )
+ RETURN
+ END IF
EPS = DLAMCH( 'Epsilon' )
HUGEVAL = DLAMCH( 'Overflow' )
* Force HUGEVAL to Inf
ELSE IF( LDAF.LT.MAX( 1, N ) ) THEN
INFO = -8
ELSE IF( LDB.LT.MAX( 1, N ) ) THEN
- INFO = -11
+ INFO = -12
ELSE IF( LDX.LT.MAX( 1, N ) ) THEN
- INFO = -13
+ INFO = -14
END IF
IF( INFO.NE.0 ) THEN
CALL XERBLA( 'ZSYRFSX', -INFO )
IF ( RCOND_TMP .LT. ILLRCOND_THRESH ) THEN
ERR_BNDS_COMP( J, LA_LINRX_ERR_I ) = 1.0D+0
ERR_BNDS_COMP( J, LA_LINRX_TRUST_I ) = 0.0D+0
- IF ( PARAMS( LA_LINRX_CWISE_I ) .EQ. 1.0D+0
+ IF (.NOT. IGNORE_CWISE
$ .AND. INFO.LT.N + J ) INFO = N + J
ELSE IF ( ERR_BNDS_COMP( J, LA_LINRX_ERR_I )
$ .LT. ERR_LBND ) THEN
*
* Check the error code from CHESVXX.
*
- IF( INFO.NE.K ) THEN
+ IF( INFO.NE.K .AND. INFO.LE.N ) THEN
CALL ALAERH( PATH, 'CHESVXX', INFO, K,
$ FACT // UPLO, N, N, -1, -1, NRHS, IMAT, NFAIL,
$ NERRS, NOUT )
*
* Check the error code from CSYSVXX.
*
- IF( INFO.NE.K ) THEN
+ IF( INFO.NE.K .AND. INFO.LE.N ) THEN
CALL ALAERH( PATH, 'CSYSVXX', INFO, K,
$ FACT // UPLO, N, N, -1, -1, NRHS, IMAT, NFAIL,
$ NERRS, NOUT )
$ RCOND, BERR, N_ERR_BNDS, ERR_BNDS_N, ERR_BNDS_C, NPARAMS,
$ PARAMS, W, R, INFO )
CALL CHKXER( 'CHERFSX', INFOT, NOUT, LERR, OK )
- INFOT = 11
+ INFOT = 12
CALL CHERFSX( 'U', EQ, 2, 1, A, 2, AF, 2, IP, S, B, 1, X, 2,
$ RCOND, BERR, N_ERR_BNDS, ERR_BNDS_N, ERR_BNDS_C, NPARAMS,
$ PARAMS, W, R, INFO )
CALL CHKXER( 'CHERFSX', INFOT, NOUT, LERR, OK )
- INFOT = 13
+ INFOT = 14
CALL CHERFSX( 'U', EQ, 2, 1, A, 2, AF, 2, IP, S, B, 2, X, 1,
$ RCOND, BERR, N_ERR_BNDS, ERR_BNDS_N, ERR_BNDS_C, NPARAMS,
$ PARAMS, W, R, INFO )
$ RCOND, BERR, N_ERR_BNDS, ERR_BNDS_N, ERR_BNDS_C, NPARAMS,
$ PARAMS, W, R, INFO )
CALL CHKXER( 'CSYRFSX', INFOT, NOUT, LERR, OK )
- INFOT = 11
+ INFOT = 12
CALL CSYRFSX( 'U', EQ, 2, 1, A, 2, AF, 2, IP, S, B, 1, X, 2,
$ RCOND, BERR, N_ERR_BNDS, ERR_BNDS_N, ERR_BNDS_C, NPARAMS,
$ PARAMS, W, R, INFO )
CALL CHKXER( 'CSYRFSX', INFOT, NOUT, LERR, OK )
- INFOT = 13
+ INFOT = 14
CALL CSYRFSX( 'U', EQ, 2, 1, A, 2, AF, 2, IP, S, B, 2, X, 1,
$ RCOND, BERR, N_ERR_BNDS, ERR_BNDS_N, ERR_BNDS_C, NPARAMS,
$ PARAMS, W, R, INFO )
*
* Check the error code from DSYSVXX.
*
- IF( INFO.NE.K ) THEN
+ IF( INFO.NE.K .AND. INFO.LE.N ) THEN
CALL ALAERH( PATH, 'DSYSVXX', INFO, K,
$ FACT // UPLO, N, N, -1, -1, NRHS, IMAT, NFAIL,
$ NERRS, NOUT )
$ RCOND, BERR, N_ERR_BNDS, ERR_BNDS_N, ERR_BNDS_C, NPARAMS,
$ PARAMS, W, IW, INFO )
CALL CHKXER( 'DSYRFSX', INFOT, NOUT, LERR, OK )
- INFOT = 11
+ INFOT = 12
CALL DSYRFSX( 'U', EQ, 2, 1, A, 2, AF, 2, IP, S, B, 1, X, 2,
$ RCOND, BERR, N_ERR_BNDS, ERR_BNDS_N, ERR_BNDS_C, NPARAMS,
$ PARAMS, W, IW, INFO )
CALL CHKXER( 'DSYRFSX', INFOT, NOUT, LERR, OK )
- INFOT = 13
+ INFOT = 14
CALL DSYRFSX( 'U', EQ, 2, 1, A, 2, AF, 2, IP, S, B, 2, X, 1,
$ RCOND, BERR, N_ERR_BNDS, ERR_BNDS_N, ERR_BNDS_C, NPARAMS,
$ PARAMS, W, IW, INFO )
*
* Check the error code from SSYSVXX.
*
- IF( INFO.NE.K ) THEN
+ IF( INFO.NE.K .AND. INFO.LE.N ) THEN
CALL ALAERH( PATH, 'SSYSVXX', INFO, K,
$ FACT // UPLO, N, N, -1, -1, NRHS, IMAT, NFAIL,
$ NERRS, NOUT )
$ RCOND, BERR, N_ERR_BNDS, ERR_BNDS_N, ERR_BNDS_C, NPARAMS,
$ PARAMS, W, IW, INFO )
CALL CHKXER( 'SSYRFSX', INFOT, NOUT, LERR, OK )
- INFOT = 11
+ INFOT = 12
CALL SSYRFSX( 'U', EQ, 2, 1, A, 2, AF, 2, IP, S, B, 1, X, 2,
$ RCOND, BERR, N_ERR_BNDS, ERR_BNDS_N, ERR_BNDS_C, NPARAMS,
$ PARAMS, W, IW, INFO )
CALL CHKXER( 'SSYRFSX', INFOT, NOUT, LERR, OK )
- INFOT = 13
+ INFOT = 14
CALL SSYRFSX( 'U', EQ, 2, 1, A, 2, AF, 2, IP, S, B, 2, X, 1,
$ RCOND, BERR, N_ERR_BNDS, ERR_BNDS_N, ERR_BNDS_C, NPARAMS,
$ PARAMS, W, IW, INFO )
*
* Check the error code from ZSYSVXX.
*
- IF( INFO.NE.K ) THEN
+ IF( INFO.NE.K .AND. INFO.LE.N ) THEN
CALL ALAERH( PATH, 'ZSYSVXX', INFO, K,
$ FACT // UPLO, N, N, -1, -1, NRHS, IMAT, NFAIL,
$ NERRS, NOUT )
$ RCOND, BERR, N_ERR_BNDS, ERR_BNDS_N, ERR_BNDS_C, NPARAMS,
$ PARAMS, W, R, INFO )
CALL CHKXER( 'ZHERFSX', INFOT, NOUT, LERR, OK )
- INFOT = 11
+ INFOT = 12
CALL ZHERFSX( 'U', EQ, 2, 1, A, 2, AF, 2, IP, S, B, 1, X, 2,
$ RCOND, BERR, N_ERR_BNDS, ERR_BNDS_N, ERR_BNDS_C, NPARAMS,
$ PARAMS, W, R, INFO )
CALL CHKXER( 'ZHERFSX', INFOT, NOUT, LERR, OK )
- INFOT = 13
+ INFOT = 14
CALL ZHERFSX( 'U', EQ, 2, 1, A, 2, AF, 2, IP, S, B, 2, X, 1,
$ RCOND, BERR, N_ERR_BNDS, ERR_BNDS_N, ERR_BNDS_C, NPARAMS,
$ PARAMS, W, R, INFO )
$ RCOND, BERR, N_ERR_BNDS, ERR_BNDS_N, ERR_BNDS_C, NPARAMS,
$ PARAMS, W, R, INFO )
CALL CHKXER( 'ZSYRFSX', INFOT, NOUT, LERR, OK )
- INFOT = 11
+ INFOT = 12
CALL ZSYRFSX( 'U', EQ, 2, 1, A, 2, AF, 2, IP, S, B, 1, X, 2,
$ RCOND, BERR, N_ERR_BNDS, ERR_BNDS_N, ERR_BNDS_C, NPARAMS,
$ PARAMS, W, R, INFO )
CALL CHKXER( 'ZSYRFSX', INFOT, NOUT, LERR, OK )
- INFOT = 13
+ INFOT = 14
CALL ZSYRFSX( 'U', EQ, 2, 1, A, 2, AF, 2, IP, S, B, 2, X, 1,
$ RCOND, BERR, N_ERR_BNDS, ERR_BNDS_N, ERR_BNDS_C, NPARAMS,
$ PARAMS, W, R, INFO )