<!--
{
  "availability" : [
    "iOS: -",
    "iPadOS: -",
    "macCatalyst: -",
    "macOS: -",
    "tvOS: -",
    "visionOS: -",
    "watchOS: -"
  ],
  "documentType" : "symbol",
  "framework" : "Accelerate",
  "identifier" : "/documentation/Accelerate/SparseOpaqueFactorization_Double",
  "metadataVersion" : "0.1.0",
  "role" : "Structure",
  "symbol" : {
    "kind" : "Structure",
    "modules" : [
      "Accelerate"
    ],
    "preciseIdentifier" : "c:@SA@SparseOpaqueFactorization_Double"
  },
  "title" : "SparseOpaqueFactorization_Double"
}
-->

# SparseOpaqueFactorization_Double

A structure that represents the factorization of a matrix of double-precision, floating-point values.

```
struct SparseOpaqueFactorization_Double
```

## Overview

Use the [`SparseCleanup(_:)`](/documentation/Accelerate/SparseCleanup(_:)-3cnxt) function to free resources that these objects hold.

An object can be in one of the following states:

|**Something is wrong with symbolic factorization, nothing is valid.**                                                                                                                                                |Indication: ``doc://com.apple.accelerate/documentation/Accelerate/SparseOpaqueFactorization_Float/symbolicFactorization``.``doc://com.apple.accelerate/documentation/Accelerate/SparseOpaqueSymbolicFactorization/status`` `< 0`                                                                                                                                                                                                                                                                                                                                                                                          |
|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
|**Symbolic factorization is good, but fails in numeric factorization initialization.**                                                                                                                               |Indication: ``doc://com.apple.accelerate/documentation/Accelerate/SparseOpaqueFactorization_Float/symbolicFactorization``.``doc://com.apple.accelerate/documentation/Accelerate/SparseOpaqueSymbolicFactorization/status`` `>= 0 &&` ``doc://com.apple.accelerate/documentation/Accelerate/SparseOpaqueFactorization_Double/status`` `< 0 &&` ``doc://com.apple.accelerate/documentation/Accelerate/SparseOpaqueFactorization_Double/numericFactorization`` `== NULL` ![](spacer) You can use symbolic factorization for future calls.                                                                                    |
|**Symbolic factorization is good, factor allocation and initialization are correct, but numeric factorization fails.** ![](spacer) For example, the system attempts a Cholesky factorization of an indefinite matrix.|Indication: ``doc://com.apple.accelerate/documentation/Accelerate/SparseOpaqueFactorization_Float/symbolicFactorization``.``doc://com.apple.accelerate/documentation/Accelerate/SparseOpaqueSymbolicFactorization/status`` `>= 0 &&` ``doc://com.apple.accelerate/documentation/Accelerate/SparseOpaqueFactorization_Double/status`` `< 0 &&` ``doc://com.apple.accelerate/documentation/Accelerate/SparseOpaqueFactorization_Double/numericFactorization`` `not NULL`  ![](spacer) You may pass this object to ``doc://com.apple.accelerate/documentation/Accelerate/SparseRefactor(_:_:)-8vrf5`` with a modified matrix.|
|**Symbolic and numeric factorizations are both good.**                                                                                                                                                               |Indication: ``doc://com.apple.accelerate/documentation/Accelerate/SparseOpaqueFactorization_Double/status`` `>= 0`                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        |

## Topics

### Creating an Opaque Factorization

[`init()`](/documentation/Accelerate/SparseOpaqueFactorization_Double/init())

Creates a new opaque factorization.

[`init(status:attributes:symbolicFactorization:userFactorStorage:numericFactorization:solveWorkspaceRequiredStatic:solveWorkspaceRequiredPerRHS:)`](/documentation/Accelerate/SparseOpaqueFactorization_Double/init(status:attributes:symbolicFactorization:userFactorStorage:numericFactorization:solveWorkspaceRequiredStatic:solveWorkspaceRequiredPerRHS:))

Creates a new opaque factorization with the specified parameters.

### Instance Properties

[`attributes`](/documentation/Accelerate/SparseOpaqueFactorization_Double/attributes)

The attributes of a factorization object.

[`numericFactorization`](/documentation/Accelerate/SparseOpaqueFactorization_Double/numericFactorization)

The pointer to a private internal representation of a numeric factor.

[`solveWorkspaceRequiredPerRHS`](/documentation/Accelerate/SparseOpaqueFactorization_Double/solveWorkspaceRequiredPerRHS)

The required size of the per-right-hand-side workspace for a call to a sparse solve function.

[`solveWorkspaceRequiredStatic`](/documentation/Accelerate/SparseOpaqueFactorization_Double/solveWorkspaceRequiredStatic)

The required size of the static workspace for a call to a sparse solve function.

[`status`](/documentation/Accelerate/SparseOpaqueFactorization_Double/status)

The status of the factorization object.

[`symbolicFactorization`](/documentation/Accelerate/SparseOpaqueFactorization_Double/symbolicFactorization)

The symbolic factorization that this numeric factorization depends on.

[`userFactorStorage`](/documentation/Accelerate/SparseOpaqueFactorization_Double/userFactorStorage)

A Boolean value that indicates whether user-provided storage backs this object.



---

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)