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

# Sparse Refactor Functions

Recompute a factorization using the numerical data from a matrix.

## Topics

### Matrix Refactorization Functions

[`func SparseRefactor(SparseMatrix_Double, UnsafeMutablePointer<SparseOpaqueFactorization_Double>)`](/documentation/Accelerate/SparseRefactor(_:_:)-8vrf5)

Computes a factorization of the specified double-precision matrix using an existing factorization’s storage.

[`func SparseRefactor(SparseMatrix_Float, UnsafeMutablePointer<SparseOpaqueFactorization_Float>)`](/documentation/Accelerate/SparseRefactor(_:_:)-21q4x)

Computes a factorization of the specified single-precision matrix using an existing factorization’s storage.

[`func SparseRefactor(SparseMatrix_Double, UnsafeMutablePointer<SparseOpaqueFactorization_Double>, SparseNumericFactorOptions)`](/documentation/Accelerate/SparseRefactor(_:_:_:)-6ttkd)

Computes a factorization of the specified double-precision matrix using an existing factorization’s storage and specified options.

[`func SparseRefactor(SparseMatrix_Float, UnsafeMutablePointer<SparseOpaqueFactorization_Float>, SparseNumericFactorOptions)`](/documentation/Accelerate/SparseRefactor(_:_:_:)-2ovxs)

Computes a factorization of the specified single-precision matrix using an existing factorization’s storage and specified options.

[`func SparseRefactor(SparseMatrix_Complex_Double, UnsafeMutablePointer<SparseOpaqueFactorization_Complex_Double>)`](/documentation/Accelerate/SparseRefactor(_:_:)-mgni)

Reuses supplied factorization object’s storage to compute a new
factorization of the supplied matrix of complex double values.

[`func SparseRefactor(SparseMatrix_Complex_Float, UnsafeMutablePointer<SparseOpaqueFactorization_Complex_Float>)`](/documentation/Accelerate/SparseRefactor(_:_:)-zegz)

Reuses supplied factorization object’s storage to compute a new
factorization of the supplied matrix of complex float values.

[`func SparseRefactor(SparseMatrix_Complex_Float, UnsafeMutablePointer<SparseOpaqueFactorization_Complex_Float>, SparseNumericFactorOptions)`](/documentation/Accelerate/SparseRefactor(_:_:_:)-4chx2)

Reuses supplied factorization object’s storage to compute a new
factorization of the supplied matrix of complex float values, using different options.

[`func SparseRefactor(SparseMatrix_Complex_Double, UnsafeMutablePointer<SparseOpaqueFactorization_Complex_Double>, SparseNumericFactorOptions)`](/documentation/Accelerate/SparseRefactor(_:_:_:)-q0va)

Reuses supplied factorization object’s storage to compute a new
factorization of the supplied matrix of complex double values, using different options.

### Matrix Refactorizations Functions with User-Defined Workspace

[`func SparseRefactor(SparseMatrix_Double, UnsafeMutablePointer<SparseOpaqueFactorization_Double>, UnsafeMutableRawPointer)`](/documentation/Accelerate/SparseRefactor(_:_:_:)-9mqeq)

Computes a factorization of the specified double-precision matrix using an existing factorization’s storage, without internal memory allocation.

[`func SparseRefactor(SparseMatrix_Float, UnsafeMutablePointer<SparseOpaqueFactorization_Float>, UnsafeMutableRawPointer)`](/documentation/Accelerate/SparseRefactor(_:_:_:)-2dqt8)

Computes a factorization of the specified single-precision matrix using an existing factorization’s storage, without internal memory allocation.

[`func SparseRefactor(SparseMatrix_Double, UnsafeMutablePointer<SparseOpaqueFactorization_Double>, SparseNumericFactorOptions, UnsafeMutableRawPointer)`](/documentation/Accelerate/SparseRefactor(_:_:_:_:)-59ehf)

Computes a factorization of the specified double-precision matrix using an existing factorization’s storage and specified options, and without internal memory allocation.

[`func SparseRefactor(SparseMatrix_Float, UnsafeMutablePointer<SparseOpaqueFactorization_Float>, SparseNumericFactorOptions, UnsafeMutableRawPointer)`](/documentation/Accelerate/SparseRefactor(_:_:_:_:)-8i8vi)

Computes a factorization of the specified single-precision matrix using an existing factorization’s storage and specified options, and without internal memory allocation.

[`func SparseRefactor(SparseMatrix_Complex_Float, UnsafeMutablePointer<SparseOpaqueFactorization_Complex_Float>, UnsafeMutableRawPointer)`](/documentation/Accelerate/SparseRefactor(_:_:_:)-4ofvz)

Reuses supplied factorization object’s storage to compute a new
factorization of the supplied matrix of complex float values, without any internal
allocations.

[`func SparseRefactor(SparseMatrix_Complex_Double, UnsafeMutablePointer<SparseOpaqueFactorization_Complex_Double>, UnsafeMutableRawPointer)`](/documentation/Accelerate/SparseRefactor(_:_:_:)-593yb)

Reuses supplied factorization object’s storage to compute a new
factorization of the supplied matrix of complex double values, without any internal
allocations.

[`func SparseRefactor(SparseMatrix_Complex_Float, UnsafeMutablePointer<SparseOpaqueFactorization_Complex_Float>, SparseNumericFactorOptions, UnsafeMutableRawPointer)`](/documentation/Accelerate/SparseRefactor(_:_:_:_:)-201rh)

Reuses supplied factorization object’s storage to compute a new
factorization of the supplied matrix of complex float values, using updated options and
without any internal allocations.

[`func SparseRefactor(SparseMatrix_Complex_Double, UnsafeMutablePointer<SparseOpaqueFactorization_Complex_Double>, SparseNumericFactorOptions, UnsafeMutableRawPointer)`](/documentation/Accelerate/SparseRefactor(_:_:_:_:)-20xqc)

Reuses supplied factorization object’s storage to compute a new
factorization of the supplied matrix of complex double values, using updated options and
without any internal allocations.

### Numeric Factorization Options

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

A structure that contains options that affect the numerical stage of a sparse factorization.



---

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)