181 SUBROUTINE csytrf( UPLO, N, A, LDA, IPIV, WORK, LWORK, INFO )
189 INTEGER INFO, LDA, LWORK, N
193 COMPLEX 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,
'CSYTRF', uplo, n, -1, -1, -1 )
240 CALL xerbla(
'CSYTRF', -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,
'CSYTRF', uplo, n, -1, -1, -1 ) )
281 CALL clasyf( uplo, k, nb, kb, a, lda, ipiv, work, n, iinfo )
286 CALL csytf2( uplo, k, a, lda, ipiv, iinfo )
292 IF( info.EQ.0 .AND. iinfo.GT.0 )
321 CALL clasyf( uplo, n-k+1, nb, kb, a( k, k ), lda, ipiv( k ),
327 CALL csytf2( 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 csytf2(UPLO, N, A, LDA, IPIV, INFO)
CSYTF2 computes the factorization of a real symmetric indefinite matrix, using the diagonal pivoting ...
subroutine xerbla(SRNAME, INFO)
XERBLA
subroutine csytrf(UPLO, N, A, LDA, IPIV, WORK, LWORK, INFO)
CSYTRF
subroutine clasyf(UPLO, N, NB, KB, A, LDA, IPIV, W, LDW, INFO)
CLASYF computes a partial factorization of a complex symmetric matrix using the Bunch-Kaufman diagona...