slepc-main 2024-11-09
Report Typos and Errors

DSSVD

Dense Singular Value Decomposition.

Notes

The problem is expressed as A = U*Sigma*V', where A is rectangular in general, with n rows and m columns. Sigma is a diagonal matrix whose diagonal elements are the arguments of DSSolve(). After solve, A is overwritten with Sigma.

The orthogonal (or unitary) matrices of left and right singular vectors, U and V, have size n and m, respectively. The number of columns m must be specified via DSSVDSetDimensions().

If the DS object is in the intermediate state, A is assumed to be in upper bidiagonal form (possibly with an arrow) and is stored in compact format on matrix T. Otherwise, no particular structure is assumed. The compact storage is implemented for the square case only, m=n. The extra row should be interpreted in this case as an extra column.

Used DS matrices

DS_MAT_A  - problem matrix (used only if compact=false)
DS_MAT_T  - upper bidiagonal matrix
DS_MAT_U  - left singular vectors
DS_MAT_V  - right singular vectors

Implemented methods

0  - Implicit zero-shift QR for bidiagonals (_bdsqr)
1  - Divide and Conquer (_bdsdc or _gesdd)

See Also

DSCreate(), DSSetType(), DSType, DSSVDSetDimensions()

Level

beginner

Location

src/sys/classes/ds/impls/svd/dssvd.c

Index of all DS routines
Table of Contents for all manual pages
Index of all manual pages