Mercurial > hg > match-vamp
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; }