Removes allocations with get_tmp that occur in some cases #125
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.
Specifically when
get_tmp(cache::PreallocationTools.DiffCache, u:LArray{T, ...}
where T is not a ForwardDiff.Dual, the method defined for Duals is used (which uses ArrayInterfaceCore.restructure --> allocations, even though we should just get the normal cache back, not the dual cache).The changes introduced dispatch the present
get_tmp
only on Duals, so that for T <: Number the fallback method for u::AbstractArray in PreallocationTools is used (https://github.com/SciML/PreallocationTools.jl/blob/addfd170cb69f98778f7e5f40a3d9ab352c99b10/src/PreallocationTools.jl#L61)