You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Julia has support for sparse vectors and [sparse matrices](https://en.wikipedia.org/wiki/Sparse_matrix)
8
12
in the `SparseArrays` stdlib module. Sparse arrays are arrays that contain enough zeros that storing them in a special data structure leads to savings in space and execution time, compared to dense arrays.
9
13
10
-
External packages which implement different sparse storage types, multidimensional sparse arrays, and more can be found in [Noteworthy external packages](@ref man-csc)
14
+
External packages which implement different sparse storage types, multidimensional sparse arrays, and more can be found in [Noteworthy External Sparse Packages](@ref)
The inverse of the [`sparse`](@ref) and [`sparsevec`](@ref) functions is
124
-
[`findnz`](@ref), which retrieves the inputs used to create the sparse array.
125
-
[`findall(!iszero, x)`](@ref) returns the cartesian indices of non-zero entries in `x`
126
-
(including stored entries equal to zero).
128
+
[`findnz`](@ref), which retrieves the inputs used to create the sparse array (including stored entries equal to zero).
129
+
[`findall(!iszero, x)`](@ref) returns the Cartesian indices of non-zero entries in `x`
130
+
(not including stored entries equal to zero).
127
131
128
132
```jldoctest sparse_function
129
133
julia> findnz(S)
@@ -202,6 +206,25 @@ section of the standard library reference.
202
206
|[`sprandn(m,n,d)`](@ref)|[`randn(m,n)`](@ref)| Creates a *m*-by-*n* random matrix (of density *d*) with iid non-zero elements distributed according to the standard normal (Gaussian) distribution. |
203
207
|[`sprandn(rng,m,n,d)`](@ref)|[`randn(rng,m,n)`](@ref)| Creates a *m*-by-*n* random matrix (of density *d*) with iid non-zero elements generated with the `rng` random number generator |
204
208
209
+
## [Sparse Linear Algebra](@id stdlib-sparse-linalg)
210
+
211
+
Sparse matrix solvers call functions from [SuiteSparse](http://suitesparse.com). The following factorizations are available:
|`CHOLMOD.Factor`| Cholesky and LDLt factorizations |
221
+
|`UMFPACK.UmfpackLU`| LU factorization |
222
+
|`SPQR.QRSparse`| QR factorization |
223
+
224
+
```@meta
225
+
DocTestSetup = nothing
226
+
```
227
+
205
228
# [SparseArrays API](@id stdlib-sparse-arrays)
206
229
207
230
```@docs
@@ -243,7 +266,8 @@ SparseArrays.ftranspose!
243
266
```@meta
244
267
DocTestSetup = nothing
245
268
```
246
-
# Noteworthy external packages
269
+
270
+
# Noteworthy External Sparse Packages
247
271
248
272
Several other Julia packages provide sparse matrix implementations that should be mentioned:
249
273
@@ -260,3 +284,17 @@ Several other Julia packages provide sparse matrix implementations that should b
260
284
6.[LuxurySparse.jl](https://github.com/QuantumBFS/LuxurySparse.jl) provides static sparse array formats, as well as a coordinate format.
261
285
262
286
7.[ExtendableSparse.jl](https://github.com/j-fu/ExtendableSparse.jl) enables fast insertion into sparse matrices using a lazy approach to new stored indices.
287
+
288
+
8.[Finch.jl](https://github.com/willow-ahrens/Finch.jl) supports extensive multidimensional sparse array formats and operations through a mini tensor language and compiler, all in native Julia. Support for COO, CSF, CSR, CSC and more, as well as operations like broadcast, reduce, etc. and custom operations.
289
+
290
+
External packages providing sparse direct solvers:
Other solvers such as [Pardiso.jl](https://github.com/JuliaSparse/Pardiso.jl/) are available as external packages. [Arpack.jl](https://julialinearalgebra.github.io/Arpack.jl/stable/) provides `eigs` and `svds` for iterative solution of eigensystems and singular value decompositions.
16
-
17
-
These factorizations are described in more detail in [`Linear Algebra`](https://docs.julialang.org/en/v1/stdlib/LinearAlgebra/) section of the manual:
0 commit comments