Add dist method to calculate two vector's distance

This commit is contained in:
Wenbin Zhang 2016-01-22 17:01:12 -08:00
parent 2c89872b54
commit f40b3c6a99
1 changed files with 20 additions and 0 deletions

View File

@ -245,6 +245,26 @@ public func dot(x: [Double], y: [Double]) -> Double {
return result
}
// MARK: - Distance
public func dist(x: [Float], y: [Float]) -> Float {
precondition(x.count == y.count, "Vectors must have equal count")
let sub = x - y
var squared = [Float](count: x.count, repeatedValue: 0.0)
vDSP_vsq(sub, 1, &squared, 1, vDSP_Length(x.count))
return sqrt(sum(squared))
}
public func dist(x: [Double], y: [Double]) -> Double {
precondition(x.count == y.count, "Vectors must have equal count")
let sub = x - y
var squared = [Double](count: x.count, repeatedValue: 0.0)
vDSP_vsqD(sub, 1, &squared, 1, vDSP_Length(x.count))
return sqrt(sum(squared))
}
// MARK: - Operators
func + (lhs: [Float], rhs: [Float]) -> [Float] {