Resolve stack-overflow in Diagonal*Bidiagonal and (Sym)Tridiagonal #242
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Currently, there are method ambiguities on v1.10, because of which these paths were not being tested. These ambiguities are resolved on the currently nightly, which reveals a stack-overflow in these methods. This arises because an operation like
internally calls
but this method was calling
D * B
again, leading to a cycle. To avoid this, we now broadcastD.diag
over the other matrix. The added tests all work on nightly where there are no method ambiguities anymore, and theBidiagonal
ones work on current versions as well.