optimization on macOS
For dense matrix
for sparse matrix
a) matrix factorization
b) iterative methods
For symmetric positive-definite systems, use SparseConjugateGradient
.
For square, full-rank unsymmetric or indefinite equations, use SparseGMRES
.
For rectangular or singular systems, use SparseLSMR
.
objective-c example:
SparseSolve( SparseConjugateGradient(), A, b, x, SparsePreconditionerDiagonal);
SparseSolve( SparseGMRES(), A, b, x, SparsePreconditionerDiagonal);
SparseSolve( SparseLSMR(), A, b, x, SparsePreconditionerDiagScaling);
https://developer.apple.com/videos/play/wwdc2017/711/
https://devstreaming-cdn.apple.com/videos/wwdc/2017/711d9xpgp3203tlq/711/711_accelerate_and_sparse_solvers.pdf
-
Direct methods perform a factorization such as Cholesky (A = LLᵀ) or QR. These methods provide a fast and accurate black-box solution.
-
Iterative methods find an approximate solution requiring only repeated multiplication by Aor Aᵀ. Although they require less memory than direct methods, and can be faster for very large problems, they typically require problem-specific preconditioners to be effective.