lasd0#
Functions
-
void slasd0(const INT n, const INT sqre, f32 *restrict D, f32 *restrict E, f32 *restrict U, const INT ldu, f32 *restrict VT, const INT ldvt, const INT smlsiz, INT *restrict IWORK, f32 *restrict work, INT *info)#
Using a divide and conquer approach, SLASD0 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, SLASDA, computes only the singular values, and optionally, the singular vectors in compact form.
Parameters
innRow dimension of upper bidiagonal matrix.
insqre= 0: bidiagonal matrix has column dimension M = N. = 1: bidiagonal matrix has column dimension M = N+1.
inoutDArray of dimension n. Main diagonal on entry, singular values on exit.
inoutEArray of dimension m-1. Offdiagonal entries.
inoutUArray (ldu, n). Left singular vectors if U passed in as N-by-N identity.
inlduLeading dimension of U.
inoutVTArray (ldvt, m). Right singular vectors transposed if VT passed in as M-by-M identity.
inldvtLeading dimension of VT.
insmlsizMaximum size of subproblems at bottom of tree.
outIWORKInteger array of dimension 8*n.
outworkDouble array of dimension 3*m^2 + 2*m.
outinfo= 0: success. < 0: illegal argument. > 0: not converged.
void slasd0(
const INT n,
const INT sqre,
f32* restrict D,
f32* restrict E,
f32* restrict U,
const INT ldu,
f32* restrict VT,
const INT ldvt,
const INT smlsiz,
INT* restrict IWORK,
f32* restrict work,
INT* info
);
Functions
-
void dlasd0(const INT n, const INT sqre, f64 *restrict D, f64 *restrict E, f64 *restrict U, const INT ldu, f64 *restrict VT, const INT ldvt, const INT smlsiz, INT *restrict IWORK, f64 *restrict work, INT *info)#
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.
Parameters
innRow dimension of upper bidiagonal matrix.
insqre= 0: bidiagonal matrix has column dimension M = N. = 1: bidiagonal matrix has column dimension M = N+1.
inoutDArray of dimension n. Main diagonal on entry, singular values on exit.
inoutEArray of dimension m-1. Offdiagonal entries.
inoutUArray (ldu, n). Left singular vectors if U passed in as N-by-N identity.
inlduLeading dimension of U.
inoutVTArray (ldvt, m). Right singular vectors transposed if VT passed in as M-by-M identity.
inldvtLeading dimension of VT.
insmlsizMaximum size of subproblems at bottom of tree.
outIWORKInteger array of dimension 8*n.
outworkDouble array of dimension 3*m^2 + 2*m.
outinfo= 0: success. < 0: illegal argument. > 0: not converged.
void dlasd0(
const INT n,
const INT sqre,
f64* restrict D,
f64* restrict E,
f64* restrict U,
const INT ldu,
f64* restrict VT,
const INT ldvt,
const INT smlsiz,
INT* restrict IWORK,
f64* restrict work,
INT* info
);