Developer Reference for Intel® oneAPI Math Kernel Library for C
?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
call slasd0 ( n , sqre , d , e , u , ldu , vt , ldvt , smlsiz , iwork , work , info )
call dlasd0 ( n , sqre , d , e , u , ldu , vt , ldvt , smlsiz , iwork , work , info )
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
slasd0 dlasd0
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 U and VT such that B = U*S*VT . The singular values S are overwritten on d .
The related subroutine ?lasda (Computes the singular value decomposition (SVD) of a real upper bidiagonal matrix with diagonal d and off-diagonal e. Used by ?bdsdc.) 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 array d .
sqre
Specifies the column dimension of the bidiagonal matrix.
If sqre = 0 : the bidiagonal matrix has column dimension m = n . If sqre = 1 : the bidiagonal matrix has column dimension m = n+1 .
- d
-
REAL for slasd0 DOUBLE PRECISION for dlasd0 Array, DIMENSION ( n ). On entry, d contains the main diagonal of the bidiagonal matrix.
- e
-
REAL for slasd0 DOUBLE PRECISION for dlasd0 Array, DIMENSION ( m -1). Contains the subdiagonal entries of the bidiagonal matrix. On exit, e is destroyed.
ldu
On entry, leading dimension of the output array u .
ldvt
On entry, leading dimension of the output array vt .
smlsiz
On entry, maximum size of the subproblems at the bottom of the computation tree.
- iwork
-
INTEGER . Workspace array, dimension must be at least (8n) .
- work
-
REAL for slasd0 DOUBLE PRECISION for dlasd0 Workspace array, dimension must be at least (3m^{2}+2m) .
Output Parameters
- d
-
On exit d , If info = 0 , contains singular values of the bidiagonal matrix.
- u
-
REAL for slasd0 DOUBLE PRECISION for dlasd0 Array, DIMENSION at least ( ldq , n ). On exit, u contains the left singular vectors.
- vt
-
REAL for slasd0 DOUBLE PRECISION for dlasd0 Array, DIMENSION at least ( ldvt , m ). On exit, vt:code:`T` contains the right singular vectors.
info
INTEGER .
If info = 0 : successful exit.
If info = -i < 0 , the i -th argument had an illegal value.
If info = 1 , a singular value did not converge.