mlx.core.linalg.eigvalsh

Contents

mlx.core.linalg.eigvalsh#

eigvalsh(a: array, UPLO: str = 'L', *, stream: Optional[Union[Stream, Device]] = None) array#

Compute the eigenvalues of a complex Hermitian or real symmetric matrix.

This function supports arrays with at least 2 dimensions. When the input has more than two dimensions, the eigenvalues are computed for each matrix in the last two dimensions.

Parameters:
  • a (array) – Input array. Must be a real symmetric or complex Hermitian matrix.

  • UPLO (str, optional) – Whether to use the upper ("U") or lower ("L") triangle of the matrix. Default: "L".

  • stream (Stream, optional) – Stream or device. Defaults to None in which case the default stream of the default device is used.

Returns:

The eigenvalues in ascending order.

Return type:

array

Note

The input matrix is assumed to be symmetric (or Hermitian). Only the selected triangle is used. No checks for symmetry are performed.

Example

>>> A = mx.array([[1., -2.], [-2., 1.]])
>>> eigenvalues = mx.linalg.eigvalsh(A, stream=mx.cpu)
>>> eigenvalues
array([-1., 3.], dtype=float32)