Skip to content

BUG: limit the range of elements in test_{eig,eigvals}#427

Merged
ev-br merged 1 commit intodata-apis:masterfrom
ev-br:eig_range
Mar 17, 2026
Merged

BUG: limit the range of elements in test_{eig,eigvals}#427
ev-br merged 1 commit intodata-apis:masterfrom
ev-br:eig_range

Conversation

@ev-br
Copy link
Member

@ev-br ev-br commented Mar 17, 2026

Otherwise torch fails to converge if the matrix is too ill-conditioned. Notice 6.7e+111, 6.9e+128, 7e+90 values in this failing example:

>       res = linalg.eigvals(x)
E       torch._C._LinAlgError: torch.linalg.eigvals: (Batch element 1): The algorithm failed to converge because the input matrix is ill-conditioned or has too many repeated eigenvalues (error code: 6).
E       Falsifying example: test_eigvals(
E           x=tensor([[[ 0.0000e+00,  2.0000e+00,  2.0000e+00,  2.0000e+00,  2.0000e+00,
E                      2.0000e+00],
E                    [ 2.0000e+00,  2.0000e+00,  2.0000e+00,  2.0000e+00,  2.0000e+00,
E                      2.0000e+00],
E                    [ 2.0000e+00,  2.0000e+00,  2.0000e+00,  2.0000e+00,  2.0000e+00,
E                      2.0000e+00],
E                    [ 2.0000e+00,  2.0000e+00,  2.0000e+00,  2.0000e+00,  2.0000e+00,
E                      2.0000e+00],
E                    [ 2.0000e+00,  2.0000e+00,  2.0000e+00,  2.0000e+00,  2.0000e+00,
E                      2.0000e+00],
E                    [ 2.0000e+00,  2.0000e+00,  2.0000e+00,  2.0000e+00,  2.0000e+00,
E                      2.0000e+00]],
E
E                   [[ 2.0000e+00,  2.0000e+00,  2.0000e+00,  2.0000e+00,  2.0000e+00,
E                      2.0000e+00],
E                    [6.7525e+111,  2.0000e+00,  2.0000e+00, 6.9317e+128,  2.0000e+00,
E                      2.0000e+00],
E                    [ 2.0000e+00,  2.0000e+00,  2.0000e+00,  2.0000e+00,  2.0000e+00,
E                      2.0000e+00],
E                    [ 2.0000e+00,  0.0000e+00,  2.0000e+00,  2.0000e+00,  7.5592e+90,
E                      2.0000e+00],
E                    [ 2.0000e+00,  2.0000e+00,  2.0000e+00,  2.0000e+00,  2.0000e+00,
E                      2.0000e+00],
E                    [ 2.0000e+00,  2.0000e+00,  2.0000e+00,  2.0000e+00,  2.0000e+00,
E                      2.0000e+00]]], dtype=torch.float64),
E       )

array_api_tests/test_linalg.py:375: _LinAlgError

Otherwise torch fails to converge if the matrix is too ill-conditioned.
Notice 6.7e+111, 6.9e+128, 7e+90 values in this failing example:

```
>       res = linalg.eigvals(x)
E       torch._C._LinAlgError: torch.linalg.eigvals: (Batch element 1): The algorithm failed to converge because the input matrix is ill-conditioned or has too many repeated eigenvalues (error code: 6).
E       Falsifying example: test_eigvals(
E           x=tensor([[[ 0.0000e+00,  2.0000e+00,  2.0000e+00,  2.0000e+00,  2.0000e+00,
E                      2.0000e+00],
E                    [ 2.0000e+00,  2.0000e+00,  2.0000e+00,  2.0000e+00,  2.0000e+00,
E                      2.0000e+00],
E                    [ 2.0000e+00,  2.0000e+00,  2.0000e+00,  2.0000e+00,  2.0000e+00,
E                      2.0000e+00],
E                    [ 2.0000e+00,  2.0000e+00,  2.0000e+00,  2.0000e+00,  2.0000e+00,
E                      2.0000e+00],
E                    [ 2.0000e+00,  2.0000e+00,  2.0000e+00,  2.0000e+00,  2.0000e+00,
E                      2.0000e+00],
E                    [ 2.0000e+00,  2.0000e+00,  2.0000e+00,  2.0000e+00,  2.0000e+00,
E                      2.0000e+00]],
E
E                   [[ 2.0000e+00,  2.0000e+00,  2.0000e+00,  2.0000e+00,  2.0000e+00,
E                      2.0000e+00],
E                    [6.7525e+111,  2.0000e+00,  2.0000e+00, 6.9317e+128,  2.0000e+00,
E                      2.0000e+00],
E                    [ 2.0000e+00,  2.0000e+00,  2.0000e+00,  2.0000e+00,  2.0000e+00,
E                      2.0000e+00],
E                    [ 2.0000e+00,  0.0000e+00,  2.0000e+00,  2.0000e+00,  7.5592e+90,
E                      2.0000e+00],
E                    [ 2.0000e+00,  2.0000e+00,  2.0000e+00,  2.0000e+00,  2.0000e+00,
E                      2.0000e+00],
E                    [ 2.0000e+00,  2.0000e+00,  2.0000e+00,  2.0000e+00,  2.0000e+00,
E                      2.0000e+00]]], dtype=torch.float64),
E       )

array_api_tests/test_linalg.py:375: _LinAlgError
```
@ev-br
Copy link
Member Author

ev-br commented Mar 17, 2026

Merging quickly to avoid failures in unrelated PRs, e.g. data-apis/array-api-compat#405

@ev-br ev-br merged commit e0f3e37 into data-apis:master Mar 17, 2026
5 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant