diff src/DistanceMetric.cpp @ 145:ecfb4ada171b noise

Add a constant value (representing "noise") to each distance and sum
author Chris Cannam
date Fri, 16 Jan 2015 16:43:56 +0000
parents 6914a6a01ffc
children b79151bb75af
line wrap: on
line diff
--- a/src/DistanceMetric.cpp	Fri Jan 16 10:28:29 2015 +0000
+++ b/src/DistanceMetric.cpp	Fri Jan 16 16:43:56 2015 +0000
@@ -38,21 +38,20 @@
 			     const vector<double> &f2)
 {
     double d = 0;
-    double sum1 = 0;
-    double sum2 = 0;
     double sum = 0;
 
     int featureSize = f1.size();
     assert(int(f2.size()) == featureSize);
-    
+
     for (int i = 0; i < featureSize; i++) {
         d += fabs(f1[i] - f2[i]);
-        sum1 += fabs(f1[i]);
-        sum2 += fabs(f2[i]);
+        sum += fabs(f1[i]) + fabs(f2[i]);
     }
 
-    sum = sum1 + sum2;
-
+    double noise = 1e-3 * featureSize;
+    d += noise;
+    sum += noise;
+    
     if (sum == 0) {
         return 0;
     }