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 ),