DSHSVD — SLEPc 3.25.1 documentation

Skip to main content
`Ctrl`+`K`

# DSHSVD

Dense Hyperbolic 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. \(U\) is orthogonal with respect to a signature matrix \(\Omega\), stored in \(D\), \(V\) is orthogonal, \(\Sigma\) is a diagonal matrix whose diagonal elements are the arguments of `DSSolve()`. After solve, \(A\) is overwritten with \(\Sigma\), \(D\) is overwritten with the new signature.

The 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 `DSHSVDSetDimensions()`.

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\). 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=PETSC_FALSE`)

- `DS_MAT_T` - upper bidiagonal matrix

- `DS_MAT_D` - diagonal matrix (signature)

- `DS_MAT_U` - left singular vectors

- `DS_MAT_V` - right singular vectors

## Implemented methods

- 0 - Cross product \(A^*\Omega A\)

## See Also

DS: Direct Solver (or Dense System), `DSCreate()`, `DSSetType()`, `DSType`, `DSHSVDSetDimensions()`, `DSSetCompact()`

## Level

beginner

## Location

src/sys/classes/ds/impls/hsvd/dshsvd.c

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