181 SUBROUTINE zsytrf( UPLO, N, A, LDA, IPIV, WORK, LWORK, INFO )
189 INTEGER INFO, LDA, , N
193 COMPLEX*16 A( LDA, * ), WORK( * )
199 LOGICAL LQUERY, UPPER
200 INTEGER IINFO, IWS, J, K, KB, LDWORK, LWKOPT, NB, NBMIN
205 EXTERNAL lsame, ilaenv
218 upper = lsame( uplo,
'U' )
219 lquery = ( lwork.EQ.-1 )
220 IF( .NOT.upper .AND. .NOT.lsame( uplo,
'L' ) )
THEN
222 ELSE IF( n.LT.0 )
THEN
224 ELSE IF( lda.LT.
max( 1, n ) )
THEN
226 ELSE IF( lwork.LT.1 .AND. .NOT.lquery )
THEN
234 nb = ilaenv( 1,
'ZSYTRF', uplo, n, -1, -1, -1 )
240 CALL xerbla(
'ZSYTRF', -info )
242 ELSE IF( lquery )
THEN
248 IF( nb.GT.1 .AND. nb.LT.n )
THEN
250 IF( lwork.LT.iws )
THEN
251 nb =
max( lwork / ldwork, 1 )
252 nbmin =
max( 2, ilaenv( 2,
'ZSYTRF', uplo, n, -1, -1, -1 ) )
281 CALL zlasyf( uplo, k, nb, kb, a, lda, ipiv, work, n, iinfo )
286 CALL zsytf2( uplo, k, a, lda, ipiv, iinfo )
292 IF( info.EQ.0 .AND. iinfo.GT.0 )
321 CALL zlasyf( uplo, n-k+1, nb, kb, a( k, k ), lda, ipiv( k ),
327 CALL zsytf2( uplo, n-k+1, a( k, k ), lda, ipiv( k ), iinfo )
333 IF( info.EQ.0 .AND. iinfo.GT.0 )
334 $ info = iinfo + k - 1
338 DO 30 j = k, k + kb - 1
339 IF( ipiv( j ).GT.0 )
THEN
340 ipiv( j ) = ipiv( j ) + k - 1
subroutine zsytrf(uplo, n, a, lda, ipiv, work, lwork, info)
ZSYTRF
subroutine zsytf2(uplo, n, a, lda, ipiv, info)
ZSYTF2 computes the factorization of a real symmetric indefinite matrix, using the diagonal pivoting ...
subroutine zlasyf(uplo, n, nb, kb, a, lda, ipiv, w, ldw, info)
ZLASYF computes a partial factorization of a complex symmetric matrix using the Bunch-Kaufman diagona...