146 SUBROUTINE zpteqr( COMPZ, N, D, E, Z, LDZ, WORK, INFO )
158 DOUBLE PRECISION D( * ), E( * ), WORK( * )
159 COMPLEX*16 Z( ldz, * )
165 COMPLEX*16 CZERO, CONE
166 parameter( czero = ( 0.0d+0, 0.0d+0 ),
167 $ cone = ( 1.0d+0, 0.0d+0 ) )
177 COMPLEX*16 C( 1, 1 ), VT( 1, 1 )
180 INTEGER I, ICOMPZ, NRU
191 IF( lsame( compz,
'N' ) )
THEN 193 ELSE IF( lsame( compz,
'V' ) )
THEN 195 ELSE IF( lsame( compz,
'I' ) )
THEN 200 IF( icompz.LT.0 )
THEN 202 ELSE IF( n.LT.0 )
THEN 204 ELSE IF( ( ldz.LT.1 ) .OR. ( icompz.GT.0 .AND. ldz.LT.max( 1,
209 CALL xerbla(
'ZPTEQR', -info )
224 $
CALL zlaset(
'Full', n, n, czero, cone, z, ldz )
228 CALL dpttrf( n, d, e, info )
232 d( i ) = sqrt( d( i ) )
235 e( i ) = e( i )*d( i )
241 IF( icompz.GT.0 )
THEN 246 CALL zbdsqr(
'Lower', n, 0, nru, 0, d, e, vt, 1, z, ldz, c, 1,
253 d( i ) = d( i )*d( i )
subroutine zpteqr(COMPZ, N, D, E, Z, LDZ, WORK, INFO)
ZPTEQR
subroutine zbdsqr(UPLO, N, NCVT, NRU, NCC, D, E, VT, LDVT, U, LDU, C, LDC, RWORK, INFO)
ZBDSQR
subroutine dpttrf(N, D, E, INFO)
DPTTRF
subroutine xerbla(SRNAME, INFO)
XERBLA
subroutine zlaset(UPLO, M, N, ALPHA, BETA, A, LDA)
ZLASET initializes the off-diagonal elements and the diagonal elements of a matrix to given values...