distance.js 742 B

123456789101112131415161718192021222324252627282930313233343536373839
  1. "use strict";
  2. module.exports = {
  3. /**
  4. * Euclidean distance
  5. */
  6. eudist: function eudist(v1, v2, sqrt) {
  7. var len = v1.length;
  8. var sum = 0;
  9. for (var i = 0; i < len; i++) {
  10. var d = (v1[i] || 0) - (v2[i] || 0);
  11. sum += d * d;
  12. }
  13. // Square root not really needed
  14. return sqrt ? Math.sqrt(sum) : sum;
  15. },
  16. mandist: function mandist(v1, v2, sqrt) {
  17. var len = v1.length;
  18. var sum = 0;
  19. for (var i = 0; i < len; i++) {
  20. sum += Math.abs((v1[i] || 0) - (v2[i] || 0));
  21. }
  22. // Square root not really needed
  23. return sqrt ? Math.sqrt(sum) : sum;
  24. },
  25. /**
  26. * Unidimensional distance
  27. */
  28. dist: function dist(v1, v2, sqrt) {
  29. var d = Math.abs(v1 - v2);
  30. return sqrt ? d : d * d;
  31. }
  32. };
  33. //# sourceMappingURL=distance.js.map