40 lines
742 B
JavaScript
40 lines
742 B
JavaScript
"use strict";
|
|
|
|
module.exports = {
|
|
/**
|
|
* Euclidean distance
|
|
*/
|
|
eudist: function eudist(v1, v2, sqrt) {
|
|
var len = v1.length;
|
|
var sum = 0;
|
|
|
|
for (var i = 0; i < len; i++) {
|
|
var d = (v1[i] || 0) - (v2[i] || 0);
|
|
sum += d * d;
|
|
}
|
|
// Square root not really needed
|
|
return sqrt ? Math.sqrt(sum) : sum;
|
|
},
|
|
mandist: function mandist(v1, v2, sqrt) {
|
|
var len = v1.length;
|
|
var sum = 0;
|
|
|
|
for (var i = 0; i < len; i++) {
|
|
sum += Math.abs((v1[i] || 0) - (v2[i] || 0));
|
|
}
|
|
|
|
// Square root not really needed
|
|
return sqrt ? Math.sqrt(sum) : sum;
|
|
},
|
|
|
|
|
|
/**
|
|
* Unidimensional distance
|
|
*/
|
|
dist: function dist(v1, v2, sqrt) {
|
|
var d = Math.abs(v1 - v2);
|
|
return sqrt ? d : d * d;
|
|
}
|
|
};
|
|
//# sourceMappingURL=distance.js.map
|