lasdq#
Functions
-
void slasdq(const char *uplo, const INT sqre, const INT n, const INT ncvt, const INT nru, const INT ncc, f32 *restrict D, f32 *restrict E, f32 *restrict VT, const INT ldvt, f32 *restrict U, const INT ldu, f32 *restrict C, const INT ldc, f32 *restrict work, INT *info)#
SLASDQ computes the singular value decomposition (SVD) of a real (upper or lower) bidiagonal matrix with diagonal D and offdiagonal E, accumulating the transformations if desired.
The singular values S are overwritten on D.
Parameters
inuplo‘U’ or ‘u’: B is upper bidiagonal. ‘L’ or ‘l’: B is lower bidiagonal.
insqre= 0: input matrix is N-by-N. = 1: input matrix is N-by-(N+1) if uplo=’U’, or (N+1)-by-N if uplo=’L’.
innNumber of rows and columns. n >= 0.
inncvtNumber of columns of VT. ncvt >= 0.
innruNumber of rows of U. nru >= 0.
innccNumber of columns of C. ncc >= 0.
inoutDArray of dimension n. Diagonal entries on entry, singular values in ascending order on exit.
inoutEArray. Offdiagonal entries on entry, zeroed on exit.
inoutVTArray (ldvt, ncvt). Premultiplied by P^T.
inldvtLeading dimension of VT. ldvt >= 1, >= n if ncvt > 0.
inoutUArray (ldu, n). Postmultiplied by Q.
inlduLeading dimension of U. ldu >= max(1, nru).
inoutCArray (ldc, ncc). Premultiplied by Q^T.
inldcLeading dimension of C. ldc >= 1, >= n if ncc > 0.
outworkArray of dimension 4*n.
outinfo= 0: success. < 0: illegal argument. > 0: not converged.
void slasdq(
const char* uplo,
const INT sqre,
const INT n,
const INT ncvt,
const INT nru,
const INT ncc,
f32* restrict D,
f32* restrict E,
f32* restrict VT,
const INT ldvt,
f32* restrict U,
const INT ldu,
f32* restrict C,
const INT ldc,
f32* restrict work,
INT* info
);
Functions
-
void dlasdq(const char *uplo, const INT sqre, const INT n, const INT ncvt, const INT nru, const INT ncc, f64 *restrict D, f64 *restrict E, f64 *restrict VT, const INT ldvt, f64 *restrict U, const INT ldu, f64 *restrict C, const INT ldc, f64 *restrict work, INT *info)#
DLASDQ computes the singular value decomposition (SVD) of a real (upper or lower) bidiagonal matrix with diagonal D and offdiagonal E, accumulating the transformations if desired.
The singular values S are overwritten on D.
Parameters
inuplo‘U’ or ‘u’: B is upper bidiagonal. ‘L’ or ‘l’: B is lower bidiagonal.
insqre= 0: input matrix is N-by-N. = 1: input matrix is N-by-(N+1) if uplo=’U’, or (N+1)-by-N if uplo=’L’.
innNumber of rows and columns. n >= 0.
inncvtNumber of columns of VT. ncvt >= 0.
innruNumber of rows of U. nru >= 0.
innccNumber of columns of C. ncc >= 0.
inoutDArray of dimension n. Diagonal entries on entry, singular values in ascending order on exit.
inoutEArray. Offdiagonal entries on entry, zeroed on exit.
inoutVTArray (ldvt, ncvt). Premultiplied by P^T.
inldvtLeading dimension of VT. ldvt >= 1, >= n if ncvt > 0.
inoutUArray (ldu, n). Postmultiplied by Q.
inlduLeading dimension of U. ldu >= max(1, nru).
inoutCArray (ldc, ncc). Premultiplied by Q^T.
inldcLeading dimension of C. ldc >= 1, >= n if ncc > 0.
outworkArray of dimension 4*n.
outinfo= 0: success. < 0: illegal argument. > 0: not converged.
void dlasdq(
const char* uplo,
const INT sqre,
const INT n,
const INT ncvt,
const INT nru,
const INT ncc,
f64* restrict D,
f64* restrict E,
f64* restrict VT,
const INT ldvt,
f64* restrict U,
const INT ldu,
f64* restrict C,
const INT ldc,
f64* restrict work,
INT* info
);