274 SUBROUTINE chpgvx( 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
288 INTEGER IFAIL( * ), IWORK( * )
289 REAL RWORK( * ), W( * )
290 COMPLEX 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(
'CHPGVX', -info )
362 CALL cpptrf( uplo, n, bp, info )
370 CALL chpgst( itype, uplo, n, ap, bp, info )
371 CALL chpevx( 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 ctpsv( uplo, trans,
'Non-unit', n, bp, z( 1, j ),
396 ELSE IF( itype.EQ.3 )
THEN
408 CALL ctpmv( uplo, trans,
'Non-unit', n, bp, z( 1, j ),
subroutine xerbla(srname, info)
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 matrice...
subroutine chpgst(itype, uplo, n, ap, bp, info)
CHPGST
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 cpptrf(uplo, n, ap, info)
CPPTRF
subroutine ctpmv(uplo, trans, diag, n, ap, x, incx)
CTPMV
subroutine ctpsv(uplo, trans, diag, n, ap, x, incx)
CTPSV