sparse-array.core
Operations on sparse arrays.
*safe-sparse-operations*
dynamic
Whether spase array operations should be conducted safely, with careful
checking of data conventions and exceptions thrown if expectations are not
met. Normally `false`.
arity
(arity x)
Return the arity of the sparse array `x`.
child-arity
(child-arity x)
Return the largest arity among the arities of the next dimension layer of
the sparse array `x`.
dense-array?
(dense-array? x)
(dense-array? x d)
Basically, any vector can be considered as a dense array of one dimension.
If we're seeking a dense array of more than one dimension, the number of
dimensions should be specified as `d`.
dense-dimensions
(dense-dimensions x)
How many usable dimensions (represented as vectors) does the dense array
`x` have?
dense-to-sparse
(dense-to-sparse x)
(dense-to-sparse x axes)
Return a sparse array representing the content of the dense array `x`,
assuming these `axes` if specified. *NOTE THAT* if insufficient
values of `axes` are specified, the resulting sparse array will
be malformed.
get
(get array & coordinates)
Return the value in this sparse `array` at these `coordinates`.
make-sparse-array
(make-sparse-array & dimensions)
Make a sparse array with these `dimensions`. Every member of `dimensions`
must be a keyword; otherwise, `nil` will be returned.
merge-arrays
(merge-arrays a1 a2)
Merge two arrays `a1`, `a2`, which may be either dense or sparse but which
should have the same number of axes and compatible dimensions, and return a
new dense array preferring values from `a2`.
merge-dense-with-sparse
(merge-dense-with-sparse d s)
Merge this dense array `d` with this sparse array `s`, returning a new
dense array with the same arity as `d`, preferring values from `s` where
there is conflict
merge-sparse-arrays
(merge-sparse-arrays a1 a2)
Return a sparse array taking values from sparse arrays `a1` and `a2`,
but preferring values from `a2` where there is a conflict. `a1` and `a2`
must have the **same** dimensions in the **same** order, or `nil` will
be returned.
put
(put array value & coordinates)
Return a sparse array like this `array` but with this `value` at these
`coordinates`. Returns `nil` if any coordinate is invalid.
sparse-array?
(sparse-array? x)
(sparse-array? x & axes)
`true` if `x` is a sparse array conforming to the conventions established
by this library, else `false`.
sparse-to-dense
(sparse-to-dense x)
(sparse-to-dense x arity)
Return a dense array representing the content of the sparse array `x`.
**NOTE THAT** this has the potential to consume very large amounts of memory.