146 SUBROUTINE cpteqr( COMPZ, N, D, E, Z, LDZ, WORK, INFO )
158 REAL d( * ), e( * ), work( * )
166 parameter( czero = ( 0.0e+0, 0.0e+0 ),
167 $ cone = ( 1.0e+0, 0.0e+0 ) )
177 COMPLEX 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(
'CPTEQR', -info )
224 $ CALL
claset(
'Full', n, n, czero, cone, z, ldz )
228 CALL
spttrf( 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
cbdsqr(
'Lower', n, 0, nru, 0, d, e, vt, 1, z, ldz, c, 1,
253 d( i ) = d( i )*d( i )
subroutine claset(UPLO, M, N, ALPHA, BETA, A, LDA)
CLASET initializes the off-diagonal elements and the diagonal elements of a matrix to given values...
LOGICAL function lsame(CA, CB)
LSAME
subroutine xerbla(SRNAME, INFO)
XERBLA
subroutine cpteqr(COMPZ, N, D, E, Z, LDZ, WORK, INFO)
CPTEQR
subroutine spttrf(N, D, E, INFO)
SPTTRF
subroutine cbdsqr(UPLO, N, NCVT, NRU, NCC, D, E, VT, LDVT, U, LDU, C, LDC, RWORK, INFO)
CBDSQR