Revision b53644ddd23ee650c2515b35bf4e8625aece65a8 authored by Matt Bauman on 03 October 2015, 17:10:58 UTC, committed by Matt Bauman on 13 October 2015, 15:14:50 UTC
Renamings:
* Rename sparse module to SparseArrays, and improve its separation from base. This makes it very simple to dynamically reload the sparse module. Move docstrings to their proper place
* _copy_convert → collect
* Rename sparsevector to the existing spzeros and sparsevec.
* Use call overloading instead of call

Remove functionality from SparseVectors.jl:
* Simplify and remove some functors
* Remove SparseVectorView
* Remove no-longer-needed ambiguity preventers

Add functionality for SparseVectors:
* Add similar for SparseVector
* Allow sparsevec(::AbstractArray), not just vectors
* Add spzeros(n); adapt some tests to SparseVector
* Allow CHOLMOD linalg with vectors
* Implement (c)transpose(::SparseVector). Returns a dense vector since a one-row CSC structure is effectively dense but with worse performance.
* Add vector sprandbool and allow passing RNG to all vector sprand* functions. Harden tests against random failures.
* Implement, test and doc spones(::SparseVector)

Improve performance for SparseVector indexing:
* Punt to SparseMatrix for some indexing behaviors. Since the datastructures are compatible and SparseMatrix's routines are more optimized, it is easiest to just construct a temporary SparseMatrix and index into that. This is faster in all but the smallest of cases (N<10)
* Use searchsorted for indexing SparseVector by UnitRange. This is about 20% slower on very small vectors, but is faster in general.

Change SparseMatrix behaviors to take advantage of vectors
* Add indexing behaviors for SparseMatrix->SparseVector
* `vec` and `sparsevec` for CSC return SparseVectors
* Update documentation to incorporate vectors

Minor bugfixes and changes to SparseVectors:
* Compare to literal 0 in vector construction and setindex. This matches SparseMatrix semantics, and makes indexing semantics consistent with regard to stored zeros
* Use checkbounds more thoroughly
* Use error types that are consistent with SparseMatrixCSC
* Minor sparse vector display tweaks. Turn on output limiting by default, remove unused variable `k`, implement and use Base.summary
* Fix missing return, add test

Add some tests:
* Add a test and comment to ensure nobody else tries to share data between vectors and matrices
* Ensure indexing is consistent between one-column sparse matrices and sparse vectors, with special attention to stored zeros.
1 parent 9802263
Raw File
.gitignore
/*.tar.gz
/tmp
/dist
/dist-extras
/julia
/usr
/usr-staging
/Make.user
/julia-*
/source-dist.tmp
/source-dist.tmp1

*.exe
*.dll
*.do
*.o
*.obj
*.so
*.dylib
*.dSYM
*.jl.cov
*.jl.*.cov
*.jl.mem
*.ji

.DS_Store
back to top