160 SUBROUTINE sspgv( ITYPE, JOBZ, UPLO, N, AP, BP, W, Z, LDZ, WORK,
170 INTEGER INFO, ITYPE, LDZ, N
173 REAL AP( * ), BP( * ), W( * ), WORK( * ),
195 wantz = lsame( jobz,
'V' )
196 upper = lsame( uplo,
'U' )
199 IF( itype.LT.1 .OR. itype.GT.3 )
THEN
201 ELSE IF( .NOT.( wantz .OR. lsame( jobz,
'N' ) ) )
THEN
203 ELSE IF( .NOT.( upper .OR. lsame( uplo,
'L' ) ) )
THEN
205 ELSE IF( n.LT.0 )
THEN
207 ELSE IF( ldz.LT.1 .OR. ( wantz .AND. ldz.LT.n ) )
THEN
211 CALL xerbla(
'SSPGV ', -info )
222 CALL spptrf( uplo, n, bp, info )
230 CALL sspgst( itype, uplo, n, ap, bp, info )
231 CALL sspev( jobz, uplo, n, ap, w, z, ldz, work, info )
240 IF( itype.EQ.1 .OR. itype.EQ.2 )
THEN
252 CALL stpsv( uplo, trans,
'Non-unit', n, bp, z( 1, j ),
256 ELSE IF( itype.EQ.3 )
THEN
268 CALL stpmv( uplo, trans,
'Non-unit', n, bp, z( 1, j ),