<!--
{
  "documentType" : "article",
  "framework" : "Accelerate",
  "identifier" : "/documentation/Accelerate/sparse-iterate-functions",
  "metadataVersion" : "0.1.0",
  "role" : "collectionGroup",
  "title" : "Sparse Iterate Functions"
}
-->

# Sparse Iterate Functions

Perform a single iteration of the specified iterative method.

## Topics

### Sparse Iterate Functions

[`func SparseIterate(SparseIterativeMethod, Int32, UnsafePointer<Bool>, UnsafeMutableRawPointer, (Bool, CBLAS_TRANSPOSE, DenseMatrix_Double, DenseMatrix_Double) -> Void, DenseMatrix_Double, DenseMatrix_Double, DenseMatrix_Double)`](/documentation/Accelerate/SparseIterate(_:_:_:_:_:_:_:_:)-c54n)

Performs a single iteration of the specified iterative method for double-precision matrices.

[`func SparseIterate(SparseIterativeMethod, Int32, UnsafePointer<Bool>, UnsafeMutableRawPointer, (Bool, CBLAS_TRANSPOSE, DenseMatrix_Float, DenseMatrix_Float) -> Void, DenseMatrix_Float, DenseMatrix_Float, DenseMatrix_Float)`](/documentation/Accelerate/SparseIterate(_:_:_:_:_:_:_:_:)-1el7r)

Performs a single iteration of the specified iterative method for single-precision matrices.

### Sparse Iterate Functions with Preconditioner

[`func SparseIterate(SparseIterativeMethod, Int32, UnsafePointer<Bool>, UnsafeMutableRawPointer, (Bool, CBLAS_TRANSPOSE, DenseMatrix_Double, DenseMatrix_Double) -> Void, DenseMatrix_Double, DenseMatrix_Double, DenseMatrix_Double, SparseOpaquePreconditioner_Double)`](/documentation/Accelerate/SparseIterate(_:_:_:_:_:_:_:_:_:)-99ji7)

Performs a single iteration of the specified iterative method for double-precision matrices, applying a preconditioner.

[`func SparseIterate(SparseIterativeMethod, Int32, UnsafePointer<Bool>, UnsafeMutableRawPointer, (Bool, CBLAS_TRANSPOSE, DenseMatrix_Float, DenseMatrix_Float) -> Void, DenseMatrix_Float, DenseMatrix_Float, DenseMatrix_Float, SparseOpaquePreconditioner_Float)`](/documentation/Accelerate/SparseIterate(_:_:_:_:_:_:_:_:_:)-1anay)

Performs a single iteration of the specified iterative method for single-precision matrices, applying a preconditioner.

[`func SparseIterate(SparseIterativeMethod, Int32, UnsafePointer<Bool>, UnsafeMutableRawPointer, (Bool, CBLAS_TRANSPOSE, DenseMatrix_Complex_Double, DenseMatrix_Complex_Double) -> Void, DenseMatrix_Complex_Double, DenseMatrix_Complex_Double, DenseMatrix_Complex_Double)`](/documentation/Accelerate/SparseIterate(_:_:_:_:_:_:_:_:)-315ym)

Perform a single iteration of the specified iterative method for complex double values.

[`func SparseIterate(SparseIterativeMethod, Int32, UnsafePointer<Bool>, UnsafeMutableRawPointer, (Bool, CBLAS_TRANSPOSE, DenseMatrix_Complex_Float, DenseMatrix_Complex_Float) -> Void, DenseMatrix_Complex_Float, DenseMatrix_Complex_Float, DenseMatrix_Complex_Float)`](/documentation/Accelerate/SparseIterate(_:_:_:_:_:_:_:_:)-9v7qh)

Perform a single iteration of the specified iterative method for complex float values.

[`func SparseIterate(SparseIterativeMethod, Int32, UnsafePointer<Bool>, UnsafeMutableRawPointer, (Bool, CBLAS_TRANSPOSE, DenseMatrix_Complex_Double, DenseMatrix_Complex_Double) -> Void, DenseMatrix_Complex_Double, DenseMatrix_Complex_Double, DenseMatrix_Complex_Double, SparseOpaquePreconditioner_Complex_Double)`](/documentation/Accelerate/SparseIterate(_:_:_:_:_:_:_:_:_:)-1wv28)

Perform a single iteration of the specified iterative method for complex double values with preconditioner.

[`func SparseIterate(SparseIterativeMethod, Int32, UnsafePointer<Bool>, UnsafeMutableRawPointer, (Bool, CBLAS_TRANSPOSE, DenseMatrix_Complex_Float, DenseMatrix_Complex_Float) -> Void, DenseMatrix_Complex_Float, DenseMatrix_Complex_Float, DenseMatrix_Complex_Float, SparseOpaquePreconditioner_Complex_Float)`](/documentation/Accelerate/SparseIterate(_:_:_:_:_:_:_:_:_:)-4td1l)

Perform a single iteration of the specified iterative method for complex float values with preconditioner.

### Functions that Calculate Iterate State Size

[`func SparseGetStateSize_Double(SparseIterativeMethod, Bool, Int32, Int32, Int32) -> Int`](/documentation/Accelerate/SparseGetStateSize_Double(_:_:_:_:_:))

Returns the size in bytes necessary for a call to the double-precision sparse iterate method.

[`func SparseGetStateSize_Float(SparseIterativeMethod, Bool, Int32, Int32, Int32) -> Int`](/documentation/Accelerate/SparseGetStateSize_Float(_:_:_:_:_:))

Returns the size in bytes necessary for a call to the single-precision sparse iterate method.

[`func SparseGetStateSize_Complex_Double(SparseIterativeMethod, Bool, Int32, Int32, Int32) -> Int`](/documentation/Accelerate/SparseGetStateSize_Complex_Double(_:_:_:_:_:))

Returns size in bytes of state space required for call to
`SparseIterate()` for complex double values.

[`func SparseGetStateSize_Complex_Float(SparseIterativeMethod, Bool, Int32, Int32, Int32) -> Int`](/documentation/Accelerate/SparseGetStateSize_Complex_Float(_:_:_:_:_:))

Returns size in bytes of state space required for call to
`SparseIterate()` for complex float 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)