141      SUBROUTINE claed0( QSIZ, N, D, E, Q, LDQ, QSTORE, LDQS, RWORK,
 
  149      INTEGER            INFO, LDQ, LDQS, N, QSIZ
 
  153      REAL               D( * ), E( * ), RWORK( * )
 
  154      COMPLEX            Q( LDQ, * ), QSTORE( LDQS, * )
 
  163      parameter( two = 2.e+0 )
 
  166      INTEGER            CURLVL, CURPRB, CURR, I, IGIVCL, IGIVNM,
 
  167     $                   igivpt, indxq, iperm, iprmpt, iq, iqptr, iwrem,
 
  168     $                   j, k, lgn, ll, matsiz, msd2, smlsiz, smm1,
 
  169     $                   spm1, spm2, submat, subpbs, tlvls
 
  181      INTRINSIC          abs, int, log, max, real
 
  193      IF( qsiz.LT.max( 0, n ) ) 
THEN 
  195      ELSE IF( n.LT.0 ) 
THEN 
  197      ELSE IF( ldq.LT.max( 1, n ) ) 
THEN 
  199      ELSE IF( ldqs.LT.max( 1, n ) ) 
THEN 
  203         CALL xerbla( 
'CLAED0', -info )
 
  212      smlsiz = ilaenv( 9, 
'CLAED0', 
' ', 0, 0, 0, 0 )
 
  221      IF( iwork( subpbs ).GT.smlsiz ) 
THEN 
  222         DO 20 j = subpbs, 1, -1
 
  223            iwork( 2*j ) = ( iwork( j )+1 ) / 2
 
  224            iwork( 2*j-1 ) = iwork( j ) / 2
 
  231         iwork( j ) = iwork( j ) + iwork( j-1 )
 
  239         submat = iwork( i ) + 1
 
  241         d( smm1 ) = d( smm1 ) - abs( e( smm1 ) )
 
  242         d( submat ) = d( submat ) - abs( e( smm1 ) )
 
  250      temp = log( real( n ) ) / log( two )
 
  256      iprmpt = indxq + n + 1
 
  257      iperm = iprmpt + n*lgn
 
  258      iqptr = iperm + n*lgn
 
  259      igivpt = iqptr + n + 2
 
  260      igivcl = igivpt + n*lgn
 
  263      iq = igivnm + 2*n*lgn
 
  264      iwrem = iq + n**2 + 1
 
  267         iwork( iprmpt+i ) = 1
 
  268         iwork( igivpt+i ) = 1
 
  281            submat = iwork( i ) + 1
 
  282            matsiz = iwork( i+1 ) - iwork( i )
 
  284         ll = iq - 1 + iwork( iqptr+curr )
 
  285         CALL ssteqr( 
'I', matsiz, d( submat ), e( submat ),
 
  286     $                rwork( ll ), matsiz, rwork, info )
 
  287         CALL clacrm( qsiz, matsiz, q( 1, submat ), ldq, rwork( ll ),
 
  288     $                matsiz, qstore( 1, submat ), ldqs,
 
  290         iwork( iqptr+curr+1 ) = iwork( iqptr+curr ) + matsiz**2
 
  293            info = submat*( n+1 ) + submat + matsiz - 1
 
  297         DO 60 j = submat, iwork( i+1 )
 
  310      IF( subpbs.GT.1 ) 
THEN 
  319               submat = iwork( i ) + 1
 
  320               matsiz = iwork( i+2 ) - iwork( i )
 
  332            CALL claed7( matsiz, msd2, qsiz, tlvls, curlvl, curprb,
 
  333     $                   d( submat ), qstore( 1, submat ), ldqs,
 
  334     $                   e( submat+msd2-1 ), iwork( indxq+submat ),
 
  335     $                   rwork( iq ), iwork( iqptr ), iwork( iprmpt ),
 
  336     $                   iwork( iperm ), iwork( igivpt ),
 
  337     $                   iwork( igivcl ), rwork( igivnm ),
 
  338     $                   q( 1, submat ), rwork( iwrem ),
 
  339     $                   iwork( subpbs+1 ), info )
 
  341               info = submat*( n+1 ) + submat + matsiz - 1
 
  344            iwork( i / 2+1 ) = iwork( i+2 )
 
  359         CALL ccopy( qsiz, qstore( 1, j ), 1, q( 1, i ), 1 )
 
  361      CALL scopy( n, rwork, 1, d, 1 )
 
 
subroutine claed0(qsiz, n, d, e, q, ldq, qstore, ldqs, rwork, iwork, info)
CLAED0 used by CSTEDC. Computes all eigenvalues and corresponding eigenvectors of an unreduced symmet...
 
subroutine claed7(n, cutpnt, qsiz, tlvls, curlvl, curpbm, d, q, ldq, rho, indxq, qstore, qptr, prmptr, perm, givptr, givcol, givnum, work, rwork, iwork, info)
CLAED7 used by CSTEDC. Computes the updated eigensystem of a diagonal matrix after modification by a ...