diff src/FeatureConditioner.cpp @ 116:eed5f9594268 refactors

Add OutputDerivative, for completeness, & make DistanceMetric cope with negative feature values
author Chris Cannam
date Fri, 05 Dec 2014 10:05:31 +0000
parents 593054bf6476
children 8e240bbea845
line wrap: on
line diff
--- a/src/FeatureConditioner.cpp	Thu Dec 04 16:51:13 2014 +0000
+++ b/src/FeatureConditioner.cpp	Fri Dec 05 10:05:31 2014 +0000
@@ -37,7 +37,10 @@
     vector<double> out(size, 0.0);
 
     double totalEnergy = 0;
-    if (m_params.order == OutputRectifiedDerivative) {
+
+    switch (m_params.order) {
+
+    case OutputRectifiedDerivative:
         for (int i = 0; i < size; i++) {
             totalEnergy += feature[i];
             if (feature[i] > m_prev[i]) {
@@ -46,11 +49,21 @@
                 out[i] = 0;
             }
         }
-    } else {
+        break;
+
+    case OutputDerivative:
         for (int i = 0; i < size; i++) {
+            totalEnergy += feature[i];
+            out[i] = feature[i] - m_prev[i];
+        }
+        break;
+        
+    case OutputFeatures:
+        for (int i = 0; i < size; i++) {
+            totalEnergy += feature[i];
             out[i] = feature[i];
-            totalEnergy += out[i];
         }
+        break;
     }
 
     if (m_ltAverage == 0) {