cupy.linalg.eigh#

cupy.linalg.eigh(a, UPLO='L')[source]#

Return the eigenvalues and eigenvectors of a complex Hermitian (conjugate symmetric) or a real symmetric matrix.

Returns two objects, a 1-D array containing the eigenvalues of a, and a 2-D square array or matrix (depending on the input type) of the corresponding eigenvectors (in columns).

Parameters:
  • a (cupy.ndarray) – A symmetric 2-D square matrix (M, M) or a batch of symmetric 2-D square matrices (..., M, M).

  • UPLO (str) – Select from 'L' or 'U'. It specifies which part of a is used. 'L' uses the lower triangular part of a, and 'U' uses the upper triangular part of a.

Returns:

Returns a tuple (w, v). w contains eigenvalues and v contains eigenvectors. v[:, i] is an eigenvector corresponding to an eigenvalue w[i]. For batch input, v[k, :, i] is an eigenvector corresponding to an eigenvalue w[k, i] of a[k].

Return type:

tuple of ndarray

Warning

This function calls one or more cuSOLVER routine(s) which may yield invalid results if input conditions are not met. To detect these invalid results, you can set the linalg configuration to a value that is not ignore in cupyx.errstate() or cupyx.seterr().