Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add complex number support to eigh and eigvalsh #543

Merged
merged 4 commits into from
Dec 14, 2022
Merged

Add complex number support to eigh and eigvalsh #543

merged 4 commits into from
Dec 14, 2022

Conversation

kgryte
Copy link
Contributor

@kgryte kgryte commented Dec 1, 2022

This PR

  • adds complex number support to eigh and eigvalsh.
  • follows PyTorch and NumPy in requiring that eigenvalues be returned as real-valued floating-point arrays.
  • requires that complex input arrays be Hermitian.
  • the precision of the eigenvalue array must match that of the input array.

@kgryte kgryte added API change Changes to existing functions or objects in the API. topic: Complex Data Types Complex number data types. topic: Linear Algebra Linear algebra. labels Dec 1, 2022
@kgryte kgryte added this to the v2022 milestone Dec 1, 2022
Copy link
Member

@rgommers rgommers left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM modulo my one question on (non-)orthogonality of eigenvectors.

spec/API_specification/array_api/linalg.py Show resolved Hide resolved
Whether an array library explicitly checks whether an input array is Hermitian or a symmetric matrix (or a stack of matrices) is implementation-defined.

.. note::
The function ``eig`` will be added in a future version of the specification.
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I refreshed my memory on this point. There is gh-113 and #403 (comment), so yes there seems to be demand and hence this note seems fine.

@rgommers rgommers merged commit b3f2829 into main Dec 14, 2022
@rgommers rgommers deleted the cmplx-eigh branch December 14, 2022 20:34
This pull request was closed.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
API change Changes to existing functions or objects in the API. topic: Complex Data Types Complex number data types. topic: Linear Algebra Linear algebra.
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants