128 SUBROUTINE dsycon( UPLO, N, A, LDA, IPIV, ANORM, RCOND, WORK,
138 DOUBLE PRECISION ANORM, RCOND
141 INTEGER IPIV( * ), IWORK( * )
142 DOUBLE PRECISION A( LDA, * ), WORK( * )
148 DOUBLE PRECISION ONE, ZERO
149 parameter( one = 1.0d+0, zero = 0.0d+0 )
154 DOUBLE PRECISION AINVNM
174 upper = lsame( uplo,
'U' )
175 IF( .NOT.upper .AND. .NOT.lsame( uplo,
'L' ) )
THEN
177 ELSE IF( n.LT.0 )
THEN
179 ELSE IF( lda.LT.max( 1, n ) )
THEN
181 ELSE IF( anorm.LT.zero )
THEN
185 CALL xerbla(
'DSYCON', -info )
195 ELSE IF( anorm.LE.zero )
THEN
206 IF( ipiv( i ).GT.0 .AND. a( i, i ).EQ.zero )
214 IF( ipiv( i ).GT.0 .AND. a( i, i ).EQ.zero )
223 CALL dlacn2( n, work( n+1 ), work, iwork, ainvnm, kase, isave )
228 CALL dsytrs( uplo, n, 1, a, lda, ipiv, work, n, info )
235 $ rcond = ( one / ainvnm ) / anorm
subroutine xerbla(srname, info)
subroutine dsycon(uplo, n, a, lda, ipiv, anorm, rcond, work, iwork, info)
DSYCON
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...