161 SUBROUTINE dspgv( ITYPE, JOBZ, UPLO, N, AP, BP, W, Z, LDZ, WORK,
171 INTEGER info, itype, ldz, n
174 DOUBLE PRECISION ap( * ), bp( * ), w( * ), work( * ),
196 wantz =
lsame( jobz,
'V' )
197 upper =
lsame( uplo,
'U' )
200 IF( itype.LT.1 .OR. itype.GT.3 )
THEN
202 ELSE IF( .NOT.( wantz .OR.
lsame( jobz,
'N' ) ) )
THEN
204 ELSE IF( .NOT.( upper .OR.
lsame( uplo,
'L' ) ) )
THEN
206 ELSE IF( n.LT.0 )
THEN
208 ELSE IF( ldz.LT.1 .OR. ( wantz .AND. ldz.LT.n ) )
THEN
212 CALL
xerbla(
'DSPGV ', -info )
223 CALL
dpptrf( uplo, n, bp, info )
231 CALL
dspgst( itype, uplo, n, ap, bp, info )
232 CALL
dspev( jobz, uplo, n, ap, w, z, ldz, work, info )
241 IF( itype.EQ.1 .OR. itype.EQ.2 )
THEN
253 CALL
dtpsv( uplo, trans,
'Non-unit', n, bp, z( 1, j ),
257 ELSE IF( itype.EQ.3 )
THEN
269 CALL
dtpmv( uplo, trans,
'Non-unit', n, bp, z( 1, j ),