Changed `exp…` of ’Arithmetic.swift’ be implemented in terms of `expInPlace`
This commit is contained in:
parent
d0633cf731
commit
91682c61ee
|
@ -518,34 +518,16 @@ func remainderInPlace<L: UnsafeMutableMemoryAccessible, R: UnsafeMemoryAccessibl
|
||||||
|
|
||||||
/// - Warning: does not support memory stride (assumes stride is 1).
|
/// - Warning: does not support memory stride (assumes stride is 1).
|
||||||
public func exp<X: UnsafeMemoryAccessible>(_ lhs: X) -> [Float] where X.Element == Float {
|
public func exp<X: UnsafeMemoryAccessible>(_ lhs: X) -> [Float] where X.Element == Float {
|
||||||
return lhs.withUnsafeMemory { lhsMemory in
|
var results = Array(lhs)
|
||||||
precondition(lhsMemory.stride == 1, "\(#function) does not support strided memory access")
|
expInPlace(&results)
|
||||||
|
return results
|
||||||
var lhsCount = Int32(lhs.count)
|
|
||||||
|
|
||||||
var results = [Float](repeating: 0.0, count: lhs.count)
|
|
||||||
results.withUnsafeMutableBufferPointer { bufferPointer in
|
|
||||||
vvexpf(bufferPointer.baseAddress!, lhsMemory.pointer, &lhsCount)
|
|
||||||
}
|
|
||||||
|
|
||||||
return results
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/// - Warning: does not support memory stride (assumes stride is 1).
|
/// - Warning: does not support memory stride (assumes stride is 1).
|
||||||
public func exp<X: UnsafeMemoryAccessible>(_ lhs: X) -> [Double] where X.Element == Double {
|
public func exp<X: UnsafeMemoryAccessible>(_ lhs: X) -> [Double] where X.Element == Double {
|
||||||
return lhs.withUnsafeMemory { lhsMemory in
|
var results = Array(lhs)
|
||||||
precondition(lhsMemory.stride == 1, "\(#function) does not support strided memory access")
|
expInPlace(&results)
|
||||||
|
return results
|
||||||
var lhsCount = Int32(lhs.count)
|
|
||||||
|
|
||||||
var results = [Double](repeating: 0.0, count: lhs.count)
|
|
||||||
results.withUnsafeMutableBufferPointer { bufferPointer in
|
|
||||||
vvexp(bufferPointer.baseAddress!, lhsMemory.pointer, &lhsCount)
|
|
||||||
}
|
|
||||||
|
|
||||||
return results
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// MARK: - Exponential: In Place
|
// MARK: - Exponential: In Place
|
||||||
|
|
Loading…
Reference in New Issue