<!--
{
  "documentType" : "article",
  "framework" : "Accelerate",
  "identifier" : "/documentation/Accelerate/subfactor-solve-functions",
  "metadataVersion" : "0.1.0",
  "role" : "collectionGroup",
  "title" : "Subfactor Solve Functions"
}
-->

# Subfactor Solve Functions

Solve systems with the equation *Subfactor * X = B*.

## Topics

### Matrix-solving functions

[`func SparseSolve(SparseOpaqueSubfactor_Double, DenseMatrix_Double)`](/documentation/Accelerate/SparseSolve(_:_:)-2oyl1)

Solves the equation *Subfactor * X = B* in place for the matrix of double-precision values *X*.

[`func SparseSolve(SparseOpaqueSubfactor_Float, DenseMatrix_Float)`](/documentation/Accelerate/SparseSolve(_:_:)-2tyws)

Solves the equation *Subfactor * X = B* in place for the matrix of single-precision values *X*.

[`func SparseSolve(SparseOpaqueSubfactor_Double, DenseMatrix_Double, DenseMatrix_Double)`](/documentation/Accelerate/SparseSolve(_:_:_:)-1lads)

Solves the equation *Subfactor * X = B* for the matrix of double-precision values *X*.

[`func SparseSolve(SparseOpaqueSubfactor_Float, DenseMatrix_Float, DenseMatrix_Float)`](/documentation/Accelerate/SparseSolve(_:_:_:)-76z89)

Solves the equation *Subfactor * X = B* for the matrix of single-precision values *X*.

### Matrix-solving functions with user-defined workspace

[`func SparseSolve(SparseOpaqueSubfactor_Double, DenseMatrix_Double, UnsafeMutableRawPointer)`](/documentation/Accelerate/SparseSolve(_:_:_:)-8k0w9)

Solves the equation *Subfactor * X = B* in place for the matrix of double-precision values *X*, without any internal memory allocations.

[`func SparseSolve(SparseOpaqueSubfactor_Float, DenseMatrix_Float, UnsafeMutableRawPointer)`](/documentation/Accelerate/SparseSolve(_:_:_:)-9kp2g)

Solves the equation *Subfactor * X = B* in place for the matrix of single-precision values *X*, without any internal memory allocations.

[`func SparseSolve(SparseOpaqueSubfactor_Double, DenseMatrix_Double, DenseMatrix_Double, UnsafeMutableRawPointer)`](/documentation/Accelerate/SparseSolve(_:_:_:_:)-90z8f)

Solves the equation *Subfactor * X = B* for the matrix of double-precision values *X*, without any internal memory allocations.

[`func SparseSolve(SparseOpaqueSubfactor_Float, DenseMatrix_Float, DenseMatrix_Float, UnsafeMutableRawPointer)`](/documentation/Accelerate/SparseSolve(_:_:_:_:)-1hhdi)

Solves the equation *Subfactor * X = B* for the matrix of single-precision values *X*, without any internal memory allocations.

### Vector-solving functions

[`func SparseSolve(SparseOpaqueSubfactor_Double, DenseVector_Double)`](/documentation/Accelerate/SparseSolve(_:_:)-87v8w)

Solves the equation *Subfactor * X = B* in place for the vector of double-precision values *X*.

[`func SparseSolve(SparseOpaqueSubfactor_Float, DenseVector_Float)`](/documentation/Accelerate/SparseSolve(_:_:)-6pxrq)

Solves the equation *Subfactor * X = B* in place for the vector of single-precision values *X*.

[`func SparseSolve(SparseOpaqueSubfactor_Double, DenseVector_Double, DenseVector_Double)`](/documentation/Accelerate/SparseSolve(_:_:_:)-g0wb)

Solves the equation *Subfactor * X = B* in place for the vector of double-precision values *X*.

[`func SparseSolve(SparseOpaqueSubfactor_Float, DenseVector_Float, DenseVector_Float)`](/documentation/Accelerate/SparseSolve(_:_:_:)-5mq7s)

Solves the equation *Subfactor * X = B* in place for the vector of single-precision values *X*.

### Vector-solving functions with user-defined workspace

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

Solves the equation *Subfactor * X = B* for the vector of double-precision values *X*, in place and without any internal memory allocations.

[`func SparseSolve(SparseOpaqueSubfactor_Float, DenseVector_Float, UnsafeMutableRawPointer)`](/documentation/Accelerate/SparseSolve(_:_:_:)-1xw9b)

Solves the equation *Subfactor * X = B* for the vector of single-precision values *X*, in place and without any internal memory allocations.

[`func SparseSolve(SparseOpaqueSubfactor_Double, DenseVector_Double, DenseVector_Double, UnsafeMutableRawPointer)`](/documentation/Accelerate/SparseSolve(_:_:_:_:)-eaq9)

Solves the equation *Subfactor * X = B* for the vector of double-precision values *X*, without any internal memory allocations.

[`func SparseSolve(SparseOpaqueSubfactor_Float, DenseVector_Float, DenseVector_Float, UnsafeMutableRawPointer)`](/documentation/Accelerate/SparseSolve(_:_:_:_:)-2p6e3)

Solves the equation *Subfactor * X = B* for the vector of single-precision values *X*, without any internal memory allocations.

### Complex subfactor-solving functions

[`func SparseSolve(SparseOpaqueSubfactor_Complex_Double, DenseMatrix_Complex_Double)`](/documentation/Accelerate/SparseSolve(_:_:)-3x0vj)

Solve the equation `Subfactor * X = B` for the matrix `X` of complex double values, 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(SparseOpaqueSubfactor_Complex_Double, DenseVector_Complex_Double)`](/documentation/Accelerate/SparseSolve(_:_:)-78cl0)

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

[`func SparseSolve(SparseOpaqueSubfactor_Complex_Float, DenseMatrix_Complex_Float)`](/documentation/Accelerate/SparseSolve(_:_:)-879na)

Solve the equation `Subfactor * X = B` for the matrix `X` of complex float values, in place.

[`func SparseSolve(SparseOpaqueSubfactor_Complex_Float, DenseMatrix_Complex_Float, UnsafeMutableRawPointer)`](/documentation/Accelerate/SparseSolve(_:_:_:)-2qlwo)

Solve the equation `Subfactor * X` = B for the matrix `X` of complex float values in place.

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

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

[`func SparseSolve(SparseOpaqueSubfactor_Complex_Float, DenseMatrix_Complex_Float, DenseMatrix_Complex_Float, UnsafeMutableRawPointer)`](/documentation/Accelerate/SparseSolve(_:_:_:_:)-6afcf)

Solve the equation `Subfactor * X = B` for the matrix `X` of complex float values.

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

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

[`func SparseSolve(SparseOpaqueSubfactor_Complex_Double, DenseMatrix_Complex_Double, DenseMatrix_Complex_Double, UnsafeMutableRawPointer)`](/documentation/Accelerate/SparseSolve(_:_:_:_:)-9xxqn)

Solve the equation `Subfactor * X = B` for the matrix `X` of complex double values.



---

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)