Mercurial > hg > may
changeset 595:3b1f2aa8d36b
Euclidean distance
author | Chris Cannam |
---|---|
date | Wed, 03 Dec 2014 19:19:49 +0000 |
parents | 495cc8973458 |
children | 5bbd6ce6e3ee |
files | src/may/bits/VectorBits.java src/may/vector.yeti |
diffstat | 2 files changed, 15 insertions(+), 0 deletions(-) [+] |
line wrap: on
line diff
--- a/src/may/bits/VectorBits.java Wed Dec 03 19:15:51 2014 +0000 +++ b/src/may/bits/VectorBits.java Wed Dec 03 19:19:49 2014 +0000 @@ -58,5 +58,15 @@ } return out; } + + public static double euclideanDistance(double[] v1, double[] v2) { + checkLengths(v1, v2); + double sum = 0.0; + for (int i = 0; i < v1.length; ++i) { + double d = v1[i] - v2[i]; + sum += d * d; + } + return Math.sqrt(sum); + } }
--- a/src/may/vector.yeti Wed Dec 03 19:15:51 2014 +0000 +++ b/src/may/vector.yeti Wed Dec 03 19:19:49 2014 +0000 @@ -292,6 +292,9 @@ v; fi); +euclideanDistance v1 v2 is ~double[] -> ~double[] -> number = + VectorBits#euclideanDistance(v1, v2); + zipped vv is list?<~double[]> -> ~double[] = case vv of [v]: v; @@ -366,6 +369,7 @@ maxindex, minindex, unityNormalised, + euclideanDistance, zipped, unzipped, } as { @@ -411,6 +415,7 @@ maxindex is vector_t -> number, minindex is vector_t -> number, unityNormalised is vector_t -> vector_t, + euclideanDistance is vector_t -> vector_t -> number, zipped is list?<vector_t> -> vector_t, unzipped is number -> vector_t -> array<vector_t>, }