165 SUBROUTINE zhpgv( ITYPE, JOBZ, UPLO, N, AP, BP, W, Z, LDZ, WORK,
175 INTEGER info, itype, ldz, n
178 DOUBLE PRECISION rwork( * ), w( * )
179 COMPLEX*16 ap( * ), bp( * ), work( * ), z( ldz, * )
200 wantz =
lsame( jobz,
'V' )
201 upper =
lsame( uplo,
'U' )
204 IF( itype.LT.1 .OR. itype.GT.3 )
THEN
206 ELSE IF( .NOT.( wantz .OR.
lsame( jobz,
'N' ) ) )
THEN
208 ELSE IF( .NOT.( upper .OR.
lsame( uplo,
'L' ) ) )
THEN
210 ELSE IF( n.LT.0 )
THEN
212 ELSE IF( ldz.LT.1 .OR. ( wantz .AND. ldz.LT.n ) )
THEN
216 CALL
xerbla(
'ZHPGV ', -info )
227 CALL
zpptrf( uplo, n, bp, info )
235 CALL
zhpgst( itype, uplo, n, ap, bp, info )
236 CALL
zhpev( jobz, uplo, n, ap, w, z, ldz, work, rwork, info )
245 IF( itype.EQ.1 .OR. itype.EQ.2 )
THEN
257 CALL
ztpsv( uplo, trans,
'Non-unit', n, bp, z( 1, j ),
261 ELSE IF( itype.EQ.3 )
THEN
273 CALL
ztpmv( uplo, trans,
'Non-unit', n, bp, z( 1, j ),