154 SUBROUTINE slaed9( K, KSTART, KSTOP, N, D, Q, LDQ, RHO, DLAMBDA,
162 INTEGER INFO, K, KSTART, KSTOP, LDQ, LDS, N
166 REAL D( * ), DLAMBDA( * ), Q( LDQ, * ), S( LDS, * ),
184 INTRINSIC max, sign, sqrt
194 ELSE IF( kstart.LT.1 .OR. kstart.GT.max( 1, k ) )
THEN
196 ELSE IF( max( 1, kstop ).LT.kstart .OR. kstop.GT.max( 1, k ) )
199 ELSE IF( n.LT.k )
THEN
201 ELSE IF( ldq.LT.max( 1, k ) )
THEN
203 ELSE IF( lds.LT.max( 1, k ) )
THEN
207 CALL xerbla(
'SLAED9', -info )
216 DO 20 j = kstart, kstop
217 CALL slaed4( k, j, dlambda, w, q( 1, j ), rho, d( j ), info )
225 IF( k.EQ.1 .OR. k.EQ.2 )
THEN
228 s( j, i ) = q( j, i )
236 CALL scopy( k, w, 1, s, 1 )
240 CALL scopy( k, q, ldq+1, w, 1 )
243 w( i ) = w( i )*( q( i, j )/( dlambda( i )-dlambda( j ) ) )
246 w( i ) = w( i )*( q( i, j )/( dlambda( i )-dlambda( j ) ) )
250 w( i ) = sign( sqrt( -w( i ) ), s( i, 1 ) )
257 q( i, j ) = w( i ) / q( i, j )
259 temp = snrm2( k, q( 1, j ), 1 )
261 s( i, j ) = q( i, j ) / temp
subroutine xerbla(srname, info)
subroutine scopy(n, sx, incx, sy, incy)
SCOPY
subroutine slaed4(n, i, d, z, delta, rho, dlam, info)
SLAED4 used by SSTEDC. Finds a single root of the secular equation.
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....