# HG changeset patch # User Chris Cannam # Date 1421426636 0 # Node ID ecfb4ada171ba27ef61f1d0b0ef483d7d637798e # Parent 254e16f831ee749c275f01300f79be4c9209da9d Add a constant value (representing "noise") to each distance and sum diff -r 254e16f831ee -r ecfb4ada171b src/DistanceMetric.cpp --- 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 &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; }