161 SUBROUTINE zhpgv( ITYPE, JOBZ, UPLO, N, AP, BP, W, Z, LDZ,
171 INTEGER INFO, ITYPE, LDZ, N
174 DOUBLE PRECISION RWORK( * ), W( * )
175 COMPLEX*16 AP( * ), BP( * ), WORK( * ), Z( LDZ, * )
197 wantz = lsame( jobz,
'V' )
198 upper = lsame( uplo,
'U' )
201 IF( itype.LT.1 .OR. itype.GT.3 )
THEN
203 ELSE IF( .NOT.( wantz .OR. lsame( jobz,
'N' ) ) )
THEN
205 ELSE IF( .NOT.( upper .OR. lsame( uplo,
'L' ) ) )
THEN
207 ELSE IF( n.LT.0 )
THEN
209 ELSE IF( ldz.LT.1 .OR. ( wantz .AND. ldz.LT.n ) )
THEN
213 CALL xerbla(
'ZHPGV ', -info )
224 CALL zpptrf( uplo, n, bp, info )
232 CALL zhpgst( itype, uplo, n, ap, bp, info )
233 CALL zhpev( jobz, uplo, n, ap, w, z, ldz, work, rwork, info )
242 IF( itype.EQ.1 .OR. itype.EQ.2 )
THEN
254 CALL ztpsv( uplo, trans,
'Non-unit', n, bp, z( 1, j ),
258 ELSE IF( itype.EQ.3 )
THEN
270 CALL ztpmv( uplo, trans,
'Non-unit', n, bp, z( 1, j ),
subroutine xerbla(srname, info)
subroutine zhpev(jobz, uplo, n, ap, w, z, ldz, work, rwork, info)
ZHPEV computes the eigenvalues and, optionally, the left and/or right eigenvectors for OTHER matrices
subroutine zhpgst(itype, uplo, n, ap, bp, info)
ZHPGST
subroutine zhpgv(itype, jobz, uplo, n, ap, bp, w, z, ldz, work, rwork, info)
ZHPGV
subroutine zpptrf(uplo, n, ap, info)
ZPPTRF
subroutine ztpmv(uplo, trans, diag, n, ap, x, incx)
ZTPMV
subroutine ztpsv(uplo, trans, diag, n, ap, x, incx)
ZTPSV