subtract(multiplication:multiplication:result:)
Calculates the single-precision element-wise difference of the products of two pairs of vectors.
Declaration
static func subtract<R, S, T, U, V>(multiplication multiplicationAB: (a: T, b: U), multiplication multiplicationCD: (c: R, d: S), result: inout V) where R : AccelerateBuffer, S : AccelerateBuffer, T : AccelerateBuffer, U : AccelerateBuffer, V : AccelerateMutableBuffer, R.Element == Float, S.Element == Float, T.Element == Float, U.Element == Float, V.Element == FloatParameters
- multiplicationAB:
A tuple that contains the vectors
AandBinE = (A * B) - (C * D). - multiplicationCD:
A tuple that contains the vectors
CandDinE = (A * B) - (C * D). - result:
The output vector
EinE = (A * B) - (C * D).
Discussion
This function calculates the differences of the first N elements of the product of vectors A and B and the product of vectors C and D.
for (n = 0; n < N; ++n)
E[n] = A[n]*B[n] - C[n]*D[n]; [Image]
The following code shows an example of using this function:
let count = 5
let a: [Float] = [ 1, 2, 3, 4, 5]
let b: [Float] = [10, 20, 30, 40, 50]
let c: [Float] = [ 5, 4, 3, 2, 1]
let d: [Float] = [50, 40, 30, 20, 10]
let e = [Float](unsafeUninitializedCapacity: count) {
buffer, initializedCount in
vDSP.subtract(multiplication: (a, b),
multiplication: (c, d),
result: &buffer)
initializedCount = count
}
// Prints "[-240.0, -120.0, 0.0, 120.0, 240.0]".
print(e)
See Also
Subtraction
subtract(_:_:)subtract(_:_:)subtract(_:_:result:)subtract(_:_:result:)subtract(_:from:count:result:)subtract(_:from:count:result:)subtract(multiplication:_:)subtract(multiplication:_:)subtract(multiplication:_:)subtract(multiplication:_:)subtract(multiplication:_:result:)subtract(multiplication:_:result:)subtract(multiplication:_:result:)subtract(multiplication:_:result:)subtract(multiplication:multiplication:)