This package implements a sparse matrix data structure stored as a
list of lists (namely, Vector{SparseVector{Tv,Ti}}
).
The SparseMatrixCSC
data structure needs to copy/update the entire
matrix every time that a non-stored value is updated, most of the
time. That is, when setindex!
is used to update a non-stored
position, SparseMatrixCSC
has a time complexity of O(nnz)
, where
nnz
is the number of non-zeros.
The list of lists (LIL) sparse matrix format, SparseMatrixLIL
allows
for faster incremental sparse matrix construction. setindex!
for
SparseMatrixLIL
has a time complexity of O(d)
when you update a
non-stored value, where d
is the number of non-zeros in a column of
the matrix.
This package is primarily meant to be used by DynaWAVE.jl.
Pkg.clone("https://github.com/vvjn/SparseMatrixLILs.jl")