163 SUBROUTINE zhpgv( ITYPE, JOBZ, UPLO, N, AP, BP, W, Z, LDZ, WORK,
172 INTEGER INFO, ITYPE, LDZ, N
175 DOUBLE PRECISION RWORK( * ), W( * )
176 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