Open
Conversation
Codecov Report❌ Patch coverage is
... and 35 files with indirect coverage changes 🚀 New features to boost your workflow:
|
cb03fcf to
4535feb
Compare
4535feb to
6d6e3f1
Compare
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
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.
Here I standardized the
Householderkeyword arguments in an attempt to improve the type stability (again).Apparently this just isn't enough, so I gave up again and just put the
@assume_effectsinto place.In general, I think this really is what we want, and the main point is that this should really only go wrong if
default_algorithmisn't foldable, which is probably a fair thing to ask for.I am also quite unhappy about this solution, and am very open to alternative suggestions, but I spent way too long on this already and am running out of ideas.
To give some insight into what I found:
The main thing seems to be that there is a maximal depth that the compiler will
@inlineor const-prop. For example, with some tinkering I actually got it to the point whereselect_algorithm(right_orth!, A, alg)is type stable, butselect_algorithm(right_orth, A, alg)then wasn't, even though it is marked with inline annotations.From this I concluded there is a maximal depth of logic we can achieve, and since the "orthnull" already is using up quite a bit of that I can't seem to get past it without a major rewrite