272 SUBROUTINE chpgvx( 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
286 INTEGER IFAIL( * ), IWORK( * )
287 REAL RWORK( * ), W( * )
288 COMPLEX 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(
'CHPGVX', -info )
361 CALL cpptrf( uplo, n, bp, info )
369 CALL chpgst( itype, uplo, n, ap, bp, info )
370 CALL chpevx( 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 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 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 chpgvx(itype, jobz, range, uplo, n, ap, bp, vl, vu, il, iu, abstol, m, w, z, ldz, work, rwork, iwork, ifail, info)
CHPGVX
subroutine ctpmv(uplo, trans, diag, n, ap, x, incx)
CTPMV
subroutine ctpsv(uplo, trans, diag, n, ap, x, incx)
CTPSV