181 SUBROUTINE ssytrf( UPLO, N, A, LDA, IPIV, WORK, LWORK, INFO )
189 INTEGER INFO, LDA, LWORK, N
193 REAL A( LDA, * ), WORK( * )
200INTEGER IINFO, , 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,
'SSYTRF', uplo, n, -1, -1, -1 )
240 CALL xerbla(
'SSYTRF', -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, '
ssytrf', UPLO, N, -1, -1, -1 ) )
281 CALL SLASYF( UPLO, K, NB, KB, A, LDA, IPIV, WORK, LDWORK,
287 CALL SSYTF2( UPLO, K, A, LDA, IPIV, IINFO )
293.EQ..AND..GT.
IF( INFO0 IINFO0 )
322 CALL SLASYF( UPLO, N-K+1, NB, KB, A( K, K ), LDA, IPIV( K ),
323 $ WORK, LDWORK, IINFO )
328 CALL SSYTF2( UPLO, N-K+1, A( K, K ), LDA, IPIV( K ), IINFO )
334.EQ..AND..GT.
IF( INFO0 IINFO0 )
335 $ INFO = IINFO + K - 1
339 DO 30 J = K, K + KB - 1
340.GT.
IF( IPIV( J )0 ) THEN
341 IPIV( J ) = IPIV( J ) + K - 1
343 IPIV( J ) = IPIV( J ) - K + 1
subroutine xerbla(srname, info)
XERBLA
subroutine ssytrf(uplo, n, a, lda, ipiv, work, lwork, info)
SSYTRF
subroutine ssytf2(uplo, n, a, lda, ipiv, info)
SSYTF2 computes the factorization of a real symmetric indefinite matrix, using the diagonal pivoting ...
subroutine slasyf(uplo, n, nb, kb, a, lda, ipiv, w, ldw, info)
SLASYF computes a partial factorization of a real symmetric matrix using the Bunch-Kaufman diagonal p...