Contents

taperedMerge(_:_:result:)

Computes the result of a tapered merge between two double-precision vectors.

Declaration

static func taperedMerge<T, U, V>(_ vectorA: T, _ vectorB: U, result: inout V) where T : AccelerateBuffer, U : AccelerateBuffer, V : AccelerateMutableBuffer, T.Element == Double, U.Element == Double, V.Element == Double

Parameters

  • vectorA:

    The first vector to merge.

  • vectorB:

    The second vector to merge.

  • result:

    The destination vector that receives the result.

Discussion

The following code performs a tapered merge between two vectors that represent sine waves at different frequencies:

let count = 1024

let vectorA: [Double] = (0 ..< count).map {
    return sin(Float($0) * 0.4)
}

let vectorB: [Double] = (0 ..< count).map {
    return sin(Float($0) * 0.025)
}

let tapered = [Double](unsafeUninitializedCapacity: count) {
    buffer, initializedCount in
    
    vDSP.taperedMerge(vectorA, vectorB,
                      result: &buffer)
    
    initializedCount = count
}

The following image shows the result of the tapered merge in tapered.

[Image]

See Also

Vector-to-vector merging functions