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
.
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.
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.