extendr_api::prelude::modules::evd

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).