linalg_eigvalsh function

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

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

Letting be or , the eigenvalues of a complex Hermitian or real symmetric matrix

are defined as the roots (counted with multiplicity) of the polynomial p of degree n given by

linalg_eigvalsh(A, UPLO = "L")

Arguments

  • A: (Tensor): tensor of shape (*, n, n) where * is zero or more batch dimensions consisting of symmetric or Hermitian matrices.
  • UPLO: ('L', 'U', optional): controls whether to use the upper or lower triangular part of A in the computations. Default: 'L'.

Returns

A real-valued tensor cointaining the eigenvalues even when A is complex. The eigenvalues are returned in ascending order.

Details

torch:::math_to_rd(" p(\lambda) = \operatorname{det}(A - \lambda\mathrm{I}_n)\mathrlap{\qquad \lambda \in \mathbb{R}} ")

where is the n-dimensional identity matrix.

The eigenvalues of a real symmetric or complex Hermitian matrix are always real. Supports input of float, double, cfloat and cdouble dtypes. Also supports batches of matrices, and if A is a batch of matrices then the output has the same batch dimensions. The eigenvalues are returned in ascending order.

A is assumed to be Hermitian (resp. symmetric), but this is not checked internally, instead:

  • If UPLO\ = 'L' (default), only the lower triangular part of the matrix is used in the computation.
  • If UPLO\ = 'U', only the upper triangular part of the matrix is used.

Examples

if (torch_is_installed()) { a <- torch_randn(2, 2) linalg_eigvalsh(a) }

See Also

  • linalg_eigh() computes the full eigenvalue decomposition.

Other linalg: linalg_cholesky(), linalg_cholesky_ex(), linalg_det(), linalg_eig(), linalg_eigh(), linalg_eigvals(), linalg_householder_product(), linalg_inv(), linalg_inv_ex(), linalg_lstsq(), linalg_matrix_norm(), linalg_matrix_power(), linalg_matrix_rank(), linalg_multi_dot(), linalg_norm(), linalg_pinv(), linalg_qr(), linalg_slogdet(), linalg_solve(), linalg_solve_triangular(), linalg_svd(), linalg_svdvals(), linalg_tensorinv(), linalg_tensorsolve(), linalg_vector_norm()

  • Maintainer: Daniel Falbel
  • License: MIT + file LICENSE
  • Last published: 2025-02-14