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

# SparseOpaquePreconditioner_Complex_Double

Represents a preconditioner for matrices of complex double values .

```
struct SparseOpaquePreconditioner_Complex_Double
```

## Overview

- `type` :  The type of preconditioner represented.
- `mem` : Block of memory that will be passed unaltered as the first
  argument of the `apply()` callback.
- `apply(mem, trans, X, Y)` :
  Function to call to apply the preconditioner as `Y = PX` (`trans=false`) or `Y = P^TX` (`trans`=`true`).
  - `mem` : The unaltered pointer mem from this struct.
  - `trans` : Flags whether to apply the preconditioner or its transpose.
  - `X`: The right-hand side vectors X.
  - `Y`: The result vectors Y.

---

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)