267 SUBROUTINE sspgvx( ITYPE, JOBZ, RANGE, UPLO, N, AP, BP, VL, VU,
268 $ IL, IU, ABSTOL, M, W, Z, LDZ, WORK, IWORK,
276 CHARACTER JOBZ, RANGE, UPLO
277 INTEGER IL, INFO, ITYPE, IU, LDZ, M, N
281 INTEGER IFAIL( * ), IWORK( * )
282 REAL AP( * ), BP( * ), W( * ), WORK( * ),
289 LOGICAL ALLEIG, INDEIG, UPPER, VALEIG, WANTZ
308 upper = lsame( uplo,
'U' )
309 wantz = lsame( jobz,
'V' )
310 alleig = lsame( range,
'A' )
311 valeig = lsame( range,
'V' )
312 indeig = lsame( range,
'I' )
315 IF( itype.LT.1 .OR. itype.GT.3 )
THEN
317 ELSE IF( .NOT.( wantz .OR. lsame( jobz,
'N' ) ) )
THEN
319 ELSE IF( .NOT.( alleig .OR. valeig .OR. indeig ) )
THEN
321 ELSE IF( .NOT.( upper .OR. lsame( uplo,
'L' ) ) )
THEN
323 ELSE IF( n.LT.0 )
THEN
327 IF( n.GT.0 .AND. vu.LE.vl )
THEN
330 ELSE IF( indeig )
THEN
333 ELSE IF( iu.LT.min( n, il ) .OR. iu.GT.n )
THEN
339 IF( ldz.LT.1 .OR. ( wantz .AND. ldz.LT.n ) )
THEN
345 CALL xerbla(
'SSPGVX', -info )
357 CALL spptrf( uplo, n, bp, info )
365 CALL sspgst( itype, uplo, n, ap, bp, info )
366 CALL sspevx( jobz, range, uplo, n, ap, vl, vu, il, iu, abstol,
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 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 sspgvx(itype, jobz, range, uplo, n, ap, bp, vl, vu, il, iu, abstol, m, w, z, ldz, work, iwork, ifail, info)
SSPGVX
subroutine stpmv(uplo, trans, diag, n, ap, x, incx)
STPMV
subroutine stpsv(uplo, trans, diag, n, ap, x, incx)
STPSV