Developer Reference for Intel® oneAPI Math Kernel Library for C

ID 766684
Date 10/31/2024
Public
Document Table of Contents

?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

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*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.

Input Parameters

n

The length of all arrays.

i

The index of the eigenvalue to be computed. 1 ≤ in.

d

Array, DIMENSION (n).

The original eigenvalues. They must be in order, 0 ≤ d(i) < d(j) for i < j.

z

Array, DIMENSION (n).

The components of the updating vector.

rho

The scalar in the symmetric updating formula.

work

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

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

The computed sigma_i, the i-th updated eigenvalue.

info

= 0: successful exit

> 0: If info = 1, the updating process failed.