# Module extendr_api::prelude::modules::evd

## Expand description

Low level implementation of the eigenvalue decomposition of a square diagonalizable matrix.

The eigenvalue decomposition of a square matrix $M$ of shape $(n, n)$ is a decomposition into two components $U$, $S$:

- $U$ has shape $(n, n)$ and is invertible,
- $S$ has shape $(n, n)$ and is a diagonal matrix,
- and finally:

$$M = U S U^{-1}.$$

If $M$ is Hermitian, then $U$ can be made unitary ($U^{-1} = U^H$), and $S$ is real valued.

## Structs§

- Hermitian eigendecomposition tuning parameters.

## Enums§

- Indicates whether the eigenvectors are fully computed, partially computed, or skipped.

## Functions§

- Computes the eigenvalue decomposition of a square complex
`matrix`

. - See
`compute_evd_complex`

. - Computes the eigenvalue decomposition of a square real
`matrix`

. - See
`compute_evd_real`

. - Computes the size and alignment of required workspace for performing an eigenvalue decomposition. The eigenvectors may be optionally computed.
- Computes the eigenvalue decomposition of a square Hermitian
`matrix`

. Only the lower triangular half of the matrix is accessed. - Computes the size and alignment of required workspace for performing a Hermitian eigenvalue decomposition. The eigenvectors may be optionally computed.
- Computes the pseudo inverse of a decomposed square Hermitian matrix.

`s`

represents the diagonal of the matrix $S$, and must have size equal to the dimension of the matrix.

`u`

represents the eigenvectors.

The result is stored into`pinv`

. - Computes the size and alignment of required workspace for performing a decomposed Hermitian matrix pseudoi inverse