<!--
{
  "documentType" : "article",
  "framework" : "Accelerate",
  "identifier" : "/documentation/Accelerate/subfactor-multiplication-functions",
  "metadataVersion" : "0.1.0",
  "role" : "collectionGroup",
  "title" : "Subfactor Multiplication Functions"
}
-->

# Subfactor Multiplication Functions

Multiply subfactors by matrices and vectors.

## Topics

### Subfactor and dense matrix multiplication

[`func SparseMultiply(SparseOpaqueSubfactor_Double, DenseMatrix_Double)`](/documentation/Accelerate/SparseMultiply(_:_:)-88trz)

Performs the multiply operation *Y* *= Subfactor * X,* __in place on a dense matrix of double-precision values.

[`func SparseMultiply(SparseOpaqueSubfactor_Float, DenseMatrix_Float)`](/documentation/Accelerate/SparseMultiply(_:_:)-3r4mf)

Performs the multiply operation *Y*_ _*= Subfactor * X*, in place on a dense matrix of single-precision values.

[`func SparseMultiply(SparseOpaqueSubfactor_Double, DenseMatrix_Double, DenseMatrix_Double)`](/documentation/Accelerate/SparseMultiply(_:_:_:)-4nosz)

Performs the multiply operation *Y* *= Subfactor * X* on a dense matrix of double-precision values.

[`func SparseMultiply(SparseOpaqueSubfactor_Float, DenseMatrix_Float, DenseMatrix_Float)`](/documentation/Accelerate/SparseMultiply(_:_:_:)-88stx)

Performs the multiply operation *Y* *= Subfactor * X* on a dense matrix of single-precision values.

[`func SparseMultiply(SparseOpaqueSubfactor_Complex_Float, DenseMatrix_Complex_Float)`](/documentation/Accelerate/SparseMultiply(_:_:)-34fp6)

Perform the multiply operation `Y = Subfactor * X` in place for complex float values.

[`func SparseMultiply(SparseOpaqueSubfactor_Complex_Float, DenseVector_Complex_Float)`](/documentation/Accelerate/SparseMultiply(_:_:)-3dwed)

Perform the multiply operation `y = Subfactor * x` for complex floatr values, in place.

[`func SparseMultiply(SparseOpaqueSubfactor_Complex_Float, DenseMatrix_Complex_Float, DenseMatrix_Complex_Float)`](/documentation/Accelerate/SparseMultiply(_:_:_:)-6wrnf)

Perform the multiply operation `Y = Subfactor * X` for complex float values.

[`func SparseMultiply(SparseOpaqueSubfactor_Complex_Double, DenseMatrix_Complex_Double, DenseMatrix_Complex_Double)`](/documentation/Accelerate/SparseMultiply(_:_:_:)-7q8gs)

Perform the multiply operation `Y = Subfactor * X` for complex double values.

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

[`func SparseMultiply(SparseOpaqueSubfactor_Double, DenseMatrix_Double, UnsafeMutableRawPointer)`](/documentation/Accelerate/SparseMultiply(_:_:_:)-20xvs)

Performs the multiply operation *Y* *= Subfactor * X*, in place on a dense matrix of double-precision values and without any internal memory allocations.

[`func SparseMultiply(SparseOpaqueSubfactor_Float, DenseMatrix_Float, UnsafeMutableRawPointer)`](/documentation/Accelerate/SparseMultiply(_:_:_:)-6thvw)

Performs the multiply operation *Y* *= Subfactor * X*, in place on a dense matrix of single-precision values and without any internal memory allocations.

[`func SparseMultiply(SparseOpaqueSubfactor_Double, DenseMatrix_Double, DenseMatrix_Double, UnsafeMutableRawPointer)`](/documentation/Accelerate/SparseMultiply(_:_:_:_:)-2osop)

Performs the multiply operation *Y* *= Subfactor * X* on a dense matrix of double-precision values and without any internal memory allocations.

[`func SparseMultiply(SparseOpaqueSubfactor_Float, DenseMatrix_Float, DenseMatrix_Float, UnsafeMutableRawPointer)`](/documentation/Accelerate/SparseMultiply(_:_:_:_:)-9v8hk)

Performs the multiply operation *Y* *= Subfactor * X* on a dense matrix of single-precision values and without any internal memory allocations.

[`func SparseMultiply(SparseOpaqueSubfactor_Complex_Float, DenseMatrix_Complex_Float, UnsafeMutableRawPointer)`](/documentation/Accelerate/SparseMultiply(_:_:_:)-6strd)

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

[`func SparseMultiply(SparseOpaqueSubfactor_Complex_Double, DenseMatrix_Complex_Double, UnsafeMutableRawPointer)`](/documentation/Accelerate/SparseMultiply(_:_:_:)-7mdi8)

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

[`func SparseMultiply(SparseOpaqueSubfactor_Complex_Float, DenseMatrix_Complex_Float, DenseMatrix_Complex_Float, UnsafeMutableRawPointer)`](/documentation/Accelerate/SparseMultiply(_:_:_:_:)-581zl)

Perform the multiply operation `Y = Subfactor * X` for complex float values.

### Subfactor and dense vector multiplication

[`func SparseMultiply(SparseOpaqueSubfactor_Double, DenseVector_Double)`](/documentation/Accelerate/SparseMultiply(_:_:)-8ehhn)

Performs the multiply operation *Y = Subfactor * X*, in place on a vector of double-precision values.

[`func SparseMultiply(SparseOpaqueSubfactor_Float, DenseVector_Float)`](/documentation/Accelerate/SparseMultiply(_:_:)-7l3sr)

Performs the multiply operation *Y = Subfactor * X*, in place on a vector of single-precision values.

[`func SparseMultiply(SparseOpaqueSubfactor_Double, DenseVector_Double, DenseVector_Double)`](/documentation/Accelerate/SparseMultiply(_:_:_:)-6abql)

Performs the multiply operation *Y = Subfactor * X* on a vector of double-precision values.

[`func SparseMultiply(SparseOpaqueSubfactor_Float, DenseVector_Float, DenseVector_Float)`](/documentation/Accelerate/SparseMultiply(_:_:_:)-2h425)

Performs the multiply operation *Y = Subfactor ** *X* on a vector of single-precision values.

[`func SparseMultiply(SparseOpaqueSubfactor_Complex_Double, DenseMatrix_Complex_Double)`](/documentation/Accelerate/SparseMultiply(_:_:)-3s0hu)

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

[`func SparseMultiply(SparseOpaqueSubfactor_Complex_Double, DenseVector_Complex_Double)`](/documentation/Accelerate/SparseMultiply(_:_:)-9fn7j)

Perform the multiply operation `y = Subfactor * x` for complex double values, in place.

[`func SparseMultiply(SparseOpaqueSubfactor_Complex_Double, DenseVector_Complex_Double, DenseVector_Complex_Double)`](/documentation/Accelerate/SparseMultiply(_:_:_:)-4fwfv)

Perform the multiply operation `y = Subfactor * x` for complex double values..

[`func SparseMultiply(SparseOpaqueSubfactor_Complex_Float, DenseVector_Complex_Float, DenseVector_Complex_Float)`](/documentation/Accelerate/SparseMultiply(_:_:_:)-58wuo)

Perform the multiply operation `y = Subfactor * x` for complex float values..

[`func SparseMultiply(SparseOpaqueSubfactor_Complex_Float, DenseMatrix_Complex_Float, DenseMatrix_Complex_Float)`](/documentation/Accelerate/SparseMultiply(_:_:_:)-6wrnf)

Perform the multiply operation `Y = Subfactor * X` for complex float values.

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

[`func SparseMultiply(SparseOpaqueSubfactor_Double, DenseVector_Double, UnsafeMutableRawPointer)`](/documentation/Accelerate/SparseMultiply(_:_:_:)-9tahm)

Performs the multiply operation *Y = Subfactor * X* on a vector of double-precision values *X*, in place and without any internal memory allocations.

[`func SparseMultiply(SparseOpaqueSubfactor_Float, DenseVector_Float, UnsafeMutableRawPointer)`](/documentation/Accelerate/SparseMultiply(_:_:_:)-4u1y3)

Performs the multiply operation *Y = Subfactor * X* on a vector of single-precision values *X*, in place and without any internal memory allocations.

[`func SparseMultiply(SparseOpaqueSubfactor_Double, DenseVector_Double, DenseVector_Double, UnsafeMutableRawPointer)`](/documentation/Accelerate/SparseMultiply(_:_:_:_:)-1ooyi)

Performs the multiply operation *Y = Subfactor * X* on a vector of double-precision values *X*, without any internal memory allocations.

[`func SparseMultiply(SparseOpaqueSubfactor_Float, DenseVector_Float, DenseVector_Float, UnsafeMutableRawPointer)`](/documentation/Accelerate/SparseMultiply(_:_:_:_:)-3l60d)

Performs the multiply operation *Y = Subfactor * X* on a vector of double-precision values *X*, without any internal memory allocations.

[`func SparseMultiply(SparseOpaqueSubfactor_Complex_Double, DenseVector_Complex_Double, UnsafeMutableRawPointer)`](/documentation/Accelerate/SparseMultiply(_:_:_:)-5etjg)

Perform the multiply operation `y = Subfactor * x` in place for complex double values.

[`func SparseMultiply(SparseOpaqueSubfactor_Complex_Float, DenseVector_Complex_Float, UnsafeMutableRawPointer)`](/documentation/Accelerate/SparseMultiply(_:_:_:)-5kh07)

Perform the multiply operation `y = Subfactor * x` in place for complex float values.

[`func SparseMultiply(SparseOpaqueSubfactor_Complex_Float, DenseVector_Complex_Float, DenseVector_Complex_Float, UnsafeMutableRawPointer)`](/documentation/Accelerate/SparseMultiply(_:_:_:_:)-4xr8)

Perform the multiply operation `y = Subfactor * x` for complex float values..

[`func SparseMultiply(SparseOpaqueSubfactor_Complex_Double, DenseVector_Complex_Double, DenseVector_Complex_Double, UnsafeMutableRawPointer)`](/documentation/Accelerate/SparseMultiply(_:_:_:_:)-7xipz)

Perform the multiply operation `y = Subfactor * x` for complex double values.

[`func SparseMultiply(SparseOpaqueSubfactor_Complex_Double, DenseMatrix_Complex_Double, DenseMatrix_Complex_Double, UnsafeMutableRawPointer)`](/documentation/Accelerate/SparseMultiply(_:_:_:_:)-9v0nu)

Perform the multiply operation `Y = Subfactor * X` for complex double 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)