130 SUBROUTINE dsycon( UPLO, N, A, LDA, IPIV, ANORM, RCOND, WORK,
141 DOUBLE PRECISION ANORM, RCOND
144 INTEGER IPIV( * ), IWORK( * )
145 DOUBLE PRECISION A( lda, * ), WORK( * )
151 DOUBLE PRECISION ONE, ZERO
152 parameter ( one = 1.0d+0, zero = 0.0d+0 )
157 DOUBLE PRECISION AINVNM
177 upper = lsame( uplo,
'U' )
178 IF( .NOT.upper .AND. .NOT.lsame( uplo,
'L' ) )
THEN
180 ELSE IF( n.LT.0 )
THEN
182 ELSE IF( lda.LT.max( 1, n ) )
THEN
184 ELSE IF( anorm.LT.zero )
THEN
188 CALL xerbla(
'DSYCON', -info )
198 ELSE IF( anorm.LE.zero )
THEN
209 IF( ipiv( i ).GT.0 .AND. a( i, i ).EQ.zero )
217 IF( ipiv( i ).GT.0 .AND. a( i, i ).EQ.zero )
226 CALL dlacn2( n, work( n+1 ), work, iwork, ainvnm, kase, isave )
231 CALL dsytrs( uplo, n, 1, a, lda, ipiv, work, n, info )
238 $ rcond = ( one / ainvnm ) / anorm
subroutine dsycon(UPLO, N, A, LDA, IPIV, ANORM, RCOND, WORK, IWORK, INFO)
DSYCON
subroutine xerbla(SRNAME, INFO)
XERBLA
subroutine dsytrs(UPLO, N, NRHS, A, LDA, IPIV, B, LDB, INFO)
DSYTRS
subroutine dlacn2(N, V, X, ISGN, EST, KASE, ISAVE)
DLACN2 estimates the 1-norm of a square matrix, using reverse communication for evaluating matrix-vec...