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

# Sparse Iterative Solving Functions (Vector RHS)

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

## Topics

### Iterative sparse solve functions

[`func SparseSolve(SparseIterativeMethod, SparseMatrix_Double, DenseVector_Double, DenseVector_Double) -> SparseIterativeStatus_t`](/documentation/Accelerate/SparseSolve(_:_:_:_:)-7f1sp)

Solves the equation *Ax = b* for vectors of double-precision values using the specified iterative method.

[`func SparseSolve(SparseIterativeMethod, SparseMatrix_Float, DenseVector_Float, DenseVector_Float) -> SparseIterativeStatus_t`](/documentation/Accelerate/SparseSolve(_:_:_:_:)-97k3a)

Solves the equation *Ax = b* for vectors of single-precision values using the specified iterative method.

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

Solves the equation *Ax = b* for vectors of double-precision values, treating *A* as an operator and using the specified iterative method.

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

Solves the equation *Ax = b* for vectors 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, DenseVector_Double, DenseVector_Double, SparseOpaquePreconditioner_Double) -> SparseIterativeStatus_t`](/documentation/Accelerate/SparseSolve(_:_:_:_:_:)-1qwax)

Solves the equation *Ax = b* for vectors of double-precision values using the specified iterative method and opaque preconditioner.

[`func SparseSolve(SparseIterativeMethod, SparseMatrix_Float, DenseVector_Float, DenseVector_Float, SparseOpaquePreconditioner_Float) -> SparseIterativeStatus_t`](/documentation/Accelerate/SparseSolve(_:_:_:_:_:)-3aphv)

Solves the equation *Ax = b* for vectors of single-precision values using the specified iterative method and opaque preconditioner.

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

Solves the equation *Ax = b* for vectors of double-precision values using the specified iterative method and preconditioner type.

[`func SparseSolve(SparseIterativeMethod, SparseMatrix_Float, DenseVector_Float, DenseVector_Float, SparsePreconditioner_t) -> SparseIterativeStatus_t`](/documentation/Accelerate/SparseSolve(_:_:_:_:_:)-9nzvm)

Solves the equation *Ax = b* for vectors of single-precision values using the specified iterative method and preconditioner type.

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

Solves the equation *Ax = b* for vectors of double-precision values, treating *A* as an operator and using the specified iterative method and preconditioner.

[`func SparseSolve(SparseIterativeMethod, (Bool, CBLAS_TRANSPOSE, DenseVector_Float, DenseVector_Float) -> Void, DenseVector_Float, DenseVector_Float, SparseOpaquePreconditioner_Float) -> SparseIterativeStatus_t`](/documentation/Accelerate/SparseSolve(_:_:_:_:_:)-7wnum)

Solves the equation *Ax = b* for vectors of single-precision values, treating *A* as an operator and using the specified iterative method and preconditioner.

### Iterative sparse solve functions for complex matrices

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

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

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

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

[`func SparseSolve(SparseIterativeMethod, (Bool, CBLAS_TRANSPOSE, DenseVector_Complex_Double, DenseVector_Complex_Double) -> Void, DenseVector_Complex_Double, DenseVector_Complex_Double, SparseOpaquePreconditioner_Complex_Double) -> SparseIterativeStatus_t`](/documentation/Accelerate/SparseSolve(_:_:_:_:_:)-1ogxn)

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

[`func SparseSolve(SparseIterativeMethod, (Bool, CBLAS_TRANSPOSE, DenseVector_Complex_Float, DenseVector_Complex_Float) -> Void, DenseVector_Complex_Float, DenseVector_Complex_Float, SparseOpaquePreconditioner_Complex_Float) -> SparseIterativeStatus_t`](/documentation/Accelerate/SparseSolve(_:_:_:_:_:)-2bm9r)

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

[`func SparseSolve(SparseIterativeMethod, SparseMatrix_Complex_Float, DenseVector_Complex_Float, DenseVector_Complex_Float, SparseOpaquePreconditioner_Complex_Float) -> SparseIterativeStatus_t`](/documentation/Accelerate/SparseSolve(_:_:_:_:_:)-2ygeh)

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

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

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)