?laed9

Used by sstedc/dstedc. Finds the roots of the secular equation and updates the eigenvectors. Used when the original matrix is dense.

Syntax

call slaed9( k, kstart, kstop, n, d, q, ldq, rho, dlamda, w, s, lds, info )

call dlaed9( k, kstart, kstop, n, d, q, ldq, rho, dlamda, w, s, lds, info )

Include Files

  • mkl.fi

Description

The routine finds the roots of the secular equation, as defined by the values in d, z, and rho, between kstart and kstop. It makes the appropriate calls to slaed4/dlaed4 and then stores the new matrix of eigenvectors for use in calculating the next level of z vectors.

Input Parameters

k

INTEGER. The number of terms in the rational function to be solved by slaed4/dlaed4 (k 0).

kstart, kstop

INTEGER. The updated eigenvalues lambda(i),

kstart ≤ i ≤ kstop are to be computed.

1 ≤ kstartkstopk.

n

INTEGER. The number of rows and columns in the Q matrix. n k (deflation may result in n > k).

q

REAL for slaed9

DOUBLE PRECISION for dlaed9.

Workspace array, dimension (ldq, *).

The second dimension of q must be at least max(1, n).

ldq

INTEGER. The leading dimension of the array q; ldq max(1, n).

rho

REAL for slaed9

DOUBLE PRECISION for dlaed9

The value of the parameter in the rank one update equation. rho 0 required.

dlamda, w

REAL for slaed9

DOUBLE PRECISION for dlaed9

Arrays, dimension (k) each. The first k elements of the array dlamda(*) contain the old roots of the deflated updating problem. These are the poles of the secular equation.

The first k elements of the array w(*) contain the components of the deflation-adjusted updating vector.

lds

INTEGER. The leading dimension of the output array s; lds max(1, k).

Output Parameters

d

REAL for slaed9

DOUBLE PRECISION for dlaed9

Array, dimension (n). Elements in d(i) are not referenced for 1 ≤ i < kstart or kstop < in.

s

REAL for slaed9

DOUBLE PRECISION for dlaed9.

Array, dimension (lds, *) .

The second dimension of s must be at least max(1, k). Will contain the eigenvectors of the repaired matrix which will be stored for subsequent z vector calculation and multiplied by the previously accumulated eigenvectors to update the system.

dlamda

On exit, the value is modified to make sure all dlamda(i) - dlamda(j) can be computed with high relative accuracy, barring overflow and underflow.

w

Destroyed on exit.

info

INTEGER.

If info = 0, the execution is successful.

If info = -i, the i-th parameter had an illegal value. If info = 1, the eigenvalue did not converge.

For more complete information about compiler optimizations, see our Optimization Notice.