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
History
File Mode Size
base
contrib
deps
doc
etc
examples
src
test
ui
.gitignore -rw-r--r-- 207 bytes
.mailmap -rw-r--r-- 9.5 KB
.travis.yml -rw-r--r-- 3.9 KB
CONTRIBUTING.md -rw-r--r-- 16.1 KB
DEBUGGER.md -rw-r--r-- 1.2 KB
DISTRIBUTING.md -rw-r--r-- 8.8 KB
LICENSE.md -rw-r--r-- 4.7 KB
Make.inc -rw-r--r-- 28.3 KB
Make.powerpc -rw-r--r-- 1.2 KB
Makefile -rw-r--r-- 25.9 KB
NEWS.md -rw-r--r-- 74.9 KB
README.arm.md -rw-r--r-- 3.0 KB
README.md -rw-r--r-- 26.6 KB
README.windows.md -rw-r--r-- 17.0 KB
VERSION -rw-r--r-- 10 bytes
Windows.inc -rw-r--r-- 1.5 KB
appveyor.yml -rw-r--r-- 1.6 KB

README.md

back to top