191 SUBROUTINE zhetrd( UPLO, N, A, LDA, D, E, TAU, WORK, LWORK, INFO )
199 INTEGER INFO, LDA, LWORK, N
202 DOUBLE PRECISION D( * ), E( * )
203 COMPLEX*16 A( LDA, * ), TAU( * ), WORK( * )
210 parameter( one = 1.0d+0 )
212 parameter( cone = ( 1.0d+0, 0.0d+0 ) )
215 LOGICAL LQUERY, UPPER
216 INTEGER I, IINFO, IWS, J, KK, LDWORK, LWKOPT, NB,
228 EXTERNAL lsame, ilaenv
235 upper = lsame( uplo, 'u
' )
236.EQ.
LQUERY = ( LWORK-1 )
237.NOT..AND..NOT.
IF( UPPER LSAME( UPLO, 'l
' ) ) THEN
239.LT.
ELSE IF( N0 ) THEN
241.LT.
ELSE IF( LDAMAX( 1, N ) ) THEN
243.LT..AND..NOT.
ELSE IF( LWORK1 LQUERY ) THEN
251 NB = ILAENV( 1, 'zhetrd', UPLO, N, -1, -1, -1 )
257 CALL XERBLA( 'zhetrd', -INFO )
259 ELSE IF( LQUERY ) THEN
272.GT..AND..LT.
IF( NB1 NBN ) THEN
277 NX = MAX( NB, ILAENV( 3, 'zhetrd', UPLO, N, -1, -1, -1 ) )
284.LT.
IF( LWORKIWS ) THEN
290 NB = MAX( LWORK / LDWORK, 1 )
291 NBMIN = ILAENV( 2, 'zhetrd', UPLO, N, -1, -1, -1 )
307 KK = N - ( ( N-NX+NB-1 ) / NB )*NB
308 DO 20 I = N - NB + 1, KK + 1, -NB
314 CALL ZLATRD( UPLO, I+NB-1, NB, A, LDA, E, TAU, WORK,
320 CALL ZHER2K( UPLO, 'no transpose
', I-1, NB, -CONE,
321 $ A( 1, I ), LDA, WORK, LDWORK, ONE, A, LDA )
326 DO 10 J = I, I + NB - 1
327 A( J-1, J ) = E( J-1 )
328 D( J ) = DBLE( A( J, J ) )
334 CALL ZHETD2( UPLO, KK, A, LDA, D, E, TAU, IINFO )
339 DO 40 I = 1, N - NX, NB
345 CALL ZLATRD( UPLO, N-I+1, NB, A( I, I ), LDA, E( I ),
346 $ TAU( I ), WORK, LDWORK )
351 CALL ZHER2K( UPLO, 'no transpose
', N-I-NB+1, NB, -CONE,
352 $ A( I+NB, I ), LDA, WORK( NB+1 ), LDWORK, ONE,
353 $ A( I+NB, I+NB ), LDA )
358 DO 30 J = I, I + NB - 1
360 D( J ) = DBLE( A( J, J ) )
366 CALL ZHETD2( UPLO, N-I+1, A( I, I ), LDA, D( I ), E( I ),
subroutine xerbla(srname, info)
XERBLA
subroutine zhetd2(uplo, n, a, lda, d, e, tau, info)
ZHETD2 reduces a Hermitian matrix to real symmetric tridiagonal form by an unitary similarity transfo...
subroutine zhetrd(uplo, n, a, lda, d, e, tau, work, lwork, info)
ZHETRD
subroutine zlatrd(uplo, n, nb, a, lda, e, tau, w, ldw)
ZLATRD reduces the first nb rows and columns of a symmetric/Hermitian matrix A to real tridiagonal fo...
subroutine zher2k(uplo, trans, n, k, alpha, a, lda, b, ldb, beta, c, ldc)
ZHER2K