cupynumeric.linalg.eigh#

cupynumeric.linalg.eigh(
a: ndarray,
UPLO: str = 'L',
) tuple[ndarray, ...]#

Compute the eigenvalues and right eigenvectors of a square array.

Parameters:
  • a ((..., M, M) array_like) – Matrices for which the eigenvalues and right eigenvectors will be computed, at least dimension 2.

  • {'L' (UPLO) – Specifies whether the calculation is done with the lower triangular part of a (‘L’, default) or the upper triangular part (‘U’). Irrespective of this value only the real parts of the diagonal will be considered in the computation to preserve the notion of a Hermitian matrix. It therefore follows that the imaginary part of the diagonal will always be treated as zero.

  • 'U'} – Specifies whether the calculation is done with the lower triangular part of a (‘L’, default) or the upper triangular part (‘U’). Irrespective of this value only the real parts of the diagonal will be considered in the computation to preserve the notion of a Hermitian matrix. It therefore follows that the imaginary part of the diagonal will always be treated as zero.

  • optional – Specifies whether the calculation is done with the lower triangular part of a (‘L’, default) or the upper triangular part (‘U’). Irrespective of this value only the real parts of the diagonal will be considered in the computation to preserve the notion of a Hermitian matrix. It therefore follows that the imaginary part of the diagonal will always be treated as zero.

Returns:

  • eigenvalues ((…, M) array_like) – The eigenvalues in ascending order, each repeated according to its multiplicity.

  • eigenvectors ((…, M, M) array) – The normalized (unit “length”) eigenvectors, such that the column eigenvectors[:,i] is the eigenvector corresponding to the eigenvalue eigenvalues[i].

Raises:

LinAlgError – If the eigenvalue computation does not converge.

Notes

Multi-GPU/CPU usage is limited to data parallel matrix-wise batching.

Availability:

Multiple GPUs, Multiple CPUs