-
Notifications
You must be signed in to change notification settings - Fork 31
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
Upgrade to v2.0 #189
Comments
I updated my package MatrixEquations.jl to v2.0 and all tests involving LinearOperators failed! It is probably a trivial issue, but in this moment I would appreciate any hint on what I have to change when using the new version. A few days ago, I registered MatrixEquations.jl with the last version available before v2.0 and everything was OK. |
Hi! With v2.0 we updated the way to create operators, so that it is generic with matrix-vector products using We also removed I hope that it helps, if it does not you can send me your operator and I'll try to help you update it to v2.0. |
Thanks. I wonder if this will be a simple exercise for me. Here is an example for the Lyapunov operator:
I have 16 operators defined and this was the simplest one! I wonder if there is an automatic safe way to perform the transitions. Is any compat tool available to suport the previous version? It would be great if you can keep also the previous way to define operators. And, I must say frankly, I see no gain for my problems, which basically estimate the condition numbers of different kind of operators. The mul! function, if not carrefully implemented (e.g., to perform no additional operations for α = 1, β = 0), increases unnecessarily the number of operations, which is not desirable. So, the effort for users increases substantially (this is my understanding, please correct me if I am wrong). I look forward to here your opinion. |
@andreasvarga Keep in mind that there is no rush or necessity to upgrade at all. You can always restrict the version of LinearOperators required by your package in your Project.toml. |
I you want a quick fix you could try something like function prod_op!(res, x, α, β)
if β == 0
res .= prod(x) .* α
else
res .= prod(x) .* α .+ β .* res
end
end with the The main goal of v2 was to be able to call As you said, it increases the effort for the user, so we can try to add a feature that allows the user to keep his code the same in the future. For now, as @dpo said, if you do not want to make changes to your code, you can keep using v1. |
I find porting to v2 also quite difficult. The new opportunity to define 3-arg mult helps a lot here. But in addition a found this helper function useful:
It can be used like this:
I don't know if there are any performance issues but it makes porting much easier. |
No description provided.
The text was updated successfully, but these errors were encountered: