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

# Sparse Matrix and Dense Vector Multiplication

Multiply sparse matrices and dense vectors.

## Topics

### Multiplication functions

[`func SparseMultiply(SparseMatrix_Double, DenseVector_Double, DenseVector_Double)`](/documentation/Accelerate/SparseMultiply(_:_:_:)-9d57s)

Performs the multiplication *y = Ax* on a vector of double-precision, floating-point values.

[`func SparseMultiply(SparseMatrix_Float, DenseVector_Float, DenseVector_Float)`](/documentation/Accelerate/SparseMultiply(_:_:_:)-4hrs4)

Performs the multiplication *y = Ax* on a vector of single-precision, floating-point values.

[`func SparseMultiply(Double, SparseMatrix_Double, DenseVector_Double, DenseVector_Double)`](/documentation/Accelerate/SparseMultiply(_:_:_:_:)-76o5l)

Performs the multiply operation *y* *= alpha * Ax* on a vector of double-precision, floating-point values.

[`func SparseMultiply(Float, SparseMatrix_Float, DenseVector_Float, DenseVector_Float)`](/documentation/Accelerate/SparseMultiply(_:_:_:_:)-8yzgo)

Performs the multiply operation *y* *= alpha * Ax* on a vector of single-precision, floating-point values.

### Complex multiplication functions

[`func SparseMultiply(SparseMatrix_Complex_Float, DenseVector_Complex_Float, DenseVector_Complex_Float)`](/documentation/Accelerate/SparseMultiply(_:_:_:)-6gzb3)

Performs the multiplication `y = Ax` for complex float values

[`static void SparseMultiply(__SPARSE_double_complex alpha, SparseMatrix_Complex_Double A, DenseVector_Complex_Double x, DenseVector_Complex_Double y);`](/documentation/Accelerate/SparseMultiply-15ysy)

Performs the multiplication `y = alpha * Ax` for complex double values.

[`static void SparseMultiply(__SPARSE_float_complex alpha, SparseMatrix_Complex_Float A, DenseVector_Complex_Float x, DenseVector_Complex_Float y);`](/documentation/Accelerate/SparseMultiply-4xaml)

Performs the multiplication `y = alpha * Ax` for complex float values.

[`func SparseMultiply(SparseMatrix_Complex_Double, DenseVector_Complex_Double, DenseVector_Complex_Double)`](/documentation/Accelerate/SparseMultiply(_:_:_:)-6xiv8)

Performs the multiplication `y = Ax` for complex double values

### Multiply-add functions

[`func SparseMultiplyAdd(SparseMatrix_Double, DenseVector_Double, DenseVector_Double)`](/documentation/Accelerate/SparseMultiplyAdd(_:_:_:)-7iuo9)

Performs the multiply operation *y += Ax* on a vector of double-precision, floating-point values.

[`func SparseMultiplyAdd(SparseMatrix_Float, DenseVector_Float, DenseVector_Float)`](/documentation/Accelerate/SparseMultiplyAdd(_:_:_:)-ineu)

Performs the multiply operation *y += Ax* on a vector of double-precision, floating-point values.

[`func SparseMultiplyAdd(Double, SparseMatrix_Double, DenseVector_Double, DenseVector_Double)`](/documentation/Accelerate/SparseMultiplyAdd(_:_:_:_:)-3oa6n)

Performs the multiply operation *y += alpha * Ax* on a vector of double-precision, floating-point values.

[`func SparseMultiplyAdd(Float, SparseMatrix_Float, DenseVector_Float, DenseVector_Float)`](/documentation/Accelerate/SparseMultiplyAdd(_:_:_:_:)-8n6xy)

Performs the multiply operation *y += alpha * Ax* on a vector of single-precision, floating-point values.

### Complex multiply-add functions

[`func SparseMultiplyAdd(SparseMatrix_Complex_Double, DenseVector_Complex_Double, DenseVector_Complex_Double)`](/documentation/Accelerate/SparseMultiplyAdd(_:_:_:)-6qi0p)

Performs `y += Ax` for complex double values

[`func SparseMultiplyAdd(SparseMatrix_Complex_Float, DenseVector_Complex_Float, DenseVector_Complex_Float)`](/documentation/Accelerate/SparseMultiplyAdd(_:_:_:)-8dqy7)

Performs `y += Ax` for complex float values

[`static void SparseMultiplyAdd(__SPARSE_double_complex alpha, SparseMatrix_Complex_Double A, DenseVector_Complex_Double x, DenseVector_Complex_Double y);`](/documentation/Accelerate/SparseMultiplyAdd-47egy)

Performs `y += alpha * Ax` for complex double values

[`static void SparseMultiplyAdd(__SPARSE_float_complex alpha, SparseMatrix_Complex_Float A, DenseVector_Complex_Float x, DenseVector_Complex_Float y);`](/documentation/Accelerate/SparseMultiplyAdd-8ym23)

Performs `y += alpha * Ax` for complex float 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)