Developer Reference for Intel® oneAPI Math Kernel Library for C
?lasd4
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 .
Syntax
call slasd4(n, i, d, z, delta, rho, sigma, work, info)
call dlasd4(n, i, d, z, delta, rho, sigma, work, info)
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);
Include Files
mkl.h
Description
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*Z^{T} ,
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.
Input Parameters
n
The length of all arrays.
i
The index of the eigenvalue to be computed. 1 ≤ i ≤ n .
- d
-
REAL for slasd4 DOUBLE PRECISION for dlasd4 Array, DIMENSION ( n ). The original eigenvalues. They must be in order, 0 ≤ d(i) < d(j) for i < j .
- z
-
REAL for slasd4 DOUBLE PRECISION for dlasd4 Array, DIMENSION ( n ). The components of the updating vector.
- rho
-
REAL for slasd4 DOUBLE PRECISION for dlasd4 The scalar in the symmetric updating formula.
- work
-
REAL for slasd4 DOUBLE PRECISION for dlasd4 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 .
Output Parameters
- delta
-
REAL for slasd4 DOUBLE PRECISION for dlasd4 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.
- sigma
-
REAL for slasd4 DOUBLE PRECISION for dlasd4 The computed sigma_i , the i -th updated eigenvalue.
info
= 0: successful exit
> 0: If info = 1 , the updating process failed.