Removed unnecessary array allocation from `add`/`sub` in ‘Arithmetic.swift’

This commit is contained in:
Vincent Esche 2019-09-24 16:07:50 +02:00
parent e736a97b06
commit fa47d4e4cc
1 changed files with 12 additions and 4 deletions

View File

@ -23,11 +23,15 @@ import Accelerate
// MARK: - Addition
public func add<L: UnsafeMemoryAccessible>(_ lhs: L, _ rhs: Float) -> [Float] where L.Element == Float {
return add(lhs, [Float](repeating: rhs, count: numericCast(lhs.count)))
var results = Array(lhs)
addInPlace(&results, rhs)
return results
}
public func add<L: UnsafeMemoryAccessible>(_ lhs: L, _ rhs: Double) -> [Double] where L.Element == Double {
return add(lhs, [Double](repeating: rhs, count: numericCast(lhs.count)))
var results = Array(lhs)
addInPlace(&results, rhs)
return results
}
public func + <L: UnsafeMemoryAccessible>(lhs: L, rhs: Float) -> [Float] where L.Element == Float {
@ -103,11 +107,15 @@ public func .+= <L: UnsafeMutableMemoryAccessible, R: UnsafeMemoryAccessible>(lh
// MARK: - Subtraction
public func sub<L: UnsafeMemoryAccessible>(_ lhs: L, _ rhs: Float) -> [Float] where L.Element == Float {
return sub(lhs, [Float](repeating: rhs, count: numericCast(lhs.count)))
var results = Array(lhs)
subInPlace(&results, rhs)
return results
}
public func sub<L: UnsafeMemoryAccessible>(_ lhs: L, _ rhs: Double) -> [Double] where L.Element == Double {
return sub(lhs, [Double](repeating: rhs, count: numericCast(lhs.count)))
var results = Array(lhs)
subInPlace(&results, rhs)
return results
}
public func - <L: UnsafeMemoryAccessible>(lhs: L, rhs: Float) -> [Float] where L.Element == Float {