144 SUBROUTINE zpteqr( COMPZ, N, D, E, Z, LDZ, WORK, INFO )
155 DOUBLE PRECISION D( * ), E( * ), WORK( * )
156 COMPLEX*16 Z( LDZ, * )
162 COMPLEX*16 CZERO, CONE
163 parameter( czero = ( 0.0d+0, 0.0d+0 ),
164 $ cone = ( 1.0d+0, 0.0d+0 ) )
174 COMPLEX*16 C( 1, 1 ), VT( 1, 1 )
177 INTEGER I, ICOMPZ, NRU
188 IF( lsame( compz,
'N' ) )
THEN
190 ELSE IF( lsame( compz,
'V' ) )
THEN
192 ELSE IF( lsame( compz,
'I' ) )
THEN
197 IF( icompz.LT.0 )
THEN
199 ELSE IF( n.LT.0 )
THEN
201 ELSE IF( ( ldz.LT.1 ) .OR. ( icompz.GT.0 .AND. ldz.LT.max( 1,
206 CALL xerbla(
'ZPTEQR', -info )
221 $
CALL zlaset(
'Full', n, n, czero, cone, z, ldz )
225 CALL dpttrf( n, d, e, info )
229 d( i ) = sqrt( d( i ) )
232 e( i ) = e( i )*d( i )
238 IF( icompz.GT.0 )
THEN
243 CALL zbdsqr(
'Lower', n, 0, nru, 0, d, e, vt, 1, z, ldz, c, 1,
250 d( i ) = d( i )*d( i )
subroutine xerbla(srname, info)
subroutine zbdsqr(uplo, n, ncvt, nru, ncc, d, e, vt, ldvt, u, ldu, c, ldc, rwork, info)
ZBDSQR
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.
subroutine zpteqr(compz, n, d, e, z, ldz, work, info)
ZPTEQR
subroutine dpttrf(n, d, e, info)
DPTTRF