You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
At the moment, CI failures only appear in the coda tests on macos. I have xfailed the samdp tests and the mt tests using samdp in #2360. The respective code has to be removed when this issue has been fixed.
The reason this happens is because an exact eigenvalue is passed to _twosided_rqi. I think a first step to fix this would be to do a residual check before trying to invert the singular matrix theta * E - A for the first time. This will only fix the case where both, the eigenvalue and the eigenvector are exact. I will have to think about if there is a way to detect the case where the eigenvalue is exact but the eigenvector is not.
So it looks like there already is a residual check before starting _twosided_rqi. Passing exact eigenvalues to these types of algorithms is a tricky issue and I don't think other implementations have good ways of dealing with it either. The code below for example also fails with a "factor is exactly singular" error for me and the reason is exactly the same as in _twosided_rqi:
from scipy.sparse.linalg import eigs
from scipy.sparse import identity
eigs(identity(10),k=1,sigma=1)
I can only think of some "hacky" ways to fix this. E.g., always slightly perturb any initial guesses passed to _twosided_rqi or somehow catch the inversion error and add the perturbation to the initial eigenvalue guess then. Any preferences or other suggestions?
The issue pops up in CI periodically, like here.
The following code snippet reproduces the issue for me on Linux with PyPI packages:
@lbalicki, any ideas?
The text was updated successfully, but these errors were encountered: