142      SUBROUTINE dpteqr( COMPZ, N, D, E, Z, LDZ, WORK, INFO )
 
  153      DOUBLE PRECISION   D( * ), E( * ), WORK( * ), Z( LDZ, * )
 
  159      DOUBLE PRECISION   ZERO, ONE
 
  160      parameter( zero = 0.0d0, one = 1.0d0 )
 
  170      DOUBLE PRECISION   C( 1, 1 ), VT( 1, 1 )
 
  173      INTEGER            I, ICOMPZ, NRU
 
  184      IF( lsame( compz, 
'N' ) ) 
THEN 
  186      ELSE IF( lsame( compz, 
'V' ) ) 
THEN 
  188      ELSE IF( lsame( compz, 
'I' ) ) 
THEN 
  193      IF( icompz.LT.0 ) 
THEN 
  195      ELSE IF( n.LT.0 ) 
THEN 
  197      ELSE IF( ( ldz.LT.1 ) .OR. ( icompz.GT.0 .AND. ldz.LT.max( 1,
 
  202         CALL xerbla( 
'DPTEQR', -info )
 
  217     $   
CALL dlaset( 
'Full', n, n, zero, one, z, ldz )
 
  221      CALL dpttrf( n, d, e, info )
 
  225         d( i ) = sqrt( d( i ) )
 
  228         e( i ) = e( i )*d( i )
 
  234      IF( icompz.GT.0 ) 
THEN 
  239      CALL dbdsqr( 
'Lower', n, 0, nru, 0, d, e, vt, 1, z, ldz, c, 1,
 
  246            d( i ) = d( i )*d( i )
 
 
subroutine dbdsqr(uplo, n, ncvt, nru, ncc, d, e, vt, ldvt, u, ldu, c, ldc, work, info)
DBDSQR
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 dpteqr(compz, n, d, e, z, ldz, work, info)
DPTEQR