?lasd0
?lasd0
Computes the singular values of a real upper bidiagonal
n
-by-m
matrix B with diagonal d
and off-diagonal e
. Used by ?bdsdc
.Syntax
void slasd0
(
lapack_int
*n
,
lapack_int
*sqre
,
float
*d
,
float
*e
,
float
*u
,
lapack_int
*ldu
,
float
*vt
,
lapack_int
*ldvt
,
lapack_int
*smlsiz
,
lapack_int
*iwork
,
float
*work
,
lapack_int
*info
);
void dlasd0
(
lapack_int
*n
,
lapack_int
*sqre
,
double
*d
,
double
*e
,
double
*u
,
lapack_int
*ldu
,
double
*vt
,
lapack_int
*ldvt
,
lapack_int
*smlsiz
,
lapack_int
*iwork
,
double
*work
,
lapack_int
*info
);
Include Files
- mkl.h
Description
Using a divide and conquer approach, the routine
?lasd0
computes the singular value decomposition (SVD) of a real upper bidiagonal n
-by-m
matrix B
with diagonal d
and offdiagonal e
, where m
= n
+ sqre
.The algorithm computes orthogonal matrices . The singular values
U
and VT
such that B
= U
*S
*VT
S
are overwritten on d
.The related subroutine
?lasda
computes only the singular values, and optionally, the singular vectors in compact form.Input Parameters
- n
- On entry, the row dimension of the upper bidiagonal matrix. This is also the dimension of the main diagonal arrayd.
- sqre
- Specifies the column dimension of the bidiagonal matrix.If: the bidiagonal matrix has column dimensionsqre= 0m=n.If: the bidiagonal matrix has column dimensionsqre= 1.m=n+1
- d
- Array,DIMENSION(n). On entry,dcontains the main diagonal of the bidiagonal matrix.
- e
- Array,DIMENSION(m-1). Contains the subdiagonal entries of the bidiagonal matrix. On exit,eis destroyed.
- ldu
- On entry, leading dimension of the output arrayu.
- ldvt
- On entry, leading dimension of the output arrayvt.
- smlsiz
- On entry, maximum size of the subproblems at the bottom of the computation tree.
- iwork
- Workspace array,dimensionmust be at least(8.n)
- work
- Workspace array,dimensionmust be at least(3.m2+2m)
Output Parameters
- d
- On exitd, If, contains singular values of the bidiagonal matrix.info= 0
- u
- Array,DIMENSIONat least (ldq,n). On exit,ucontains the left singular vectors.
- vt
- Array,DIMENSIONat least (ldvt,m). On exit,vtcontains the right singular vectors.T
- info
- If: successful exit.info= 0If, theinfo= -i< 0i-th argument had an illegal value.If, a singular value did not converge.info= 1