diff --git a/pyerrors/linalg.py b/pyerrors/linalg.py index 9a549c16..cd026cf1 100644 --- a/pyerrors/linalg.py +++ b/pyerrors/linalg.py @@ -270,6 +270,8 @@ def eigh(obs, **kwargs): def eig(obs, **kwargs): """Computes the eigenvalues of a given matrix of Obs according to np.linalg.eig.""" + if version.parse(np.__version__) >= version.parse("1.25.0"): + raise NotImplementedError("eig error propagation is not working with numpy>=1.25 and autograd==1.5.") w = derived_observable(lambda x, **kwargs: anp.real(anp.linalg.eig(x)[0]), obs) return w diff --git a/tests/linalg_test.py b/tests/linalg_test.py index 149bf92a..bae39fc1 100644 --- a/tests/linalg_test.py +++ b/tests/linalg_test.py @@ -312,6 +312,13 @@ def test_matrix_functions(): for (i, j), entry in np.ndenumerate(diff): assert entry.is_zero() + else: + with pytest.raises(NotImplementedError): + pe.linalg.eigh(sym) + with pytest.raises(NotImplementedError): + pe.linalg.eig(sym) + with pytest.raises(NotImplementedError): + pe.linalg.svd(sym) # Check determinant assert pe.linalg.det(np.diag(np.diag(matrix))) == np.prod(np.diag(matrix))