274 SUBROUTINE zhpgvx( ITYPE, JOBZ, RANGE, UPLO, N, AP, BP, VL, VU,
275 $ IL, IU, ABSTOL, M, W, Z, LDZ, WORK, RWORK,
276 $ IWORK, IFAIL, INFO )
283 CHARACTER JOBZ, RANGE, UPLO
284 INTEGER IL, INFO, ITYPE, IU, LDZ, M, N
285 DOUBLE PRECISION ABSTOL, VL, VU
288 INTEGER IFAIL( * ), IWORK( * )
289 DOUBLE PRECISION RWORK( * ), W( * )
290 COMPLEX*16 AP( * ), BP( * ), WORK( * ), Z( LDZ, * )
296 LOGICAL ALLEIG, INDEIG, UPPER, VALEIG, WANTZ
314 wantz = lsame( jobz,
'V' )
315 upper = lsame( uplo,
'U' )
316 alleig = lsame( range,
'A' )
317 valeig = lsame( range,
'V' )
318 indeig = lsame( range,
'I' )
321 IF( itype.LT.1 .OR. itype.GT.3 )
THEN
323 ELSE IF( .NOT.( wantz .OR. lsame( jobz,
'N' ) ) )
THEN
325 ELSE IF( .NOT.( alleig .OR. valeig .OR. indeig ) )
THEN
327 ELSE IF( .NOT.( upper .OR. lsame( uplo,
'L' ) ) )
THEN
329 ELSE IF( n.LT.0 )
THEN
333 IF( n.GT.0 .AND. vu.LE.vl )
THEN
336 ELSE IF( indeig )
THEN
339 ELSE IF( iu.LT.min( n, il ) .OR. iu.GT.n )
THEN
345 IF( ldz.LT.1 .OR. ( wantz .AND. ldz.LT.n ) )
THEN
351 CALL xerbla(
'ZHPGVX', -info )
362 CALL zpptrf( uplo, n, bp, info )
370 CALL zhpgst( itype, uplo, n, ap, bp, info )
371 CALL zhpevx( jobz, range, uplo, n, ap, vl, vu, il, iu, abstol, m,
372 $ w, z, ldz, work, rwork, iwork, ifail, info )
380 IF( itype.EQ.1 .OR. itype.EQ.2 )
THEN
392 CALL ztpsv( uplo, trans,
'Non-unit', n, bp, z( 1, j ),
396 ELSE IF( itype.EQ.3 )
THEN
408 CALL ztpmv( uplo, trans,
'Non-unit', n, bp, z( 1, j ),
subroutine xerbla(srname, info)
subroutine zhpevx(jobz, range, uplo, n, ap, vl, vu, il, iu, abstol, m, w, z, ldz, work, rwork, iwork, ifail, info)
ZHPEVX computes the eigenvalues and, optionally, the left and/or right eigenvectors for OTHER matrice...
subroutine zhpgst(itype, uplo, n, ap, bp, info)
ZHPGST
subroutine zhpgvx(itype, jobz, range, uplo, n, ap, bp, vl, vu, il, iu, abstol, m, w, z, ldz, work, rwork, iwork, ifail, info)
ZHPGVX
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