<!--
{
  "documentType" : "article",
  "framework" : "Accelerate",
  "identifier" : "/documentation/Accelerate/sparse-matrix-and-dense-matrix-multiplication",
  "metadataVersion" : "0.1.0",
  "role" : "collectionGroup",
  "title" : "Sparse Matrix and Dense Matrix Multiplication"
}
-->

# Sparse Matrix and Dense Matrix Multiplication

Multiply sparse and dense matrices.

## Topics

### Multiplication functions

[`func SparseMultiply(SparseMatrix_Double, DenseMatrix_Double, DenseMatrix_Double)`](/documentation/Accelerate/SparseMultiply(_:_:_:)-8d9lh)

Performs the multiply operation *Y* *= AX* on a sparse matrix of double-precision, floating-point values.

[`func SparseMultiply(SparseMatrix_Float, DenseMatrix_Float, DenseMatrix_Float)`](/documentation/Accelerate/SparseMultiply(_:_:_:)-9kraw)

Performs the multiply operation *Y* *= AX*_ _on a sparse matrix of single-precision, floating-point values.

[`func SparseMultiply(Double, SparseMatrix_Double, DenseMatrix_Double, DenseMatrix_Double)`](/documentation/Accelerate/SparseMultiply(_:_:_:_:)-73ruq)

Performs the multiply operation *Y = alpha * AX* on a sparse matrix of double-precision, floating-point values.

[`func SparseMultiply(Float, SparseMatrix_Float, DenseMatrix_Float, DenseMatrix_Float)`](/documentation/Accelerate/SparseMultiply(_:_:_:_:)-2qh3a)

Performs the multiply operation *Y = alpha * AX* on a sparse matrix of single-precision, floating-point values.

### Complex multiplication functions

[`func SparseMultiply(SparseMatrix_Complex_Double, DenseMatrix_Complex_Double, DenseMatrix_Complex_Double)`](/documentation/Accelerate/SparseMultiply(_:_:_:)-1sjuk)

Performs the multiplication `Y = AX` for complex double values.

[`func SparseMultiply(SparseMatrix_Complex_Float, DenseMatrix_Complex_Float, DenseMatrix_Complex_Float)`](/documentation/Accelerate/SparseMultiply(_:_:_:)-85a24)

Performs the multiplication `Y = AX` for complex float values.

[`static void SparseMultiply(__SPARSE_float_complex alpha, SparseMatrix_Complex_Float A, DenseMatrix_Complex_Float X, DenseMatrix_Complex_Float Y);`](/documentation/Accelerate/SparseMultiply-5bf3v)

Performs the multiplication `Y = alpha * AX` for complex float values

[`static void SparseMultiply(__SPARSE_double_complex alpha, SparseMatrix_Complex_Double A, DenseMatrix_Complex_Double X, DenseMatrix_Complex_Double Y);`](/documentation/Accelerate/SparseMultiply-65jst)

Performs the multiplication `Y = alpha * AX` for complex double values

### Multiply-add functions

[`func SparseMultiplyAdd(SparseMatrix_Double, DenseMatrix_Double, DenseMatrix_Double)`](/documentation/Accelerate/SparseMultiplyAdd(_:_:_:)-lgm5)

Performs the multiply operation *Y += AX* on a sparse matrix of double-precision, floating-point values.

[`func SparseMultiplyAdd(SparseMatrix_Float, DenseMatrix_Float, DenseMatrix_Float)`](/documentation/Accelerate/SparseMultiplyAdd(_:_:_:)-8pgpq)

Performs the multiply operation *Y += AX* on a sparse matrix of single-precision, floating-point values.

[`func SparseMultiplyAdd(Double, SparseMatrix_Double, DenseMatrix_Double, DenseMatrix_Double)`](/documentation/Accelerate/SparseMultiplyAdd(_:_:_:_:)-86gfz)

Performs the multiply operation *Y += alpha * AX* on a sparse matrix of double-precision, floating-point values.

[`func SparseMultiplyAdd(Float, SparseMatrix_Float, DenseMatrix_Float, DenseMatrix_Float)`](/documentation/Accelerate/SparseMultiplyAdd(_:_:_:_:)-n61k)

Performs the multiply operation *Y += alpha * AX* on a sparse matrix of single-precision, floating-point values.

### Complex multiply-add functions

[`func SparseMultiplyAdd(SparseMatrix_Complex_Double, DenseMatrix_Complex_Double, DenseMatrix_Complex_Double)`](/documentation/Accelerate/SparseMultiplyAdd(_:_:_:)-658zk)

Performs `Y += AX` for complex double values

[`func SparseMultiplyAdd(SparseMatrix_Complex_Float, DenseMatrix_Complex_Float, DenseMatrix_Complex_Float)`](/documentation/Accelerate/SparseMultiplyAdd(_:_:_:)-4dpyu)

Performs `Y += AX` for complex float values

[`static void SparseMultiplyAdd(__SPARSE_float_complex alpha, SparseMatrix_Complex_Float A, DenseMatrix_Complex_Float X, DenseMatrix_Complex_Float Y);`](/documentation/Accelerate/SparseMultiplyAdd-4gs2p)

Performs `Y += alpha * AX` for complex float values

[`static void SparseMultiplyAdd(__SPARSE_double_complex alpha, SparseMatrix_Complex_Double A, DenseMatrix_Complex_Double X, DenseMatrix_Complex_Double Y);`](/documentation/Accelerate/SparseMultiplyAdd-7pu5c)

Performs `Y += alpha * AX` 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)