LAPACK 3.12.1
LAPACK: Linear Algebra PACKage
|
subroutine dlasd0 | ( | integer | n, |
integer | sqre, | ||
double precision, dimension( * ) | d, | ||
double precision, dimension( * ) | e, | ||
double precision, dimension( ldu, * ) | u, | ||
integer | ldu, | ||
double precision, dimension( ldvt, * ) | vt, | ||
integer | ldvt, | ||
integer | smlsiz, | ||
integer, dimension( * ) | iwork, | ||
double precision, dimension( * ) | work, | ||
integer | info ) |
DLASD0 computes the singular values of a real upper bidiagonal n-by-m matrix B with diagonal d and off-diagonal e. Used by sbdsdc.
Download DLASD0 + dependencies [TGZ] [ZIP] [TXT]
!> !> Using a divide and conquer approach, DLASD0 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. !> !> A related subroutine, DLASDA, computes only the singular values, !> and optionally, the singular vectors in compact form. !>
[in] | N | !> N is INTEGER !> On entry, the row dimension of the upper bidiagonal matrix. !> This is also the dimension of the main diagonal array D. !> |
[in] | SQRE | !> SQRE is INTEGER !> Specifies the column dimension of the bidiagonal matrix. !> = 0: The bidiagonal matrix has column dimension M = N; !> = 1: The bidiagonal matrix has column dimension M = N+1; !> |
[in,out] | D | !> D is DOUBLE PRECISION array, dimension (N) !> On entry D contains the main diagonal of the bidiagonal !> matrix. !> On exit D, if INFO = 0, contains its singular values. !> |
[in,out] | E | !> E is DOUBLE PRECISION array, dimension (M-1) !> Contains the subdiagonal entries of the bidiagonal matrix. !> On exit, E has been destroyed. !> |
[in,out] | U | !> U is DOUBLE PRECISION array, dimension (LDU, N) !> On exit, U contains the left singular vectors, !> if U passed in as (N, N) Identity. !> |
[in] | LDU | !> LDU is INTEGER !> On entry, leading dimension of U. !> |
[in,out] | VT | !> VT is DOUBLE PRECISION array, dimension (LDVT, M) !> On exit, VT**T contains the right singular vectors, !> if VT passed in as (M, M) Identity. !> |
[in] | LDVT | !> LDVT is INTEGER !> On entry, leading dimension of VT. !> |
[in] | SMLSIZ | !> SMLSIZ is INTEGER !> On entry, maximum size of the subproblems at the !> bottom of the computation tree. !> |
[out] | IWORK | !> IWORK is INTEGER array, dimension (8*N) !> |
[out] | WORK | !> WORK is DOUBLE PRECISION array, dimension (3*M**2+2*M) !> |
[out] | INFO | !> INFO is INTEGER !> = 0: successful exit. !> < 0: if INFO = -i, the i-th argument had an illegal value. !> > 0: if INFO = 1, a singular value did not converge !> |
Definition at line 148 of file dlasd0.f.