Improve scalartype determination at start of algorithms #138
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 tried to slightly more carefully treat determining the scalartype that will be used in the algorithms.
Importantly, I attempted to reinstate the type inference as a first attempt, since it would be nice to avoid having to do a function evaluation and allocations etc when this is not necessary.
Nevertheless, this still retains fallback solutions for when type inference fails, and should also still error at a reasonable place when the function fails itself.
I also added this behavior to the generalized eigenvalue solvers.
This should also fully fix #132, which technically already was more or less fixed before.
We might have to add some additional tests for this though, but I'm not sure what the best way is to construct things that are type unstable in a reliable way.