137 $ capply, info, work, rwork )
146 INTEGER n, lda, ldaf, info
150 COMPLEX a( lda, * ), af( ldaf, * ), work( * )
151 REAL c ( * ), rwork( * )
158 REAL ainvnm, anorm, tmp
179 cabs1( zdum ) = abs( real( zdum ) ) + abs( aimag( zdum ) )
186 upper =
lsame( uplo,
'U' )
187 IF( .NOT.upper .AND. .NOT.
lsame( uplo,
'L' ) )
THEN
189 ELSE IF( n.LT.0 )
THEN
191 ELSE IF( lda.LT.
max( 1, n ) )
THEN
193 ELSE IF( ldaf.LT.
max( 1, n ) )
THEN
201 IF ( LSAME( UPLO, 'u
' ) ) UP = .TRUE.
211 TMP = TMP + CABS1( A( J, I ) ) / C( J )
214 TMP = TMP + CABS1( A( I, J ) ) / C( J )
218 TMP = TMP + CABS1( A( J, I ) )
221 TMP = TMP + CABS1( A( I, J ) )
225 ANORM = MAX( ANORM, TMP )
232 TMP = TMP + CABS1( A( I, J ) ) / C( J )
235 TMP = TMP + CABS1( A( J, I ) ) / C( J )
239 TMP = TMP + CABS1( A( I, J ) )
242 TMP = TMP + CABS1( A( J, I ) )
246 ANORM = MAX( ANORM, TMP )
253 CLA_HERCOND_C = 1.0E+0
255.EQ.
ELSE IF( ANORM 0.0E+0 ) THEN
265 CALL CLACN2( N, WORK( N+1 ), WORK, AINVNM, KASE, ISAVE )
272 WORK( I ) = WORK( I ) * RWORK( I )
276 CALL CHETRS( 'u
', N, 1, AF, LDAF, IPIV,
279 CALL CHETRS( 'l
', N, 1, AF, LDAF, IPIV,
287 WORK( I ) = WORK( I ) * C( I )
296 WORK( I ) = WORK( I ) * C( I )
301 CALL CHETRS( 'u
', N, 1, AF, LDAF, IPIV,
304 CALL CHETRS( 'l
', N, 1, AF, LDAF, IPIV,
311 WORK( I ) = WORK( I ) * RWORK( I )
319.NE.
IF( AINVNM 0.0E+0 )
320 $ CLA_HERCOND_C = 1.0E+0 / AINVNM
subroutine xerbla(srname, info)
XERBLA
logical function lsame(ca, cb)
LSAME
subroutine chetrs(uplo, n, nrhs, a, lda, ipiv, b, ldb, info)
CHETRS
real function cla_hercond_c(uplo, n, a, lda, af, ldaf, ipiv, c, capply, info, work, rwork)
CLA_HERCOND_C computes the infinity norm condition number of op(A)*inv(diag(c)) for Hermitian indefin...
subroutine clacn2(n, v, x, est, kase, isave)
CLACN2 estimates the 1-norm of a square matrix, using reverse communication for evaluating matrix-vec...