-
Notifications
You must be signed in to change notification settings - Fork 227
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
More Preconditioning #202
Comments
I think ldiv dispatch based on a preconditioner type is the best way to go 👍 I should make a note of it in the (dev) documentation (which is beeing made atm). |
Great, expect a pull request soon |
One of the discussions I had with the linear algebra people is whether
which computes the length of the step-direction with respect to the metric defined by the preconditioner. In principle, this can be avoided by computing
Advantages:
Disadvantage
|
I've kind of come around to the opinion that is a big problem, so I won't make that change. Instead, I will let the user overload |
I'm a big fan of simplicity, but as you state, we clearly don't want an implementation that could converge given the inputs, but doesn't for reasons that could have been avoided in the implementation. |
Ok, so let me update you briefly what I am doing now: minimally, the preconditioner type
the advantage is that both are in Base and can be overloaded. I then write a little alias function
which creates a temporary array, then solves The disadvantage is the temporary array. If you have a problem with that Thanks for the feedback. |
sorry for the continuing updates . . . I think I can now avoid |
I am not going to complain about work going into Optim :) Looking forward to see what you come up with. |
done for now - see new pull request, I am happy to discuss and adjust. |
👍 do you have more preconditioning tricks up your sleeves, or would you prefer to close this issue? |
Tank you. This is great for now, when constrained optimisation is better developed it will be worth revisiting all of this. |
@pkofod : This follows on from JuliaLang/julia#188
I promised to report back here when there is some sort of consensus what happens with preconditioning in iterative linear algebra. In the end the outcome is very simple: Any potential preconditioner type must overload
or alternatively,
Base.A_ldiv_B!
would replaceprecondfwd!
. Further, I would remove specialised implementations for inner products and simply usevecdot
applied to preconditioned vectors. The additional overhead is likely negligible.If there is no resistance, then I can make the modifications.
The text was updated successfully, but these errors were encountered: