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