SparseArrays: specialize zero(...) so result has nnz(...) = 0 #34209
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.
This pull request fixes #31835.
Before this commit, the result of
is filled with stored zeros exactly where
x
has a stored value. That is awasteful artifact of the default fallback implementation for
AbstractArray
.After this commit, we return a sparse array of the same dimensions as
x
without any stored values.
This change is backwards incompatible where it relates to object identity.
Before this commit, for mutable objects, every stored zero has the same
identity. Example:
But this behaviour should be classified as a performance bug and can therefore
be fixed in a minor (but not a patch) release.