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

# Sparse Direct Solving Functions (Vector RHS)

Solve a system with a right-hand-side dense vector using a factored sparse coefficient matrix.

## Topics

### In-place direct solving functions

[`func SparseSolve(SparseOpaqueFactorization_Double, DenseVector_Double)`](/documentation/Accelerate/SparseSolve(_:_:)-pofy)

Solves the system *Ax = x* using the supplied double-precision factorization of *A*.

[`func SparseSolve(SparseOpaqueFactorization_Float, DenseVector_Float)`](/documentation/Accelerate/SparseSolve(_:_:)-60ngw)

Solves the system *Ax = b* using the supplied single-precision factorization of *A*, in place.

### Out-of-place direct solving functions

[`func SparseSolve(SparseOpaqueFactorization_Double, DenseVector_Double, DenseVector_Double)`](/documentation/Accelerate/SparseSolve(_:_:_:)-416bj)

Solves the system *Ax = b* using the supplied double-precision factorization of *A*.

[`func SparseSolve(SparseOpaqueFactorization_Float, DenseVector_Float, DenseVector_Float)`](/documentation/Accelerate/SparseSolve(_:_:_:)-666oh)

Solves the system *Ax = b* using the supplied single-precision factorization of *A*.

### In-place direct solving functions with user-defined workspace

[`func SparseSolve(SparseOpaqueFactorization_Double, DenseVector_Double, UnsafeMutableRawPointer)`](/documentation/Accelerate/SparseSolve(_:_:_:)-14nj)

Solves the system *Ax = b* using the supplied double-precision factorization of *A*, in place and without any internal memory allocations.

[`func SparseSolve(SparseOpaqueFactorization_Float, DenseVector_Float, UnsafeMutableRawPointer)`](/documentation/Accelerate/SparseSolve(_:_:_:)-9hs9y)

Solves the system *Ax = b* using the supplied single-precision factorization of *A*, in place and without any internal memory allocations.

### Out-of-place direct solving functions with user-defined workspace

[`func SparseSolve(SparseOpaqueFactorization_Double, DenseVector_Double, DenseVector_Double, UnsafeMutableRawPointer)`](/documentation/Accelerate/SparseSolve(_:_:_:_:)-7k9ll)

Solves the system *Ax = b* using the supplied double-precision factorization of *A*, without any internal memory allocations.

[`func SparseSolve(SparseOpaqueFactorization_Float, DenseVector_Float, DenseVector_Float, UnsafeMutableRawPointer)`](/documentation/Accelerate/SparseSolve(_:_:_:_:)-6bmr8)

Solves the system *Ax = b* using the supplied single-precision factorization of *A*, without any internal memory allocations.

### Complex direct solving functions

[`func SparseSolve(SparseOpaqueSubfactor_Complex_Float, DenseVector_Complex_Float)`](/documentation/Accelerate/SparseSolve(_:_:)-4fydu)

Solve the equation `Subfactor * x = b` for the vector `x` of complex float values, in place.

[`func SparseSolve(SparseOpaqueFactorization_Complex_Double, DenseVector_Complex_Double)`](/documentation/Accelerate/SparseSolve(_:_:)-1psgz)

Solves the system `Ax=b` for `x`, using the supplied `SparseOpaqueFactorization_Complex_Double`
of `A`, in place.

[`func SparseSolve(SparseOpaqueSubfactor_Complex_Float, DenseVector_Complex_Float)`](/documentation/Accelerate/SparseSolve(_:_:)-4fydu)

Solve the equation `Subfactor * x = b` for the vector `x` of complex float values, in place.

[`func SparseSolve(SparseOpaqueFactorization_Complex_Float, DenseVector_Complex_Float)`](/documentation/Accelerate/SparseSolve(_:_:)-5apxy)

Solves the system `Ax=b` for `x`, using the supplied `SparseOpaqueFactorization_Complex_Float`
of `A`, in place.

[`func SparseSolve(SparseOpaqueFactorization_Complex_Float, DenseVector_Complex_Float, UnsafeMutableRawPointer)`](/documentation/Accelerate/SparseSolve(_:_:_:)-3482l)

Solves the system `Ax=b` for `x`, using the supplied `SparseOpaqueFactorization_Complex_Float`
of `A`, in place.

[`func SparseSolve(SparseOpaqueSubfactor_Complex_Float, DenseVector_Complex_Float, DenseVector_Complex_Float)`](/documentation/Accelerate/SparseSolve(_:_:_:)-3hev5)

Solve the equation `Subfactor * x = b` for the vector `x` of complex float values.

[`func SparseSolve(SparseOpaqueSubfactor_Complex_Float, DenseVector_Complex_Float, UnsafeMutableRawPointer)`](/documentation/Accelerate/SparseSolve(_:_:_:)-3qkkl)

Solve the equation `Subfactor * x = b` for the vector `x` of complex float values, in place.

[`func SparseSolve(SparseOpaqueFactorization_Complex_Float, DenseVector_Complex_Float, DenseVector_Complex_Float)`](/documentation/Accelerate/SparseSolve(_:_:_:)-76ge0)

Solves the system `Ax=b` for `x`, using the supplied `SparseOpaqueFactorization_Complex_Float`
of `A`.

[`func SparseSolve(SparseOpaqueFactorization_Complex_Double, DenseVector_Complex_Double, DenseVector_Complex_Double)`](/documentation/Accelerate/SparseSolve(_:_:_:)-7day5)

Solves the system `Ax=b` for `x`, using the supplied `SparseOpaqueFactorization_Complex_Double`
of `A`.

[`func SparseSolve(SparseOpaqueFactorization_Complex_Double, DenseVector_Complex_Double, UnsafeMutableRawPointer)`](/documentation/Accelerate/SparseSolve(_:_:_:)-7ltk8)

Solves the system `Ax=b` for `x`, using the supplied `SparseOpaqueFactorization_Complex_Double`
of `A`, in place.

[`func SparseSolve(SparseOpaqueSubfactor_Complex_Double, DenseVector_Complex_Double, DenseVector_Complex_Double)`](/documentation/Accelerate/SparseSolve(_:_:_:)-85y2u)

Solve the equation `Subfactor * x = b` for the vector `x` of complex double values.

[`func SparseSolve(SparseOpaqueSubfactor_Complex_Double, DenseVector_Complex_Double, UnsafeMutableRawPointer)`](/documentation/Accelerate/SparseSolve(_:_:_:)-90ojf)

Solve the equation `Subfactor * x = b` for the vector `x` of complex double values, in place.



---

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)