146 SUBROUTINE dpteqr( COMPZ, N, D, E, Z, LDZ, WORK, INFO )
158 DOUBLE PRECISION D( * ), E( * ), WORK( * ), Z( ldz, * )
164 DOUBLE PRECISION ZERO, ONE
165 parameter( zero = 0.0d0, one = 1.0d0 )
175 DOUBLE PRECISION C( 1, 1 ), VT( 1, 1 )
178 INTEGER I, ICOMPZ, NRU
189 IF( lsame( compz,
'N' ) )
THEN 191 ELSE IF( lsame( compz,
'V' ) )
THEN 193 ELSE IF( lsame( compz,
'I' ) )
THEN 198 IF( icompz.LT.0 )
THEN 200 ELSE IF( n.LT.0 )
THEN 202 ELSE IF( ( ldz.LT.1 ) .OR. ( icompz.GT.0 .AND. ldz.LT.max( 1,
207 CALL xerbla(
'DPTEQR', -info )
222 $
CALL dlaset(
'Full', n, n, zero, one, z, ldz )
226 CALL dpttrf( n, d, e, info )
230 d( i ) = sqrt( d( i ) )
233 e( i ) = e( i )*d( i )
239 IF( icompz.GT.0 )
THEN 244 CALL dbdsqr(
'Lower', n, 0, nru, 0, d, e, vt, 1, z, ldz, c, 1,
251 d( i ) = d( i )*d( i )
subroutine dpttrf(N, D, E, INFO)
DPTTRF
subroutine dbdsqr(UPLO, N, NCVT, NRU, NCC, D, E, VT, LDVT, U, LDU, C, LDC, WORK, INFO)
DBDSQR
subroutine dpteqr(COMPZ, N, D, E, Z, LDZ, WORK, INFO)
DPTEQR
subroutine dlaset(UPLO, M, N, ALPHA, BETA, A, LDA)
DLASET initializes the off-diagonal elements and the diagonal elements of a matrix to given values...
subroutine xerbla(SRNAME, INFO)
XERBLA