<!--
{
  "documentType" : "article",
  "framework" : "Accelerate",
  "identifier" : "/documentation/Accelerate/sparse-iterative-solving-functions-matrix-rhs",
  "metadataVersion" : "0.1.0",
  "role" : "collectionGroup",
  "title" : "Sparse Iterative Solving Functions (Matrix RHS)"
}
-->

# Sparse Iterative Solving Functions (Matrix RHS)

Solve a system with a right-hand-side dense matrix using iterative methods.

## Topics

### Iterative sparse solve functions

[`func SparseSolve(SparseIterativeMethod, SparseMatrix_Double, DenseMatrix_Double, DenseMatrix_Double) -> SparseIterativeStatus_t`](/documentation/Accelerate/SparseSolve(_:_:_:_:)-3ft19)

Solves the equation *AX = B* for matrices of double-precision values using the specified iterative method.

[`func SparseSolve(SparseIterativeMethod, SparseMatrix_Float, DenseMatrix_Float, DenseMatrix_Float) -> SparseIterativeStatus_t`](/documentation/Accelerate/SparseSolve(_:_:_:_:)-1f00y)

Solves the equation *AX = B* for matrices of single-precision values using the specified iterative method.

[`func SparseSolve(SparseIterativeMethod, (Bool, CBLAS_TRANSPOSE, DenseMatrix_Double, DenseMatrix_Double) -> Void, DenseMatrix_Double, DenseMatrix_Double) -> SparseIterativeStatus_t`](/documentation/Accelerate/SparseSolve(_:_:_:_:)-vewd)

Solves the equation *AX = B* for matrices of double-precision values, treating *A* as an operator and using the specified iterative method.

[`func SparseSolve(SparseIterativeMethod, (Bool, CBLAS_TRANSPOSE, DenseMatrix_Float, DenseMatrix_Float) -> Void, DenseMatrix_Float, DenseMatrix_Float) -> SparseIterativeStatus_t`](/documentation/Accelerate/SparseSolve(_:_:_:_:)-8mtxu)

Solves the equation *AX = B* for matrices of single-precision values, treating *A* as an operator and using the specified iterative method.

### Iterative sparse solve functions with preconditioner

[`func SparseSolve(SparseIterativeMethod, SparseMatrix_Double, DenseMatrix_Double, DenseMatrix_Double, SparseOpaquePreconditioner_Double) -> SparseIterativeStatus_t`](/documentation/Accelerate/SparseSolve(_:_:_:_:_:)-5yh8m)

Solves the equation *AX = B* for matrices of double-precision values using the specified iterative method and opaque preconditioner.

[`func SparseSolve(SparseIterativeMethod, SparseMatrix_Float, DenseMatrix_Float, DenseMatrix_Float, SparseOpaquePreconditioner_Float) -> SparseIterativeStatus_t`](/documentation/Accelerate/SparseSolve(_:_:_:_:_:)-7vrh0)

Solves the equation *AX = B* for matrices of single-precision values using the specified iterative method and opaque preconditioner.

[`func SparseSolve(SparseIterativeMethod, SparseMatrix_Double, DenseMatrix_Double, DenseMatrix_Double, SparsePreconditioner_t) -> SparseIterativeStatus_t`](/documentation/Accelerate/SparseSolve(_:_:_:_:_:)-5d7vf)

Solves the equation *AX = B* for matrices of double-precision values using the specified iterative method and preconditioner type.

[`func SparseSolve(SparseIterativeMethod, SparseMatrix_Float, DenseMatrix_Float, DenseMatrix_Float, SparsePreconditioner_t) -> SparseIterativeStatus_t`](/documentation/Accelerate/SparseSolve(_:_:_:_:_:)-7apig)

Solves the equation *AX = B* for matrices of single-precision values using the specified iterative method and preconditioner type.

[`func SparseSolve(SparseIterativeMethod, (Bool, CBLAS_TRANSPOSE, DenseMatrix_Double, DenseMatrix_Double) -> Void, DenseMatrix_Double, DenseMatrix_Double, SparseOpaquePreconditioner_Double) -> SparseIterativeStatus_t`](/documentation/Accelerate/SparseSolve(_:_:_:_:_:)-8nfbc)

Solves the equation *AX = B* for matrices of double-precision values, treating *A* as an operator and using the specified iterative method.

[`func SparseSolve(SparseIterativeMethod, (Bool, CBLAS_TRANSPOSE, DenseMatrix_Float, DenseMatrix_Float) -> Void, DenseMatrix_Float, DenseMatrix_Float, SparseOpaquePreconditioner_Float) -> SparseIterativeStatus_t`](/documentation/Accelerate/SparseSolve(_:_:_:_:_:)-80ri4)

Solves the equation *AX = B* for matrices of single-precision values, treating *A* as an operator and using the specified iterative method.

### Iterative sparse solve functions for complex matrices

[`func SparseSolve(SparseIterativeMethod, SparseMatrix_Complex_Double, DenseVector_Complex_Double, DenseVector_Complex_Double) -> SparseIterativeStatus_t`](/documentation/Accelerate/SparseSolve(_:_:_:_:)-41c6p)

Solve `Ax=b` using the specified iterative method for complex double values.

[`func SparseSolve(SparseIterativeMethod, SparseMatrix_Complex_Float, DenseMatrix_Complex_Float, DenseMatrix_Complex_Float) -> SparseIterativeStatus_t`](/documentation/Accelerate/SparseSolve(_:_:_:_:)-4xwsw)

Solve `AX=B` using the specified iterative method for complex float values.

[`func SparseSolve(SparseIterativeMethod, SparseMatrix_Complex_Float, DenseMatrix_Complex_Float, DenseMatrix_Complex_Float, SparseOpaquePreconditioner_Complex_Float) -> SparseIterativeStatus_t`](/documentation/Accelerate/SparseSolve(_:_:_:_:_:)-155od)

Solve `AX=B` using the specified iterative method for complex float values.

[`func SparseSolve(SparseIterativeMethod, SparseMatrix_Complex_Float, DenseVector_Complex_Float, DenseVector_Complex_Float, SparsePreconditioner_t) -> SparseIterativeStatus_t`](/documentation/Accelerate/SparseSolve(_:_:_:_:_:)-1fw3p)

Solve `Ax=b` using the specified iterative method for complex float values.

[`func SparseSolve(SparseIterativeMethod, (Bool, CBLAS_TRANSPOSE, DenseMatrix_Complex_Float, DenseMatrix_Complex_Float) -> Void, DenseMatrix_Complex_Float, DenseMatrix_Complex_Float, SparseOpaquePreconditioner_Complex_Float) -> SparseIterativeStatus_t`](/documentation/Accelerate/SparseSolve(_:_:_:_:_:)-1i6u8)

Solve `AX=B` using the specified iterative method for complex float values.

[`func SparseSolve(SparseIterativeMethod, SparseMatrix_Complex_Double, DenseMatrix_Complex_Double, DenseMatrix_Complex_Double, SparseOpaquePreconditioner_Complex_Double) -> SparseIterativeStatus_t`](/documentation/Accelerate/SparseSolve(_:_:_:_:_:)-4fvqm)

Solve `AX=B` using the specified iterative method for complex double values.

[`func SparseSolve(SparseIterativeMethod, SparseMatrix_Complex_Double, DenseMatrix_Complex_Double, DenseMatrix_Complex_Double, SparseOpaquePreconditioner_Complex_Double) -> SparseIterativeStatus_t`](/documentation/Accelerate/SparseSolve(_:_:_:_:_:)-4fvqm)

Solve `AX=B` using the specified iterative method for complex double values.

[`func SparseSolve(SparseIterativeMethod, SparseMatrix_Complex_Double, DenseMatrix_Complex_Double, DenseMatrix_Complex_Double, SparseOpaquePreconditioner_Complex_Double) -> SparseIterativeStatus_t`](/documentation/Accelerate/SparseSolve(_:_:_:_:_:)-4fvqm)

Solve `AX=B` using the specified iterative method for complex double values.

[`func SparseSolve(SparseIterativeMethod, SparseMatrix_Complex_Float, DenseMatrix_Complex_Float, DenseMatrix_Complex_Float, SparsePreconditioner_t) -> SparseIterativeStatus_t`](/documentation/Accelerate/SparseSolve(_:_:_:_:_:)-655i9)

Solve `AX=B` using the specified iterative method for complex float values.

[`func SparseSolve(SparseIterativeMethod, SparseMatrix_Complex_Double, DenseVector_Complex_Double, DenseVector_Complex_Double, SparsePreconditioner_t) -> SparseIterativeStatus_t`](/documentation/Accelerate/SparseSolve(_:_:_:_:_:)-7hdp4)

Solve `Ax=b` using the specified iterative method for complex double values.

[`func SparseSolve(SparseIterativeMethod, (Bool, CBLAS_TRANSPOSE, DenseMatrix_Complex_Double, DenseMatrix_Complex_Double) -> Void, DenseMatrix_Complex_Double, DenseMatrix_Complex_Double, SparseOpaquePreconditioner_Complex_Double) -> SparseIterativeStatus_t`](/documentation/Accelerate/SparseSolve(_:_:_:_:_:)-7m9vp)

Solve `AX=B` using the specified iterative method for complex double values.

[`func SparseSolve(SparseIterativeMethod, (Bool, CBLAS_TRANSPOSE, DenseMatrix_Complex_Float, DenseMatrix_Complex_Float) -> Void, DenseMatrix_Complex_Float, DenseMatrix_Complex_Float) -> SparseIterativeStatus_t`](/documentation/Accelerate/SparseSolve(_:_:_:_:)-6wjj9)

Solve `AX=B` using the specified iterative method for complex float values.

[`func SparseSolve(SparseIterativeMethod, SparseMatrix_Complex_Double, DenseMatrix_Complex_Double, DenseMatrix_Complex_Double) -> SparseIterativeStatus_t`](/documentation/Accelerate/SparseSolve(_:_:_:_:)-7zp1d)

Solve `AX=B` using the specified iterative method for complex double values.

[`func SparseSolve(SparseIterativeMethod, (Bool, CBLAS_TRANSPOSE, DenseMatrix_Complex_Double, DenseMatrix_Complex_Double) -> Void, DenseMatrix_Complex_Double, DenseMatrix_Complex_Double) -> SparseIterativeStatus_t`](/documentation/Accelerate/SparseSolve(_:_:_:_:)-8bndu)

Solve `AX=B` using the specified iterative method for complex double values.

[`func SparseSolve(SparseIterativeMethod, SparseMatrix_Complex_Float, DenseVector_Complex_Float, DenseVector_Complex_Float) -> SparseIterativeStatus_t`](/documentation/Accelerate/SparseSolve(_:_:_:_:)-8yld7)

Solve `Ax=b` using the specified iterative method for complex float values.

[`func SparseSolve(SparseIterativeMethod, SparseMatrix_Complex_Double, DenseMatrix_Complex_Double, DenseMatrix_Complex_Double, SparsePreconditioner_t) -> SparseIterativeStatus_t`](/documentation/Accelerate/SparseSolve(_:_:_:_:_:)-4xd4z)

Solve `AX=B` using the specified iterative method for complex double values.

### Supporting types

[`struct SparseIterativeStatus_t`](/documentation/Accelerate/SparseIterativeStatus_t)

Constants that define the status of the iterative solve.



---

Copyright &copy; 2026 Apple Inc. All rights reserved. | [Terms of Use](https://www.apple.com/legal/internet-services/terms/site.html) | [Privacy Policy](https://www.apple.com/privacy/privacy-policy)