Function

# vDSP_convD(_:_:_:_:_:_:_:_:)

Performs either correlation or convolution on two real double-precision vectors.

## Parameters

`__A`

Real double-precision input signal vector. The length of this vector must be at least N + P - 1.

`__IA`

The stride through `A`.

`__F`

Real double-precision filter vector.

`__IF`

The stride through `F`.

`__C`

Real double-precision output signal vector.

`__IC`

The stride through `C`.

`__N`

The length of `C`.

`__P`

The length of `F`.

## Discussion

If __`IF` is positive, `vDSP_convD(_:_:_:_:_:_:_:_:)` performs correlation. If __`IF` is negative, it performs convolution and `F` must point to the last vector element. The function can run in place, but `C` cannot be in place with `F`:

### Real Vectors

`static func convolve<T, U>(T, withKernel: U) -> [Double]`

Returns the 1D convolution of a double-precision vector.

`static func convolve<T, U>(T, withKernel: U) -> [Float]`

Returns the 1D convolution of a single-precision vector.

`static func convolve<T, U, V>(T, withKernel: U, result: inout V)`

Calculates the 1D convolution of a double-precision vector.

`static func convolve<T, U, V>(T, withKernel: U, result: inout V)`

Calculates the 1D convolution of a single-precision vector.

`static func correlate<T, U>(T, withKernel: U) -> [Double]`

Returns the correlation of a double-precision signal vector and a filter vector.

`static func correlate<T, U>(T, withKernel: U) -> [Float]`

Returns the correlation of a single-precision signal vector and a filter vector.

`static func correlate<T, U, V>(T, withKernel: U, result: inout V)`

Calculates the correlation of a double-precision signal vector and a filter vector.

`static func correlate<T, U, V>(T, withKernel: U, result: inout V)`

Calculates the correlation of a single-precision signal vector and a filter vector.