SparseSolve(_:_:_:)
Solves the system AX=B for X, using the supplied SparseOpaqueFactorization_Complex_Float of A, in place, and without any internal memory allocations.
Declaration
func SparseSolve(_ Factored: SparseOpaqueFactorization_Complex_Float, _ XB: DenseMatrix_Complex_Float, _ workspace: UnsafeMutableRawPointer)Parameters
- Factored:
A factorization of
A. - XB:
On entry, the right-hand sides
B. On return, the solution vectorsX. IfAhas dimensionm x n, thenXBmust have dimensionk x nrhs, wherek=max(m,n)and nrhs is the number of right-hand sides to find solutions for. - workspace:
Scratch space of size
Factored.solveWorkspaceRequiredStatic + nrhs * Factored.solveWorkspaceRequiredPerRHS * 2. This memory must be 16-byte aligned (any allocation returned bymalloc()has this property).
Discussion
If the factorization is A=QR and the system is underdetermined, the solution of minimum norm || x ||_2 is returned. If the factorization is A=QR and the system is overdetermined, the least squares solution arg min_x || Ax - b ||_2 is returned. In the case of a factorization of type=SparseCholeskyAtA, the factorization is in fact of A^T A, so the solution returned is for the system A^TAx=b.