diff viterbi.cpp @ 120:7a8956e903e1 monophonicness

minor changes for fewer warnings
author matthiasm
date Fri, 15 Apr 2011 10:01:53 +0000
parents c4d1208e5ea9
children 21181297da99
line wrap: on
line diff
--- a/viterbi.cpp	Thu Mar 31 14:59:11 2011 +0100
+++ b/viterbi.cpp	Fri Apr 15 10:01:53 2011 +0000
@@ -4,8 +4,8 @@
 
 std::vector<int> ViterbiPath(std::vector<double> init, std::vector<vector<double> > trans, std::vector<vector<double> > obs, double *delta, vector<double> *scale) {
     
-    int nState = init.size();
-    int nFrame = obs.size();
+    unsigned nState = init.size();
+    unsigned nFrame = obs.size();
     
     // check for consistency
     if (trans[0].size() != nState || trans.size() != nState || obs[0].size() != nState) {
@@ -18,24 +18,24 @@
     double deltasum = 0;
     
     /* initialise first frame */
-    for (int iState = 0; iState < nState; ++iState) {
+    for (unsigned iState = 0; iState < nState; ++iState) {
         delta[iState] = init[iState] * obs[0][iState];
         deltasum += delta[iState];
     }
-    for (int iState = 0; iState < nState; ++iState) delta[iState] /= deltasum; // normalise (scale)
+    for (unsigned iState = 0; iState < nState; ++iState) delta[iState] /= deltasum; // normalise (scale)
     scale->push_back(1.0/deltasum);
     psi.push_back(vector<int>(nState,0));
     
     /* rest of the forward step */
-    for (int iFrame = 1; iFrame < nFrame; ++iFrame) {
+    for (unsigned iFrame = 1; iFrame < nFrame; ++iFrame) {
         deltasum = 0;
         psi.push_back(vector<int>(nState,0));
         /* every state wants to know which previous state suits it best */
-        for (int jState = 0; jState < nState; ++jState) {            
+        for (unsigned jState = 0; jState < nState; ++jState) {            
             int bestState = nState - 1;
             double bestValue = 0;
             if (obs[iFrame][jState] > 0) {
-                for (int iState = 0; iState < nState; ++iState) {
+                for (unsigned iState = 0; iState < nState; ++iState) {
                     double currentValue = delta[(iFrame-1) * nState + iState] * trans[iState][jState];
                     if (currentValue > bestValue) {
                         bestValue = currentValue;
@@ -49,12 +49,12 @@
             psi[iFrame][jState] = bestState;
         }
         if (deltasum > 0) {
-            for (int iState = 0; iState < nState; ++iState) {            
+            for (unsigned iState = 0; iState < nState; ++iState) {            
                 delta[iFrame * nState + iState] /= deltasum; // normalise (scale)
             }
             scale->push_back(1.0/deltasum);
         } else {
-            for (int iState = 0; iState < nState; ++iState) {            
+            for (unsigned iState = 0; iState < nState; ++iState) {            
                 delta[iFrame * nState + iState] = 1.0/nState;
             }
             scale->push_back(1.0);
@@ -64,7 +64,7 @@
     
     /* initialise backward step */
     double bestValue = 0;
-    for (int iState = 0; iState < nState; ++iState) {
+    for (unsigned iState = 0; iState < nState; ++iState) {
         double currentValue = delta[(nFrame-1) * nState + iState];
         if (currentValue > bestValue) {
             bestValue = currentValue;