276 SUBROUTINE chpgvx( ITYPE, JOBZ, RANGE, UPLO, N, AP, BP, VL, VU,
277 $ IL, IU, ABSTOL, M, W, Z, LDZ, WORK, RWORK,
278 $ IWORK, IFAIL, INFO )
286 CHARACTER JOBZ, RANGE, UPLO
287 INTEGER IL, INFO, ITYPE, IU, LDZ, M, N
291 INTEGER IFAIL( * ), IWORK( * )
292 REAL RWORK( * ), W( * )
293 COMPLEX AP( * ), BP( * ), WORK( * ), Z( ldz, * )
299 LOGICAL ALLEIG, INDEIG, UPPER, VALEIG, WANTZ
317 wantz = lsame( jobz,
'V' )
318 upper = lsame( uplo,
'U' )
319 alleig = lsame( range,
'A' )
320 valeig = lsame( range,
'V' )
321 indeig = lsame( range,
'I' )
324 IF( itype.LT.1 .OR. itype.GT.3 )
THEN 326 ELSE IF( .NOT.( wantz .OR. lsame( jobz,
'N' ) ) )
THEN 328 ELSE IF( .NOT.( alleig .OR. valeig .OR. indeig ) )
THEN 330 ELSE IF( .NOT.( upper .OR. lsame( uplo,
'L' ) ) )
THEN 332 ELSE IF( n.LT.0 )
THEN 336 IF( n.GT.0 .AND. vu.LE.vl )
THEN 339 ELSE IF( indeig )
THEN 342 ELSE IF( iu.LT.min( n, il ) .OR. iu.GT.n )
THEN 348 IF( ldz.LT.1 .OR. ( wantz .AND. ldz.LT.n ) )
THEN 354 CALL xerbla(
'CHPGVX', -info )
365 CALL cpptrf( uplo, n, bp, info )
373 CALL chpgst( itype, uplo, n, ap, bp, info )
374 CALL chpevx( jobz, range, uplo, n, ap, vl, vu, il, iu, abstol, m,
375 $ w, z, ldz, work, rwork, iwork, ifail, info )
383 IF( itype.EQ.1 .OR. itype.EQ.2 )
THEN 395 CALL ctpsv( uplo, trans,
'Non-unit', n, bp, z( 1, j ),
399 ELSE IF( itype.EQ.3 )
THEN 411 CALL ctpmv( uplo, trans,
'Non-unit', n, bp, z( 1, j ),
subroutine ctpmv(UPLO, TRANS, DIAG, N, AP, X, INCX)
CTPMV
subroutine chpgvx(ITYPE, JOBZ, RANGE, UPLO, N, AP, BP, VL, VU, IL, IU, ABSTOL, M, W, Z, LDZ, WORK, RWORK, IWORK, IFAIL, INFO)
CHPGVX
subroutine xerbla(SRNAME, INFO)
XERBLA
subroutine chpevx(JOBZ, RANGE, UPLO, N, AP, VL, VU, IL, IU, ABSTOL, M, W, Z, LDZ, WORK, RWORK, IWORK, IFAIL, INFO)
CHPEVX computes the eigenvalues and, optionally, the left and/or right eigenvectors for OTHER matric...
subroutine ctpsv(UPLO, TRANS, DIAG, N, AP, X, INCX)
CTPSV
subroutine chpgst(ITYPE, UPLO, N, AP, BP, INFO)
CHPGST
subroutine cpptrf(UPLO, N, AP, INFO)
CPPTRF