# Function compute_hermitian_evd

```
pub fn compute_hermitian_evd<E>(
matrix: MatRef<'_, E>,
s: ColMut<'_, E>,
u: Option<MatMut<'_, E>>,
parallelism: Parallelism<'_>,
stack: PodStack<'_>,
params: HermitianEvdParams,
)where
E: ComplexField,
```

## Expand description

Computes the eigenvalue decomposition of a square Hermitian `matrix`

. Only the lower triangular
half of the matrix is accessed.

`s`

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

If `u`

is `None`

, then only the eigenvalues are computed. Otherwise, the eigenvectors are
computed and stored in `u`

.

## ยง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_hermitian_evd_req`

).