271 SUBROUTINE sspgvx( ITYPE, JOBZ, RANGE, UPLO, N, AP, BP, VL, VU,
272 $ IL, IU, ABSTOL, M, W, Z, LDZ, WORK, IWORK,
281 CHARACTER JOBZ, RANGE, UPLO
282 INTEGER IL, INFO, ITYPE, IU, LDZ, M, N
286 INTEGER IFAIL( * ), IWORK( * )
287 REAL AP( * ), BP( * ), W( * ), WORK( * ),
294 LOGICAL ALLEIG, INDEIG, UPPER, VALEIG, WANTZ
312 upper = lsame( uplo,
'U' )
313 wantz = lsame( jobz,
'V' )
314 alleig = lsame( range,
'A' )
315 valeig = lsame( range,
'V' )
316 indeig = lsame( range,
'I' )
319 IF( itype.LT.1 .OR. itype.GT.3 )
THEN 321 ELSE IF( .NOT.( wantz .OR. lsame( jobz,
'N' ) ) )
THEN 323 ELSE IF( .NOT.( alleig .OR. valeig .OR. indeig ) )
THEN 325 ELSE IF( .NOT.( upper .OR. lsame( uplo,
'L' ) ) )
THEN 327 ELSE IF( n.LT.0 )
THEN 331 IF( n.GT.0 .AND. vu.LE.vl )
THEN 334 ELSE IF( indeig )
THEN 337 ELSE IF( iu.LT.min( n, il ) .OR. iu.GT.n )
THEN 343 IF( ldz.LT.1 .OR. ( wantz .AND. ldz.LT.n ) )
THEN 349 CALL xerbla(
'SSPGVX', -info )
361 CALL spptrf( uplo, n, bp, info )
369 CALL sspgst( itype, uplo, n, ap, bp, info )
370 CALL sspevx( jobz, range, uplo, n, ap, vl, vu, il, iu, abstol, m,
371 $ w, z, ldz, work, iwork, ifail, info )
379 IF( itype.EQ.1 .OR. itype.EQ.2 )
THEN 391 CALL stpsv( uplo, trans,
'Non-unit', n, bp, z( 1, j ),
395 ELSE IF( itype.EQ.3 )
THEN 407 CALL stpmv( uplo, trans,
'Non-unit', n, bp, z( 1, j ),
subroutine spptrf(UPLO, N, AP, INFO)
SPPTRF
subroutine stpmv(UPLO, TRANS, DIAG, N, AP, X, INCX)
STPMV
subroutine sspevx(JOBZ, RANGE, UPLO, N, AP, VL, VU, IL, IU, ABSTOL, M, W, Z, LDZ, WORK, IWORK, IFAIL, INFO)
SSPEVX computes the eigenvalues and, optionally, the left and/or right eigenvectors for OTHER matric...
subroutine xerbla(SRNAME, INFO)
XERBLA
subroutine stpsv(UPLO, TRANS, DIAG, N, AP, X, INCX)
STPSV
subroutine sspgvx(ITYPE, JOBZ, RANGE, UPLO, N, AP, BP, VL, VU, IL, IU, ABSTOL, M, W, Z, LDZ, WORK, IWORK, IFAIL, INFO)
SSPGVX
subroutine sspgst(ITYPE, UPLO, N, AP, BP, INFO)
SSPGST