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 is a sparse type that only stores a single structurally nonzero element. This is very similar to
FillArrays.OneElement
, but I'm reimplementing a version here for better compatibility with the sparse types we are developing, and to have more control over the operations we define. See alsoOneHotArrays.OneHotArray
for a similar type.A lot of algebra operations "just work" for this type, but don't yet necessarily preserve the
OneElementArray
type (when that is possible) and instead fall back to generic code that constructsSparseArrayDOK
, for example:Note that most of the code is defining various constructors, and probably that can be simplified.
The idea is that this will serve as the basis for the next-generation
oneelement
function for constructing ITensors with a single element, see ITensor/ITensorBase.jl#26.