223 SUBROUTINE zhpgvd( ITYPE, JOBZ, UPLO, N, AP, BP, W, Z, LDZ, WORK,
224 $ LWORK, RWORK, LRWORK, IWORK, LIWORK, INFO )
232 INTEGER INFO, ITYPE, LDZ, LIWORK, LRWORK, LWORK, N
236 DOUBLE PRECISION RWORK( * ), W( * )
237 COMPLEX*16 AP( * ), BP( * ), WORK( * ), Z( LDZ, * )
243 LOGICAL LQUERY, UPPER, WANTZ
245 INTEGER J, LIWMIN, LRWMIN, LWMIN, NEIG
261 wantz = lsame( jobz,
'V' )
262 upper = lsame( uplo,
'U' )
263 lquery = ( lwork.EQ.-1 .OR. lrwork.EQ.-1 .OR. liwork.EQ.-1 )
266 IF( itype.LT.1 .OR. itype.GT.3 )
THEN
268 ELSE IF( .NOT.( wantz .OR. lsame( jobz,
'N' ) ) )
THEN
270 ELSE IF( .NOT.( upper .OR. lsame( uplo,
'L' ) ) )
THEN
272 ELSE IF( n.LT.0 )
THEN
274 ELSE IF( ldz.LT.1 .OR. ( wantz .AND. ldz.LT.n ) )
THEN
286 lrwmin = 1 + 5*n + 2*n**2
298 IF( lwork.LT.lwmin .AND. .NOT.lquery )
THEN
300 ELSE IF( lrwork.LT.lrwmin .AND. .NOT.lquery )
THEN
302 ELSE IF( liwork.LT.liwmin .AND. .NOT.lquery )
THEN
308 CALL xerbla(
'ZHPGVD', -info )
310 ELSE IF( lquery )
THEN
321 CALL zpptrf( uplo, n, bp, info )
329 CALL zhpgst( itype, uplo, n, ap, bp, info )
330 CALL zhpevd( jobz, uplo, n, ap, w, z, ldz, work, lwork, rwork,
331 $ lrwork, iwork, liwork, info )
332 lwmin = int( max( dble( lwmin ), dble( work( 1 ) ) ) )
333 lrwmin = int( max( dble( lrwmin ), dble( rwork( 1 ) ) ) )
334 liwmin = int( max( dble( liwmin ), dble( iwork( 1 ) ) ) )
343 IF( itype.EQ.1 .OR. itype.EQ.2 )
THEN
355 CALL ztpsv( uplo, trans,
'Non-unit', n, bp, z( 1, j ),
359 ELSE IF( itype.EQ.3 )
THEN
371 CALL ztpmv( uplo, trans,
'Non-unit', n, bp, z( 1, j ),
subroutine xerbla(srname, info)
subroutine zhpevd(jobz, uplo, n, ap, w, z, ldz, work, lwork, rwork, lrwork, iwork, liwork, info)
ZHPEVD computes the eigenvalues and, optionally, the left and/or right eigenvectors for OTHER matrice...
subroutine zhpgst(itype, uplo, n, ap, bp, info)
ZHPGST
subroutine zhpgvd(itype, jobz, uplo, n, ap, bp, w, z, ldz, work, lwork, rwork, lrwork, iwork, liwork, info)
ZHPGVD
subroutine zpptrf(uplo, n, ap, info)
ZPPTRF
subroutine ztpmv(uplo, trans, diag, n, ap, x, incx)
ZTPMV
subroutine ztpsv(uplo, trans, diag, n, ap, x, incx)
ZTPSV