254      SUBROUTINE slaed7( ICOMPQ, N, QSIZ, TLVLS, CURLVL, CURPBM, D,
 
  256     $                   LDQ, INDXQ, RHO, CUTPNT, QSTORE, QPTR, PRMPTR,
 
  257     $                   PERM, GIVPTR, GIVCOL, GIVNUM, WORK, IWORK,
 
  265      INTEGER            CURLVL, CURPBM, CUTPNT, ICOMPQ, INFO, LDQ, N,
 
  270      INTEGER            GIVCOL( 2, * ), GIVPTR( * ), INDXQ( * ),
 
  271     $                   iwork( * ), perm( * ), prmptr( * ), qptr( * )
 
  272      REAL               D( * ), GIVNUM( 2, * ), Q( LDQ, * ),
 
  273     $                   QSTORE( * ), WORK( * )
 
  280      PARAMETER          ( ONE = 1.0e0, zero = 0.0e0 )
 
  283      INTEGER            COLTYP, CURR, I, IDLMDA, INDX, INDXC, INDXP,
 
  284     $                   iq2, is, iw, iz, k, ldq2, n1, n2, ptr
 
  299      IF( icompq.LT.0 .OR. icompq.GT.1 ) 
THEN 
  301      ELSE IF( n.LT.0 ) 
THEN 
  303      ELSE IF( icompq.EQ.1 .AND. qsiz.LT.n ) 
THEN 
  305      ELSE IF( ldq.LT.max( 1, n ) ) 
THEN 
  307      ELSE IF( min( 1, n ).GT.cutpnt .OR. n.LT.cutpnt ) 
THEN 
  311         CALL xerbla( 
'SLAED7', -info )
 
  324      IF( icompq.EQ.1 ) 
THEN 
  345      DO 10 i = 1, curlvl - 1
 
  346         ptr = ptr + 2**( tlvls-i )
 
  349      CALL slaeda( n, tlvls, curlvl, curpbm, prmptr, perm, givptr,
 
  350     $             givcol, givnum, qstore, qptr, work( iz ),
 
  351     $             work( iz+n ), info )
 
  357      IF( curlvl.EQ.tlvls ) 
THEN 
  365      CALL slaed8( icompq, k, n, qsiz, d, q, ldq, indxq, rho, cutpnt,
 
  366     $             work( iz ), work( idlmda ), work( iq2 ), ldq2,
 
  367     $             work( iw ), perm( prmptr( curr ) ), givptr( curr+1 ),
 
  368     $             givcol( 1, givptr( curr ) ),
 
  369     $             givnum( 1, givptr( curr ) ), iwork( indxp ),
 
  370     $             iwork( indx ), info )
 
  371      prmptr( curr+1 ) = prmptr( curr ) + n
 
  372      givptr( curr+1 ) = givptr( curr+1 ) + givptr( curr )
 
  377         CALL slaed9( k, 1, k, n, d, work( is ), k, rho,
 
  379     $                work( iw ), qstore( qptr( curr ) ), k, info )
 
  382         IF( icompq.EQ.1 ) 
THEN 
  383            CALL sgemm( 
'N', 
'N', qsiz, k, k, one, work( iq2 ), ldq2,
 
  384     $                  qstore( qptr( curr ) ), k, zero, q, ldq )
 
  386         qptr( curr+1 ) = qptr( curr ) + k**2
 
  392         CALL slamrg( n1, n2, d, 1, -1, indxq )
 
  394         qptr( curr+1 ) = qptr( curr )
 
 
subroutine slaed7(icompq, n, qsiz, tlvls, curlvl, curpbm, d, q, ldq, indxq, rho, cutpnt, qstore, qptr, prmptr, perm, givptr, givcol, givnum, work, iwork, info)
SLAED7 used by SSTEDC. Computes the updated eigensystem of a diagonal matrix after modification by a ...
subroutine slaed8(icompq, k, n, qsiz, d, q, ldq, indxq, rho, cutpnt, z, dlambda, q2, ldq2, w, perm, givptr, givcol, givnum, indxp, indx, info)
SLAED8 used by SSTEDC. Merges eigenvalues and deflates secular equation. Used when the original matri...
subroutine slaed9(k, kstart, kstop, n, d, q, ldq, rho, dlambda, w, s, lds, info)
SLAED9 used by SSTEDC. Finds the roots of the secular equation and updates the eigenvectors....
subroutine slaeda(n, tlvls, curlvl, curpbm, prmptr, perm, givptr, givcol, givnum, q, qptr, z, ztemp, info)
SLAEDA used by SSTEDC. Computes the Z vector determining the rank-one modification of the diagonal ma...