213 SUBROUTINE zhetrf_rook( UPLO, N, A, LDA, IPIV, WORK, LWORK, INFO )
222 INTEGER INFO, LDA, LWORK, N
226 COMPLEX*16 A( lda, * ), WORK( * )
232 LOGICAL LQUERY, UPPER
233 INTEGER IINFO, IWS, J, K, KB, LDWORK, LWKOPT, NB, NBMIN
238 EXTERNAL lsame, ilaenv
251 upper = lsame( uplo,
'U' )
252 lquery = ( lwork.EQ.-1 )
253 IF( .NOT.upper .AND. .NOT.lsame( uplo,
'L' ) )
THEN
255 ELSE IF( n.LT.0 )
THEN
257 ELSE IF( lda.LT.max( 1, n ) )
THEN
259 ELSE IF( lwork.LT.1 .AND. .NOT.lquery )
THEN
267 nb = ilaenv( 1,
'ZHETRF_ROOK', uplo, n, -1, -1, -1 )
268 lwkopt = max( 1, n*nb )
273 CALL xerbla(
'ZHETRF_ROOK', -info )
275 ELSE IF( lquery )
THEN
281 IF( nb.GT.1 .AND. nb.LT.n )
THEN
283 IF( lwork.LT.iws )
THEN
284 nb = max( lwork / ldwork, 1 )
285 nbmin = max( 2, ilaenv( 2,
'ZHETRF_ROOK',
286 $ uplo, n, -1, -1, -1 ) )
316 $ ipiv, work, ldwork, iinfo )
327 IF( info.EQ.0 .AND. iinfo.GT.0 )
358 CALL zlahef_rook( uplo, n-k+1, nb, kb, a( k, k ), lda,
359 $ ipiv( k ), work, ldwork, iinfo )
364 CALL zhetf2_rook( uplo, n-k+1, a( k, k ), lda, ipiv( k ),
371 IF( info.EQ.0 .AND. iinfo.GT.0 )
372 $ info = iinfo + k - 1
376 DO 30 j = k, k + kb - 1
377 IF( ipiv( j ).GT.0 )
THEN
378 ipiv( j ) = ipiv( j ) + k - 1
380 ipiv( j ) = ipiv( j ) - k + 1
subroutine zhetrf_rook(UPLO, N, A, LDA, IPIV, WORK, LWORK, INFO)
ZHETRF_ROOK computes the factorization of a complex Hermitian indefinite matrix using the bounded Bun...
subroutine xerbla(SRNAME, INFO)
XERBLA
subroutine zlahef_rook(UPLO, N, NB, KB, A, LDA, IPIV, W, LDW, INFO)
subroutine zhetf2_rook(UPLO, N, A, LDA, IPIV, INFO)
ZHETF2_ROOK computes the factorization of a complex Hermitian indefinite matrix using the bounded Bun...