191 SUBROUTINE dsytrd( UPLO, N, A, LDA, D, E, TAU, WORK, LWORK, INFO )
199 INTEGER INFO, LDA, LWORK, N
202 DOUBLE PRECISION A( lda, * ), D( * ), E( * ), TAU( * ),
210 parameter( one = 1.0d+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,
'DSYTRD', uplo, n, -1, -1, -1 )
255 CALL xerbla(
'DSYTRD', -info )
257 ELSE IF( lquery )
THEN 270 IF( nb.GT.1 .AND. nb.LT.n )
THEN 275 nx = max( nb, ilaenv( 3,
'DSYTRD', uplo, n, -1, -1, -1 ) )
282 IF( lwork.LT.iws )
THEN 288 nb = max( lwork / ldwork, 1 )
289 nbmin = ilaenv( 2,
'DSYTRD', 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 dlatrd( uplo, i+nb-1, nb, a, lda, e, tau, work,
318 CALL dsyr2k( 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 dsytd2( uplo, kk, a, lda, d, e, tau, iinfo )
337 DO 40 i = 1, n - nx, nb
343 CALL dlatrd( uplo, n-i+1, nb, a( i, i ), lda, e( i ),
344 $ tau( i ), work, ldwork )
349 CALL dsyr2k( 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 dsytd2( uplo, n-i+1, a( i, i ), lda, d( i ), e( i ),
subroutine dsyr2k(UPLO, TRANS, N, K, ALPHA, A, LDA, B, LDB, BETA, C, LDC)
DSYR2K
subroutine xerbla(SRNAME, INFO)
XERBLA
subroutine dsytrd(UPLO, N, A, LDA, D, E, TAU, WORK, LWORK, INFO)
DSYTRD
subroutine dsytd2(UPLO, N, A, LDA, D, E, TAU, INFO)
DSYTD2 reduces a symmetric matrix to real symmetric tridiagonal form by an orthogonal similarity tran...
subroutine dlatrd(UPLO, N, NB, A, LDA, E, TAU, W, LDW)
DLATRD reduces the first nb rows and columns of a symmetric/Hermitian matrix A to real tridiagonal fo...