Intel® oneAPI Math Kernel Library Developer Reference - C
Computes the square root of the i-th updated eigenvalue of a positive symmetric rank-one modification to a positive diagonal matrix. Used by ?bdsdc.
void slasd4( lapack_int *n, lapack_int *i, float *d, float *z, float *delta, float *rho, float *sigma, float *work, lapack_int *info);
void dlasd4( lapack_int *n, lapack_int *i, double *d, double *z, double *delta, double *rho, double *sigma, double *work, lapack_int *info);
The routine computes the square root of the i-th updated eigenvalue of a positive symmetric rank-one modification to a positive diagonal matrix whose entries are given as the squares of the corresponding entries in the array d, and that 0 ≤ d(i) < d(j) for i < j and that rho > 0. This is arranged by the calling routine, and is no loss in generality. The rank-one modified system is thus
diag(d)*diag(d) + rho*Z*ZT,
where the Euclidean norm of Z is equal to 1.The method consists of approximating the rational functions in the secular equation by simpler interpolating rational functions.
The length of all arrays.
The index of the eigenvalue to be computed. 1 ≤ i ≤ n.
Array, DIMENSION (n).
The original eigenvalues. They must be in order, 0 ≤ d(i) < d(j) for i < j.
Array, DIMENSION (n).
The components of the updating vector.
The scalar in the symmetric updating formula.
Workspace array, DIMENSION (n ).
If n≠ 1, work contains (d(j) + sigma_i) in its j-th component.
If n = 1, then work( 1 ) = 1.
Array, DIMENSION (n).
If n≠ 1, delta contains (d(j) - sigma_i) in its j-th component.
If n = 1, then delta (1) = 1. The vector delta contains the information necessary to construct the (singular) eigenvectors.
The computed sigma_i, the i-th updated eigenvalue.
= 0: successful exit
> 0: If info = 1, the updating process failed.