262 SUBROUTINE sspgvx( ITYPE, JOBZ, RANGE, UPLO, N, AP, BP, VL, VU,
263 $ il, iu, abstol, m, w, z, ldz, work, iwork,
272 CHARACTER JOBZ, RANGE, UPLO
273 INTEGER IL, INFO, ITYPE, IU, LDZ, M, N
277 INTEGER IFAIL( * ), IWORK( * )
278 REAL AP( * ), BP( * ), W( * ), WORK( * ),
285 LOGICAL ALLEIG, INDEIG, UPPER, VALEIG, WANTZ
303 upper = lsame( uplo,
'U' )
304 wantz = lsame( jobz,
'V' )
305 alleig = lsame( range,
'A' )
306 valeig = lsame( range,
'V' )
307 indeig = lsame( range,
'I' )
310 IF( itype.LT.1 .OR. itype.GT.3 )
THEN
312 ELSE IF( .NOT.( wantz .OR. lsame( jobz,
'N' ) ) )
THEN
314 ELSE IF( .NOT.( alleig .OR. valeig .OR. indeig ) )
THEN
316 ELSE IF( .NOT.( upper .OR. lsame( uplo,
'L' ) ) )
THEN
318 ELSE IF( n.LT.0 )
THEN
322 IF( n.GT.0 .AND. vu.LE.vl )
THEN
325 ELSE IF( indeig )
THEN
328 ELSE IF( iu.LT.min( n, il ) .OR. iu.GT.n )
THEN
334 IF( ldz.LT.1 .OR. ( wantz .AND. ldz.LT.n ) )
THEN
340 CALL xerbla(
'SSPGVX', -info )
352 CALL spptrf( uplo, n, bp, info )
360 CALL sspgst( itype, uplo, n, ap, bp, info )
361 CALL sspevx( jobz, range, uplo, n, ap, vl, vu, il, iu, abstol, m,
362 $ w, z, ldz, work, iwork, ifail, info )
370 IF( itype.EQ.1 .OR. itype.EQ.2 )
THEN
382 CALL stpsv( uplo, trans,
'Non-unit', n, bp, z( 1, j ),
386 ELSE IF( itype.EQ.3 )
THEN
398 CALL stpmv( uplo, trans,
'Non-unit', n, bp, z( 1, j ),
subroutine sspgst(ITYPE, UPLO, N, AP, BP, INFO)
SSPGST
subroutine xerbla(SRNAME, INFO)
XERBLA
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 sspgvx(ITYPE, JOBZ, RANGE, UPLO, N, AP, BP, VL, VU, IL, IU, ABSTOL, M, W, Z, LDZ, WORK, IWORK, IFAIL, INFO)
SSPGST
subroutine stpmv(UPLO, TRANS, DIAG, N, AP, X, INCX)
STPMV
subroutine stpsv(UPLO, TRANS, DIAG, N, AP, X, INCX)
STPSV
subroutine spptrf(UPLO, N, AP, INFO)
SPPTRF