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 ifcompact=PETSC_FALSE)DS_MAT_T- upper bidiagonal matrixDS_MAT_U- left singular vectorsDS_MAT_V- right singular vectors
Implemented methods#
0 - Implicit zero-shift QR for bidiagonals (
_bdsqr)1 - Divide and Conquer (
_bdsdcor_gesdd)
See Also#
DS: Direct Solver (or Dense System), DSCreate(), DSSetType(), DSType, DSSVDSetDimensions(), DSSetCompact()
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