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
Copy file name to clipboardExpand all lines: docs/src/index.md
+53Lines changed: 53 additions & 0 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -206,6 +206,27 @@ section of the standard library reference.
206
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. |
207
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 |
208
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:
# [Sparse Linear Algebra API](@id stdlib-sparse-linalg-api)
271
+
272
+
```@docs
273
+
SparseArrays.CHOLMOD.cholesky
274
+
SparseArrays.CHOLMOD.cholesky!
275
+
SparseArrays.CHOLMOD.lowrankupdate
276
+
SparseArrays.CHOLMOD.lowrankupdate!
277
+
SparseArrays.CHOLMOD.lowrankdowndate
278
+
SparseArrays.CHOLMOD.lowrankdowndate!
279
+
SparseArrays.CHOLMOD.lowrankupdowndate!
280
+
SparseArrays.CHOLMOD.ldlt
281
+
SparseArrays.UMFPACK.lu
282
+
SparseArrays.SPQR.qr
283
+
```
284
+
285
+
```@meta
286
+
DocTestSetup = nothing
287
+
```
288
+
248
289
# Noteworthy External Sparse Packages
249
290
250
291
Several other Julia packages provide sparse matrix implementations that should be mentioned:
@@ -264,3 +305,15 @@ Several other Julia packages provide sparse matrix implementations that should b
264
305
7.[ExtendableSparse.jl](https://github.com/j-fu/ExtendableSparse.jl) enables fast insertion into sparse matrices using a lazy approach to new stored indices.
265
306
266
307
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.
308
+
309
+
External packages providing sparse direct solvers:
@cholmod_param nmethods = (nested_dissection ?0:2) begin
1438
+
@cholmod_param postorder = postorder begin
1439
+
if perm ===nothing||isempty(perm) #TODO: deprecate empty perm
1440
+
returnanalyze(A)
1441
+
else# user permutation provided
1442
+
if userperm_only # use perm even if it is worse than AMD
1443
+
@cholmod_param nmethods =1begin
1444
+
returnanalyze_p(A, Ti[p-1for p in perm])
1445
+
end
1446
+
else
1438
1447
returnanalyze_p(A, Ti[p-1for p in perm])
1439
1448
end
1440
-
else
1441
-
returnanalyze_p(A, Ti[p-1for p in perm])
1442
1449
end
1443
1450
end
1444
1451
end
1452
+
1445
1453
end
1446
1454
1447
1455
functioncholesky!(F::Factor{Tv}, A::Sparse{Tv};
@@ -1467,7 +1475,7 @@ See also [`cholesky`](@ref).
1467
1475
1468
1476
!!! note
1469
1477
This method uses the CHOLMOD library from SuiteSparse, which only supports
1470
-
real or complex types in single or double precision.
1478
+
real or complex types in single or double precision.
1471
1479
Input matrices not of those element types will
1472
1480
be converted to these types as appropriate.
1473
1481
"""
@@ -1587,8 +1595,8 @@ true
1587
1595
1588
1596
!!! note
1589
1597
This method uses the CHOLMOD[^ACM887][^DavisHager2009] library from [SuiteSparse](https://github.com/DrTimothyAldenDavis/SuiteSparse).
1590
-
CHOLMOD only supports real or complex types in single or double precision.
1591
-
Input matrices not of those element types will be
1598
+
CHOLMOD only supports real or complex types in single or double precision.
1599
+
Input matrices not of those element types will be
1592
1600
converted to these types as appropriate.
1593
1601
1594
1602
Many other functions from CHOLMOD are wrapped but not exported from the
@@ -1633,8 +1641,8 @@ have the type tag, it must still be symmetric or Hermitian.
1633
1641
See also [`ldlt`](@ref).
1634
1642
1635
1643
!!! note
1636
-
This method uses the CHOLMOD library from [SuiteSparse](https://github.com/DrTimothyAldenDavis/SuiteSparse),
1637
-
which only supports real or complex types in single or double precision.
1644
+
This method uses the CHOLMOD library from [SuiteSparse](https://github.com/DrTimothyAldenDavis/SuiteSparse),
1645
+
which only supports real or complex types in single or double precision.
1638
1646
Input matrices not of those element types will
1639
1647
be converted to these types as appropriate.
1640
1648
"""
@@ -1695,7 +1703,7 @@ it should be a permutation of `1:size(A,1)` giving the ordering to use
1695
1703
1696
1704
!!! note
1697
1705
This method uses the CHOLMOD[^ACM887][^DavisHager2009] library from [SuiteSparse](https://github.com/DrTimothyAldenDavis/SuiteSparse).
1698
-
CHOLMOD only supports real or complex types in single or double precision.
1706
+
CHOLMOD only supports real or complex types in single or double precision.
1699
1707
Input matrices not of those element types will
1700
1708
be converted to these types as appropriate.
1701
1709
@@ -1767,7 +1775,7 @@ See also [`lowrankupdate!`](@ref), [`lowrankdowndate`](@ref), [`lowrankdowndate!
1767
1775
"""
1768
1776
lowrankupdate(F::Factor{Tv}, V::AbstractArray{Tv2}) where {Tv, Tv2} =
1769
1777
lowrankupdate!(
1770
-
change_xdtype(F, promote_type(Tv, Tv2)),
1778
+
change_xdtype(F, promote_type(Tv, Tv2)),
1771
1779
convert(AbstractArray{promote_type(Tv, Tv2)}, V)
1772
1780
)
1773
1781
@@ -1782,7 +1790,7 @@ See also [`lowrankdowndate!`](@ref), [`lowrankupdate`](@ref), [`lowrankupdate!`]
1782
1790
"""
1783
1791
lowrankdowndate(F::Factor{Tv}, V::AbstractArray{Tv2}) where {Tv, Tv2} =
0 commit comments