231 SUBROUTINE zhpgvd( ITYPE, JOBZ, UPLO, N, AP, BP, W, Z, LDZ, WORK,
232 $ LWORK, RWORK, LRWORK, IWORK, LIWORK, INFO )
241 INTEGER INFO, ITYPE, LDZ, LIWORK, LRWORK, LWORK, N
245 DOUBLE PRECISION RWORK( * ), W( * )
246 COMPLEX*16 AP( * ), BP( * ), WORK( * ), Z( ldz, * )
252 LOGICAL LQUERY, UPPER, WANTZ
254 INTEGER J, LIWMIN, LRWMIN, LWMIN, NEIG
270 wantz = lsame( jobz,
'V' )
271 upper = lsame( uplo,
'U' )
272 lquery = ( lwork.EQ.-1 .OR. lrwork.EQ.-1 .OR. liwork.EQ.-1 )
275 IF( itype.LT.1 .OR. itype.GT.3 )
THEN 277 ELSE IF( .NOT.( wantz .OR. lsame( jobz,
'N' ) ) )
THEN 279 ELSE IF( .NOT.( upper .OR. lsame( uplo,
'L' ) ) )
THEN 281 ELSE IF( n.LT.0 )
THEN 283 ELSE IF( ldz.LT.1 .OR. ( wantz .AND. ldz.LT.n ) )
THEN 295 lrwmin = 1 + 5*n + 2*n**2
307 IF( lwork.LT.lwmin .AND. .NOT.lquery )
THEN 309 ELSE IF( lrwork.LT.lrwmin .AND. .NOT.lquery )
THEN 311 ELSE IF( liwork.LT.liwmin .AND. .NOT.lquery )
THEN 317 CALL xerbla(
'ZHPGVD', -info )
319 ELSE IF( lquery )
THEN 330 CALL zpptrf( uplo, n, bp, info )
338 CALL zhpgst( itype, uplo, n, ap, bp, info )
339 CALL zhpevd( jobz, uplo, n, ap, w, z, ldz, work, lwork, rwork,
340 $ lrwork, iwork, liwork, info )
341 lwmin = max( dble( lwmin ), dble( work( 1 ) ) )
342 lrwmin = max( dble( lrwmin ), dble( rwork( 1 ) ) )
343 liwmin = max( dble( liwmin ), dble( iwork( 1 ) ) )
352 IF( itype.EQ.1 .OR. itype.EQ.2 )
THEN 364 CALL ztpsv( uplo, trans,
'Non-unit', n, bp, z( 1, j ),
368 ELSE IF( itype.EQ.3 )
THEN 380 CALL ztpmv( uplo, trans,
'Non-unit', n, bp, z( 1, j ),
subroutine zhpgvd(ITYPE, JOBZ, UPLO, N, AP, BP, W, Z, LDZ, WORK, LWORK, RWORK, LRWORK, IWORK, LIWORK, INFO)
ZHPGVD
subroutine zpptrf(UPLO, N, AP, INFO)
ZPPTRF
subroutine zhpgst(ITYPE, UPLO, N, AP, BP, INFO)
ZHPGST
subroutine ztpsv(UPLO, TRANS, DIAG, N, AP, X, INCX)
ZTPSV
subroutine ztpmv(UPLO, TRANS, DIAG, N, AP, X, INCX)
ZTPMV
subroutine xerbla(SRNAME, INFO)
XERBLA
subroutine zhpevd(JOBZ, UPLO, N, AP, W, Z, LDZ, WORK, LWORK, RWORK, LRWORK, IWORK, LIWORK, INFO)
ZHPEVD computes the eigenvalues and, optionally, the left and/or right eigenvectors for OTHER matric...