---
title: vDSP
framework: accelerate
role: collectionGroup
role_heading: API Collection
path: accelerate/vdsp-library
---

# vDSP

Perform basic arithmetic operations and common digital signal processing (DSP) routines on large vectors.

## Overview

Overview The vDSP library contains a collection of highly optimized functions for DSP, type conversion, and general purpose arithmetic on large collections. The library includes DSP operations such as convolution and correlation, Fourier transformation, and biquadratic filtering. For arithmetic on large collections, vDSP includes functions such as multiply-add and reduction functions including sum, mean, and maximum. The following sequence of images illustrates an example of the vDSP library’s capabilities. The vDSP_vtmerg function combines two waveforms to produce a vector to create a smooth transition between two signals.

note: Unless otherwise mentioned, vDSP functions with the same input and output sizes (in bytes) work in-place. The majority of vDSP operations are single-threaded and run on a single core. However, the following functions may be multithreaded depending on the size of the data they’re operating on: vDSP_mmul vDSP_mmulD vDSP_zmma vDSP_zmmaD vDSP_zmms vDSP_zmmsD vDSP_zmmul vDSP_zmmulD vDSP_zmsm vDSP_zmsmD

## Topics

### Fundamentals

- [Controlling vDSP operations with stride](accelerate/controlling-vdsp-operations-with-stride.md)
- [Using vDSP for vector-based arithmetic](accelerate/using-vdsp-for-vector-based-arithmetic.md)

### Swift overlay

- [vDSP](accelerate/vdsp.md)
- [vDSP Protocols](accelerate/vdsp-protocols.md)

### Vector generation, filling, and clearing

- [Vector generation](accelerate/vector-generation.md)
- [Vector clear and fill functions](accelerate/vector-clear-and-fill-functions.md)

### Vector reduction

- [Vector extrema calculation](accelerate/vector-extrema-calculation.md)
- [Vector average calculation](accelerate/vector-average-calculation.md)
- [Vector summation](accelerate/vector-summation.md)

### Vector geometry functions

- [Vector distance and Pythagorean computation](accelerate/vector-distance-and-pythagorean-computation.md)
- [Dot product calculation](accelerate/dot-product-calculation.md)

### Element-wise vector arithmetic

- [Arithmetic operations](accelerate/arithmetic-operations.md)

### Vector-scalar arithmetic

- [Vector-scalar real arithmetic functions](accelerate/vector-scalar-real-arithmetic-functions.md)

### Vector-vector arithmetic

- [Vector-vector real arithmetic functions](accelerate/vector-vector-real-arithmetic-functions.md)
- [Complex basic arithmetic](accelerate/complex-basic-arithmetic.md)
- [Integer arithmetic](accelerate/integer-arithmetic.md)
- [Linear averaging functions](accelerate/linear-averaging-functions.md)
- [Polynomial evaluation](accelerate/polynomial-evaluation.md)

### Vector operations

- [Compression and gathering functions](accelerate/compression-and-gathering-functions.md)
- [Copying, element swapping, and merging functions](accelerate/copying-element-swapping-and-merging-functions.md)
- [Reversing and sorting functions](accelerate/reversing-and-sorting-functions.md)

### Vector interpolation

- [Linear interpolation functions](accelerate/linear-interpolation-functions.md)
- [Quadratic interpolation functions](accelerate/quadratic-interpolation-functions.md)

### Vector filtering

- [Biquadratic IIR filters](accelerate/biquadratic-iir-filters.md)
- [Single-channel biquadratic filters](accelerate/single-channel-biquadratic-filters.md)
- [Multichannel biquadratic filters](accelerate/multichannel-biquadratic-filters.md)
- [Finite impulse response filters](accelerate/finite-impulse-response-filters.md)
- [Recursive filters](accelerate/recursive-filters.md)

### Vector conversion functions

- [Conversion to decibel equivalents](accelerate/conversion-to-decibel-equivalents.md)
- [Type conversion](accelerate/type-conversion.md)
- [Complex vector conversion](accelerate/complex-vector-conversion.md)
- [Polar-rectangular conversion](accelerate/polar-rectangular-conversion.md)

### Single-vector arithmetic functions

- [Absolute and negation functions](accelerate/absolute-and-negation-functions.md)
- [Integration functions](accelerate/integration-functions.md)
- [Clipping, limit, and threshold operations](accelerate/clipping-limit-and-threshold-operations.md)
- [Normalization functions](accelerate/normalization-functions.md)
- [Phase computation functions](accelerate/phase-computation-functions.md)
- [Complex conjugation functions](accelerate/complex-conjugation-functions.md)
- [Vector squaring functions](accelerate/vector-squaring-functions.md)
- [Fractional part extraction](accelerate/fractional-part-extraction.md)
- [Zero crossing search](accelerate/zero-crossing-search.md)

### Single-vector sliding-window operations

- [Sliding-window reduction functions](accelerate/sliding-window-reduction-functions.md)

### Vector-to-vector spectra and coherence computation

- [Autospectrum computation](accelerate/autospectrum-computation.md)
- [Cross-spectrum computation](accelerate/cross-spectrum-computation.md)
- [Coherence function computation](accelerate/coherence-function-computation.md)

### Vector-to-vector extrema functions

- [Vector-to-vector minima and maxima](accelerate/vector-to-vector-minima-and-maxima.md)
- [Extrema finding functions](accelerate/extrema-finding-functions.md)

### Matrix operations

- [Multiplication](accelerate/multiplication.md)
- [Transposition](accelerate/transposition-vdsp.md)
- [Matrix and submatrix copying functions](accelerate/matrix-and-submatrix-copying-functions.md)

### Vector and matrix correlation and convolution

- [1D correlation and convolution](accelerate/1d-correlation-and-convolution.md)
- [2D convolution](accelerate/2d-convolution.md)

### Vector and matrix Fourier transforms

- [Fast Fourier transforms](accelerate/fast-fourier-transforms.md)
- [Discrete Fourier transforms](accelerate/discrete-fourier-transforms.md)
- [Discrete Cosine transforms](accelerate/discrete-cosine-transforms.md)

### Data types

- [vDSP_Length](accelerate/vdsp_length.md)
- [vDSP_Stride](accelerate/vdsp_stride.md)
- [DSPComplex](accelerate/dspcomplex.md)
- [COMPLEX_SPLIT](accelerate/complex_split.md)
- [DSPDoubleComplex](accelerate/dspdoublecomplex.md)
- [DOUBLE_COMPLEX_SPLIT](accelerate/double_complex_split.md)
- [DSPSplitComplex](accelerate/dspsplitcomplex.md)
- [DSPDoubleSplitComplex](accelerate/dspdoublesplitcomplex.md)
- [vDSP.VectorizableDouble](accelerate/vdsp/vectorizabledouble.md)
- [vDSP.VectorizableFloat](accelerate/vdsp/vectorizablefloat.md)

### Constants

- [vDSP Compile-Time Version Information](accelerate/vdsp-compile-time-version-information.md)

## See Also

### Signal Processing Essentials

- [Controlling vDSP operations with stride](accelerate/controlling-vdsp-operations-with-stride.md)
- [Using linear interpolation to construct new data points](accelerate/using-linear-interpolation-to-construct-new-data-points.md)
- [Using vDSP for vector-based arithmetic](accelerate/using-vdsp-for-vector-based-arithmetic.md)
- [Resampling a signal with decimation](accelerate/resampling-a-signal-with-decimation.md)
