---
title: "SparseMultiply(_:_:_:)"
framework: accelerate
role: symbol
role_heading: Function
path: "accelerate/sparsemultiply(_:_:_:)-7mdi8"
---

# SparseMultiply(_:_:_:)

Perform the multiply operation Y = Subfactor * X for complex double values, in place.

## Declaration

```swift
func SparseMultiply(_ Subfactor: SparseOpaqueSubfactor_Complex_Double, _ XY: DenseMatrix_Complex_Double, _ workspace: UnsafeMutableRawPointer)
```

## Parameters

- `Subfactor`: (Input) The subfactor to multiply by, as returned by SparseCreateSubfactor().
- `XY`: (Input/Output) On input, the matrix X. On return it is overwritten with the matrix Y. If Subfactor is m x n, then XB must have dimension k x nrhs, where k = max(m, n) and nrhs is the number of right-hand side vectors. If m != n, then only the first min(m,n) entries are used for input or output as approriate.
- `workspace`: (Scratch) A workspace of size Subfactor.workspaceRequiredStatic + nrhs * Subfactor.workspaceRequiredPerRHS * 2. This memory must be 16-byte aligned (any allocation returned by malloc() has this property).

## See Also

### Subfactor and dense matrix multiplication with user-defined workspace

- [SparseMultiply(_:_:_:)](accelerate/sparsemultiply(_:_:_:)-20xvs.md)
- [SparseMultiply(_:_:_:)](accelerate/sparsemultiply(_:_:_:)-6thvw.md)
- [SparseMultiply(_:_:_:_:)](accelerate/sparsemultiply(_:_:_:_:)-2osop.md)
- [SparseMultiply(_:_:_:_:)](accelerate/sparsemultiply(_:_:_:_:)-9v8hk.md)
- [SparseMultiply(_:_:_:)](accelerate/sparsemultiply(_:_:_:)-6strd.md)
- [SparseMultiply(_:_:_:_:)](accelerate/sparsemultiply(_:_:_:_:)-581zl.md)
