?lasd7
?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
.Syntax
void slasd7
(
lapack_int
*icompq
,
lapack_int
*nl
,
lapack_int
*nr
,
lapack_int
*sqre
,
lapack_int
*k
,
float
*d
,
float
*z
,
float
*zw
,
float
*vf
,
float
*vfw
,
float
*vl
,
float
*vlw
,
float
*alpha
,
float
*beta
,
float
*dsigma
,
lapack_int
*idx
,
lapack_int
*idxp
,
lapack_int
*idxq
,
lapack_int
*perm
,
lapack_int
*givptr
,
lapack_int
*givcol
,
lapack_int
*ldgcol
,
float
*givnum
,
lapack_int
*ldgnum
,
float
*c
,
float
*s
,
lapack_int
*info
);
void dlasd7
(
lapack_int
*icompq
,
lapack_int
*nl
,
lapack_int
*nr
,
lapack_int
*sqre
,
lapack_int
*k
,
double
*d
,
double
*z
,
double
*zw
,
double
*vf
,
double
*vfw
,
double
*vl
,
double
*vlw
,
double
*alpha
,
double
*beta
,
double
*dsigma
,
lapack_int
*idx
,
lapack_int
*idxp
,
lapack_int
*idxq
,
lapack_int
*perm
,
lapack_int
*givptr
,
lapack_int
*givcol
,
lapack_int
*ldgcol
,
double
*givnum
,
lapack_int
*ldgnum
,
double
*c
,
double
*s
,
lapack_int
*info
);
Include Files
- mkl.h
Description
The routine
?lasd7
merges the two sets of singular values together into a single sorted set. Then it tries to deflate the size of the problem. There are two ways in which deflation can occur: when two or more singular values are close together or if there is a tiny entry in the Z
vector. For each such occurrence the order of the related secular equation problem is reduced by one. ?lasd7
is called from ?lasd6
.Input Parameters
- icompq
- Specifies whether singular vectors are to be computed in compact form, as follows:= 0: Compute singular values only.= 1: Compute singular vectors of upper bidiagonal matrix in compact form.
- nl
- The row dimension of the upper block..nl≥1
- nr
- The row dimension of the lower block..nr≥1
- sqre
- = 0: the lower block is annr-by-nrsquare matrix.= 1: the lower block is annr-by-(nr+1) rectangular matrix. The bidiagonal matrix hasrows andn=nl+nr+ 1columns.m=n+sqre≥n
- d
- Array,DIMENSION(n). On entrydcontains the singular values of the two submatrices to be combined.
- zw
- Array,DIMENSION(m).Workspace forz.
- vf
- Array,DIMENSION(m). On entry,contains the first components of all right singular vectors of the upper block; andvf(1:nl+1)contains the first components of all right singular vectors of the lower block.vf(nl+2:m)
- vfw
- Array,DIMENSION(m).Workspace forvf.
- vl
- Array,DIMENSION(m).On entry,contains the last components of all right singular vectors of the upper block; andvl(1:nl+1)contains the last components of all right singular vectors of the lower block.vl(nl+2:m)
- VLW
- Array,DIMENSION(m).Workspace forVL.
- alpha
- REALforslasd7DOUBLE PRECISIONfordlasd7.Contains the diagonal element associated with the added row.
- beta
- Contains the off-diagonal element associated with the added row.
- idx
- Workspace array,DIMENSION(n). This will contain the permutation used to sort the contents ofdinto ascending order.
- idxp
- Workspace array,DIMENSION(n). This will contain the permutation used to place deflated values ofdat the end of the array.
- idxq
- Array,DIMENSION(n).This contains the permutation which separately sorts the two sub-problems indinto ascending order. Note that entries in the first half of this permutation must first be moved one position backward; and entries in the second half must first haveadded to their values.nl+1
- ldgcol
- The leading dimension of the output arraygivcol, must be at leastn.
- ldgnum
- The leading dimension of the output arraygivnum, must be at leastn.
Output Parameters
- k
- Contains the dimension of the non-deflated matrix, this is the order of the related secular equation.1 ≤.k≤n
- d
- On exit,dcontains the trailing (n-k) updated singular values (those which were deflated) sorted into increasing order.
- z
- Array,DIMENSION(m).On exit,Zcontains the updating row vector in the secular equation.
- vf
- On exit,vfcontains the first components of all right singular vectors of the bidiagonal matrix.
- vl
- On exit,vlcontains the last components of all right singular vectors of the bidiagonal matrix.
- dsigma
- Array,DIMENSION(n). Contains a copy of the diagonal elements (k-1 singular values and one zero) in the secular equation.
- idxp
- On output,idxp(2:k) points to the nondeflatedd-values andidxp(k+1:n) points to the deflated singular values.
- perm
- Array,DIMENSION(n).The permutations (from deflation and sorting) to be applied to each singular block. Not referenced if.icompq= 0
- givptr
- The number of Givens rotations which took place in this subproblem. Not referenced if.icompq= 0
- givcol
- Array,DIMENSION(ldgcol, 2 ). Each pair of numbers indicates a pair of columns to take place in a Givens rotation. Not referenced if.icompq= 0
- givnum
- Array,DIMENSION(ldgnum, 2 ). Each number indicates theCorSvalue to be used in the corresponding Givens rotation. Not referenced if.icompq= 0
- c
- If, thensqre=0ccontains garbage, and if, thensqre= 1ccontainsC-value of a Givens rotation related to the right null space.
- S
- If, thensqre=0scontains garbage, and if, thensqre= 1scontainsS-value of a Givens rotation related to the right null space.
- info
- = 0: successful exit.< 0: if, theinfo= -ii-th argument had an illegal value.