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
For zero input matrix, fails with "starting vector is zero" #215
Comments
|
Yes, the problem could be related with #79 (force the initial vector to be in the range). In #142 there is a further modification which should manage rank deficient matrices. This case is the most rank deficient matrix. I think it should be enough simply not to check whether the initial vector is zero (around line 324 of dnaup2.f and related). In fact, after the first try, the initial vector is no more forced to be in the range (this was the outcome of #142). By the way, this issue should appear also with 3.5.0, by selecting the generalized problem with the zero input matrix and the identity matrix B. But you need plain arpack to check, not octave. |
|
I verified that arpack 3.5.0 with a dummy generalized problem with the zero input matrix and the identity matrix B stops with "starting vector is zero". |
|
Any ideas here? This is also breaking some tests when building the R igraph package with arpack 3.7.0. |
|
I think I found a workaround at the time, give me a week or so. |
|
This is my proposal that is, after the computation of the initial vector (in the range of the operator), if it is zero and was not provided by the user, generate a random vector as initial vector and continue. If acceptable, the four *getv0.f should be modified and a proper test added. |
|
Thanks for the patch. It does not fix igraph, but I just realized it isn't failing in |
|
Thanks, I will investigate why the problem is still there for the symmetric case. |
|
This is the error before my patch and this is the result after I tested driver dsdrv1 with the zero input matrix. Of corse there are NANs because the driver computes relative errors. As you see, all the computed eigenvalues are zero. So, my patch fixes the problem for me. |
|
Has a patch been merged for this? |
|
You likely need to shift a bit as the eigne value is zero? Checkout out #408 |
Expected behavior
With ARPACK 3.5.0 this works:
Actual behavior
With ARPACK 3.7.0 and 3.6.0:
Notes, remarks
This is probably from the same changes as #142: forcing the initial vector to the range of a zero matrix produces a zero initial vector, which fails. The
*getv0routines could perhaps check ifresidis a zero vector, and (in the non-generalized cases?), skip the forcing to the range?The text was updated successfully, but these errors were encountered: