211 SUBROUTINE chetrf_rook( UPLO, N, A, LDA, IPIV, WORK, LWORK, INFO )
219 INTEGER INFO, LDA, LWORK, N
223 COMPLEX A( LDA, * ), WORK( * )
229 LOGICAL LQUERY, UPPER
230 INTEGER IINFO, IWS, J, K, KB, LDWORK, LWKOPT, NB, NBMIN
236 EXTERNAL lsame, ilaenv, sroundup_lwork
249 upper = lsame( uplo,
'U' )
250 lquery = ( lwork.EQ.-1 )
251 IF( .NOT.upper .AND. .NOT.lsame( uplo,
'L' ) )
THEN
253 ELSE IF( n.LT.0 )
THEN
255 ELSE IF( lda.LT.max( 1, n ) )
THEN
257 ELSE IF( lwork.LT.1 .AND. .NOT.lquery )
THEN
265 nb = ilaenv( 1,
'CHETRF_ROOK', uplo, n, -1, -1, -1 )
266 lwkopt = max( 1, n*nb )
267 work( 1 ) = sroundup_lwork(lwkopt)
271 CALL xerbla(
'CHETRF_ROOK', -info )
273 ELSE IF( lquery )
THEN
279 IF( nb.GT.1 .AND. nb.LT.n )
THEN
281 IF( lwork.LT.iws )
THEN
282 nb = max( lwork / ldwork, 1 )
283 nbmin = max( 2, ilaenv( 2,
'CHETRF_ROOK',
284 $ uplo, n, -1, -1, -1 ) )
314 $ ipiv, work, ldwork, iinfo )
325 IF( info.EQ.0 .AND. iinfo.GT.0 )
356 CALL clahef_rook( uplo, n-k+1, nb, kb, a( k, k ), lda,
357 $ ipiv( k ), work, ldwork, iinfo )
362 CALL chetf2_rook( uplo, n-k+1, a( k, k ), lda, ipiv( k ),
369 IF( info.EQ.0 .AND. iinfo.GT.0 )
370 $ info = iinfo + k - 1
374 DO 30 j = k, k + kb - 1
375 IF( ipiv( j ).GT.0 )
THEN
376 ipiv( j ) = ipiv( j ) + k - 1
378 ipiv( j ) = ipiv( j ) - k + 1
390 work( 1 ) = sroundup_lwork(lwkopt)
subroutine xerbla(srname, info)
subroutine chetf2_rook(uplo, n, a, lda, ipiv, info)
CHETF2_ROOK computes the factorization of a complex Hermitian indefinite matrix using the bounded Bun...
subroutine chetrf_rook(uplo, n, a, lda, ipiv, work, lwork, info)
CHETRF_ROOK computes the factorization of a complex Hermitian indefinite matrix using the bounded Bun...
subroutine clahef_rook(uplo, n, nb, kb, a, lda, ipiv, w, ldw, info)
Download CLAHEF_ROOK + dependencies <a href="http://www.netlib.org/cgi-bin/netlibfiles....