-
Notifications
You must be signed in to change notification settings - Fork 126
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
Force the residual vector to be in the range of OP. (#79) #80
Conversation
Force the residual vector to be in the range of the operator OP for bmar .eq. 'I', too.
Force the residual vector to be in the range of the operator OP for bmat .eq. 'I', too.
Force the residual vector to be in the range of the operator OP for bmat .eq. 'I', too.
Force the residual vector to be in the range of the operator OP for bmat .eq. 'I', too.
When the initial vector is forced to be in the range of OP, ido is -1.
When the initial vector is forced to be in the range of OP, ido is -1.
Many thanks for your PR! Seems that this is failing: |
I forgot to add the test to add_dependencies in CMakeLists.txt? |
I forgot to add it to add_dependencies.
@turboencabulator @thrasibule |
Build script changes look good to me. |
@@ -271,9 +269,9 @@ subroutine cgetv0 | |||
c | |||
call arscnd (t2) | |||
first = .TRUE. | |||
call ccopy (n, workd(n+1), 1, resid, 1) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Why is this needed? We only end up here if ido != 0.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I'm away from my laptop, but aftet the very first OP application ido is -1, isn't it? So we need to copy the result of OP application back to resid.
This seems pretty low risk, and it fixes a test case, so looks good to me. |
Shall we change the documentation somewhere about this change? For instance, in X{s,n}aupd it is written
No mention to the range of the operator. Basically the same in X{s,n}aup2. In Xgetv0 it is written
In the book, page 72, it is written
But with this change the vector is forced to be in the range for the regular mode, too. And it has always been forced to be in the range for the generalized problem. |
@caliarim is that ready to be merged? Thanks |
I think so. With respect to my previous comment, in Xgetv0 it is written that the initial vector is in the range, and now this is (always) true. And of course we cannot change the book... |
thanks! |
Apologies for chiming in on a closed PR. For Julia's Arpack.jl, we believe that this has introduced a bug (it is our best guess): The test case in JuliaLinearAlgebra/Arpack.jl#118 demonstrates the following behaviour:
|
@ViralBShah nice to see you there and no worries for this. @caliarim do you want to propose a PR ? :) |
@ViralBShah: could revert both d04bdf1 and 31854ca related commits and check things are getting better at your side? Making sure the reg you see comes from that |
Pull request for issue (#79) (force the initial residual to be in the range of the operator).