fix: exponential method ambiguity resolutions#253
Conversation
lkdvos
left a comment
There was a problem hiding this comment.
Did a quick search throughout the codebase, and it seems like except for svd_compact, we always combine DiagonalAlgorithm with AbstractMatrix, so this is consistent with most of it.
Codecov Report❌ Patch coverage is
... and 23 files with indirect coverage changes 🚀 New features to boost your workflow:
|
Co-authored-by: Lukas Devos <ldevos98@gmail.com>
|
There are still ambiguities currently. Also, I do think the current these specializations invalidate some of the discussions we had previously, e.g. regarding |
|
These ambiguities should now be removed. It is indeed a bit strange that we're specialising these methods, when we indeed wanted to keep them general and not use broadcasting. I think it was probably still the right choice, even if we restrict some of the methods here. |
exponential method ambiguity resolutions
lkdvos
left a comment
There was a problem hiding this comment.
I made a slight change to the implementation to remain consistent with the decompositions - we are now never specializing the out arguments, and only using input::AbstractMatrix. I'm not saying this is really the best solution, and I agree that it is unfortunate we can't (yet?) handle this in a more satisfactory way, but barring the option to actually fully solve this right now, which I think will take a substantial refactor, I would vote to just keep this consistent with the decompositions, where this problem is also present.
This is another type restriction (see #252) to make sure the exponential in TensorKit will be implemented correctly (see QuantumKitHub/TensorKit.jl#465). If I don't restrict these types, it will be ambiguous with this function in TensorKit (src/factorizations/matrixalgebrakit.jl).