158 SUBROUTINE dspgv( ITYPE, JOBZ, UPLO, N, AP, BP, W, Z, LDZ, WORK,
167 INTEGER INFO, ITYPE, LDZ, N
170 DOUBLE PRECISION AP( * ), BP( * ), W( * ), WORK( * ),
192 wantz = lsame( jobz,
'V' )
193 upper = lsame( uplo,
'U' )
196 IF( itype.LT.1 .OR. itype.GT.3 )
THEN
198 ELSE IF( .NOT.( wantz .OR. lsame( jobz,
'N' ) ) )
THEN
200 ELSE IF( .NOT.( upper .OR. lsame( uplo,
'L' ) ) )
THEN
202 ELSE IF( n.LT.0 )
THEN
204 ELSE IF( ldz.LT.1 .OR. ( wantz .AND. ldz.LT.n ) )
THEN
208 CALL xerbla(
'DSPGV ', -info )
219 CALL dpptrf( uplo, n, bp, info )
227 CALL dspgst( itype, uplo, n, ap, bp, info )
228 CALL dspev( jobz, uplo, n, ap, w, z, ldz, work, info )
237 IF( itype.EQ.1 .OR. itype.EQ.2 )
THEN
249 CALL dtpsv( uplo, trans,
'Non-unit', n, bp, z( 1, j ),
253 ELSE IF( itype.EQ.3 )
THEN
265 CALL dtpmv( uplo, trans,
'Non-unit', n, bp, z( 1, j ),
subroutine xerbla(srname, info)
subroutine dspev(jobz, uplo, n, ap, w, z, ldz, work, info)
DSPEV computes the eigenvalues and, optionally, the left and/or right eigenvectors for OTHER matrices
subroutine dspgst(itype, uplo, n, ap, bp, info)
DSPGST
subroutine dspgv(itype, jobz, uplo, n, ap, bp, w, z, ldz, work, info)
DSPGV
subroutine dpptrf(uplo, n, ap, info)
DPPTRF
subroutine dtpmv(uplo, trans, diag, n, ap, x, incx)
DTPMV
subroutine dtpsv(uplo, trans, diag, n, ap, x, incx)
DTPSV