181 SUBROUTINE zsytrf( UPLO, N, A, LDA, IPIV, WORK, LWORK, INFO )
189 INTEGER INFO, LDA, LWORK, 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 )
235 lwkopt = max( 1, n*nb )
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
342 ipiv( j ) = ipiv( j ) - k + 1
subroutine xerbla(srname, info)
subroutine zsytf2(uplo, n, a, lda, ipiv, info)
ZSYTF2 computes the factorization of a real symmetric indefinite matrix, using the diagonal pivoting ...
subroutine zsytrf(uplo, n, a, lda, ipiv, work, lwork, info)
ZSYTRF
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...