272 SUBROUTINE zhpgvx( ITYPE, JOBZ, RANGE, UPLO, N, AP, BP, VL, VU,
273 $ IL, IU, ABSTOL, M, W, Z, LDZ, WORK, RWORK,
274 $ IWORK, IFAIL, INFO )
281 CHARACTER JOBZ, RANGE, UPLO
282 INTEGER IL, INFO, ITYPE, IU, LDZ, M, N
283 DOUBLE PRECISION ABSTOL, VL, VU
286 INTEGER IFAIL( * ), IWORK( * )
287 DOUBLE PRECISION RWORK( * ), W( * )
288 COMPLEX*16 AP( * ), BP( * ), WORK( * ), Z( LDZ, * )
294 LOGICAL ALLEIG, INDEIG, UPPER, VALEIG, WANTZ
313 wantz = lsame( jobz,
'V' )
314 upper = lsame( uplo,
'U' )
315 alleig = lsame( range,
'A' )
316 valeig = lsame( range,
'V' )
317 indeig = lsame( range,
'I' )
320 IF( itype.LT.1 .OR. itype.GT.3 )
THEN
322 ELSE IF( .NOT.( wantz .OR. lsame( jobz,
'N' ) ) )
THEN
324 ELSE IF( .NOT.( alleig .OR. valeig .OR. indeig ) )
THEN
326 ELSE IF( .NOT.( upper .OR. lsame( uplo,
'L' ) ) )
THEN
328 ELSE IF( n.LT.0 )
THEN
332 IF( n.GT.0 .AND. vu.LE.vl )
THEN
335 ELSE IF( indeig )
THEN
338 ELSE IF( iu.LT.min( n, il ) .OR. iu.GT.n )
THEN
344 IF( ldz.LT.1 .OR. ( wantz .AND. ldz.LT.n ) )
THEN
350 CALL xerbla(
'ZHPGVX', -info )
361 CALL zpptrf( uplo, n, bp, info )
369 CALL zhpgst( itype, uplo, n, ap, bp, info )
370 CALL zhpevx( jobz, range, uplo, n, ap, vl, vu, il, iu, abstol,
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 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 zhpgvx(itype, jobz, range, uplo, n, ap, bp, vl, vu, il, iu, abstol, m, w, z, ldz, work, rwork, iwork, ifail, info)
ZHPGVX
subroutine ztpmv(uplo, trans, diag, n, ap, x, incx)
ZTPMV
subroutine ztpsv(uplo, trans, diag, n, ap, x, incx)
ZTPSV