Function compute_svd
pub fn compute_svd<E>(
matrix: MatRef<'_, E>,
s: ColMut<'_, E>,
u: Option<MatMut<'_, E>>,
v: Option<MatMut<'_, E>>,
parallelism: Parallelism<'_>,
stack: PodStack<'_>,
params: SvdParams,
)where
E: ComplexField,
Expand description
Computes the singular value decomposition of matrix
.
s
represents the main diagonal of the matrix $S$, and must have size equal to the minimum of
matrix.nrows()
and matrix.ncols()
.
For each of u
and v
:
- If the argument is
None
, then the corresponding singular vector matrix is not computed. - If it is
Some(..)
, then it must have a number of rows equal tomatrix.nrows()
foru
, andmatrix.ncols()
forv
. - The number of columns may be either equal to the number of rows, or it may be equal to the
minimum of
matrix.nrows()
andmatrix.ncols()
, in which case only the singular vectors corresponding to the provided column storage are computed.
ยงPanics
Panics if any of the conditions described above is violated, or if the type E
does not have a
fixed precision at compile time, e.g. a dynamic multiprecision floating point type.
This can also panic if the provided memory in stack
is insufficient (see compute_svd_req
).