Developer Reference for Intel® oneAPI Math Kernel Library for C
?lasd9
Finds the square roots of the roots of the secular equation, and stores, for each element in D , the distance to its two nearest poles. Used by ?bdsdc .
Syntax
call slasd9 ( icompq , ldu , k , d , z , vf , vl , difl , difr , dsigma , work , info )
call dlasd9 ( icompq , ldu , k , d , z , vf , vl , difl , difr , dsigma , work , info )
void slasd9 ( lapack_int*icompq , lapack_int*k , float*d , float*z , float*vf , float*vl , float*difl , float*difr , float*dsigma , float*work , lapack_int*info );
void dlasd9 ( lapack_int*icompq , lapack_int*k , double*d , double*z , double*vf , double*vl , double*difl , double*difr , double*dsigma , double*work , lapack_int*info );
Include Files
mkl.h
Description
slasd9 dlasd9
The routine ?lasd9 finds the square roots of the roots of the secular equation, as defined by the values in dsigma and z . It makes the appropriate calls to ?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.) , and stores, for each element in d , the distance to its two nearest poles (elements in dsigma ). It also updates the arrays vf and vl , the first and last components of all the right singular vectors of the original bidiagonal matrix. ?lasd9 is called from ?lasd7 (Merges the two sets of singular values together into a single sorted set. Then it tries to deflate the size of the problem. Used by ?bdsdc.) .
Input Parameters
icompq
Specifies whether singular vectors are to be computed in factored form in the calling routine:
If icompq = 0 , compute singular values only; If icompq = 1 , compute singular vector matrices in factored form also.
k
The number of terms in the rational function to be solved by slasd4 . k≥ 1 .
- dsigma
-
REAL for slasd9 DOUBLE PRECISION for dlasd9 . Array, DIMENSION ( k ). The first k elements of this array contain the old roots of the deflated updating problem. These are the poles of the secular equation.
- z
-
REAL for slasd9 DOUBLE PRECISION for dlasd9 . Array, DIMENSION ( k ). The first k elements of this array contain the components of the deflation-adjusted updating row vector.
- vf
-
REAL for slasd9 DOUBLE PRECISION for dlasd9 . Array, DIMENSION ( k ). On entry, vf contains information passed through sbede8 .
- vl
-
REAL for slasd9 DOUBLE PRECISION for dlasd9 . Array, DIMENSION ( k ). On entry, vl contains information passed through sbede8 .
- work
-
REAL for slasd9 DOUBLE PRECISION for dlasd9 . Workspace array, DIMENSION at least (3 k ).
Output Parameters
- d
-
REAL for slasd9 DOUBLE PRECISION for dlasd9 . Array, DIMENSION ( k ). d(i) contains the updated singular values.
- vf
-
On exit, vf contains the first k components of the first components of all right singular vectors of the bidiagonal matrix.
- vl
-
On exit, vl contains the first k components of the last components of all right singular vectors of the bidiagonal matrix.
- difl
-
REAL for slasd9 DOUBLE PRECISION for dlasd9 . Array, DIMENSION ( k ). On exit, difl(i) = d(i) - dsigma(i) .
- difr
-
REAL for slasd9 DOUBLE PRECISION for dlasd9 . Array, DIMENSION ( ldu , 2) if icompq =1 and DIMENSION ( k ) if icompq = 0 . On exit, difr(i, 1) = d(i) - dsigma(i+1) , difr ( k , 1) is not defined and will not be referenced. If icompq = 1 , difr(1:k, 2) is an array containing the normalizing factors for the right singular vector matrix.
info
INTEGER .
= 0: successful exit.
< 0: if info = -i , the i -th argument had an illegal value.
> 0: If info = 1 , an singular value did not converge