distance.js 603 B

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