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 cpteqr(COMPZ, N, D, E, Z, LDZ, WORK, INFO)
CPTEQR
subroutine cbdsqr(UPLO, N, NCVT, NRU, NCC, D, E, VT, LDVT, U, LDU, C, LDC, RWORK, INFO)
CBDSQR
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...
subroutine xerbla(SRNAME, INFO)
XERBLA
subroutine spttrf(N, D, E, INFO)
SPTTRF