191 SUBROUTINE ssytrd( UPLO, N, A, LDA, D, E, TAU, WORK, LWORK, INFO )
199 INTEGER INFO, LDA, LWORK, N
202 REAL A( LDA, * ), D( * ), E( * ), TAU( * ),
210 parameter( one = 1.0e+0 )
213 LOGICAL LQUERY, UPPER
214 INTEGER I, IINFO, IWS, J, KK, LDWORK, LWKOPT, NB,
226 EXTERNAL lsame, ilaenv
233 upper = lsame( uplo,
'U' )
234 lquery = ( lwork.EQ.-1 )
235 IF( .NOT.upper .AND. .NOT.lsame( uplo,
'L' ) )
THEN
237 ELSE IF( n.LT.0 )
THEN
239 ELSE IF( lda.LT.max( 1, n ) )
THEN
241 ELSE IF( lwork.LT.1 .AND. .NOT.lquery )
THEN
249 nb = ilaenv( 1,
'SSYTRD', uplo, n, -1, -1, -1 )
255 CALL xerbla(
'SSYTRD', -info )
257 ELSE IF( lquery )
THEN
270 IF( nb.GT.1 .AND. nb.LT.n )
THEN
275 nx = max( nb, ilaenv( 3,
'SSYTRD', uplo, n, -1, -1, -1 ) )
282 IF( lwork.LT.iws )
THEN
288 nb = max( lwork / ldwork, 1 )
289 nbmin = ilaenv( 2,
'SSYTRD', uplo, n, -1, -1, -1 )
305 kk = n - ( ( n-nx+nb-1 ) / nb )*nb
306 DO 20 i = n - nb + 1, kk + 1, -nb
312 CALL slatrd( uplo, i+nb-1, nb, a, lda, e, tau, work,
318 CALL ssyr2k( uplo,
'No transpose', i-1, nb, -one, a( 1, i ),
319 $ lda, work, ldwork, one, a, lda )
324 DO 10 j = i, i + nb - 1
325 a( j-1, j ) = e( j-1 )
332 CALL ssytd2( uplo, kk, a, lda, d, e, tau, iinfo )
337 DO 40 i = 1, n - nx, nb
343 CALL slatrd( uplo, n-i+1, nb, a( i, i ), lda, e( i ),
344 $ tau( i ), work, ldwork )
349 CALL ssyr2k( uplo,
'No transpose', n-i-nb+1, nb, -one,
350 $ a( i+nb, i ), lda, work( nb+1 ), ldwork, one,
351 $ a( i+nb, i+nb ), lda )
356 DO 30 j = i, i + nb - 1
364 CALL ssytd2( uplo, n-i+1, a( i, i ), lda, d( i ), e( i ),
subroutine xerbla(SRNAME, INFO)
XERBLA
subroutine slatrd(UPLO, N, NB, A, LDA, E, TAU, W, LDW)
SLATRD reduces the first nb rows and columns of a symmetric/Hermitian matrix A to real tridiagonal fo...
subroutine ssytrd(UPLO, N, A, LDA, D, E, TAU, WORK, LWORK, INFO)
SSYTRD
subroutine ssytd2(UPLO, N, A, LDA, D, E, TAU, INFO)
SSYTD2 reduces a symmetric matrix to real symmetric tridiagonal form by an orthogonal similarity tran...
subroutine ssyr2k(UPLO, TRANS, N, K, ALPHA, A, LDA, B, LDB, BETA, C, LDC)
SSYR2K