269 SUBROUTINE sspgvx( ITYPE, JOBZ, RANGE, UPLO, N, AP, BP, VL, VU,
270 $ IL, IU, ABSTOL, M, W, Z, LDZ, WORK, IWORK,
278 CHARACTER JOBZ, RANGE, UPLO
279 INTEGER IL, INFO, ITYPE, IU, LDZ, M, N
283 INTEGER IFAIL( * ), IWORK( * )
284 REAL AP( * ), BP( * ), W( * ), WORK( * ),
291 LOGICAL ALLEIG, INDEIG, UPPER, VALEIG, WANTZ
309 upper = lsame( uplo,
'U' )
310 wantz = lsame( jobz,
'V' )
311 alleig = lsame( range,
'A' )
312 valeig = lsame( range,
'V' )
313 indeig = lsame( range,
'I' )
316 IF( itype.LT.1 .OR. itype.GT.3 )
THEN
318 ELSE IF( .NOT.( wantz .OR. lsame( jobz,
'N' ) ) )
THEN
320 ELSE IF( .NOT.( alleig .OR. valeig .OR. indeig ) )
THEN
322 ELSE IF( .NOT.( upper .OR. lsame( uplo,
'L' ) ) )
THEN
324 ELSE IF( n.LT.0 )
THEN
328 IF( n.GT.0 .AND. vu.LE.vl )
THEN
331 ELSE IF( indeig )
THEN
334 ELSE IF( iu.LT.min( n, il ) .OR. iu.GT.n )
THEN
340 IF( ldz.LT.1 .OR. ( wantz .AND. ldz.LT.n ) )
THEN
346 CALL xerbla(
'SSPGVX', -info )
358 CALL spptrf( uplo, n, bp, info )
366 CALL sspgst( itype, uplo, n, ap, bp, info )
367 CALL sspevx( jobz, range, uplo, n, ap, vl, vu, il, iu, abstol, m,
368 $ w, z, ldz, work, iwork, ifail, info )
376 IF( itype.EQ.1 .OR. itype.EQ.2 )
THEN
388 CALL stpsv( uplo, trans,
'Non-unit', n, bp, z( 1, j ),
392 ELSE IF( itype.EQ.3 )
THEN
404 CALL stpmv( uplo, trans,
'Non-unit', n, bp, z( 1, j ),
subroutine xerbla(srname, info)
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 matrice...
subroutine sspgst(itype, uplo, n, ap, bp, info)
SSPGST
subroutine sspgvx(itype, jobz, range, uplo, n, ap, bp, vl, vu, il, iu, abstol, m, w, z, ldz, work, iwork, ifail, info)
SSPGVX
subroutine spptrf(uplo, n, ap, info)
SPPTRF
subroutine stpmv(uplo, trans, diag, n, ap, x, incx)
STPMV
subroutine stpsv(uplo, trans, diag, n, ap, x, incx)
STPSV