viterbi.cpp File Reference

#include "viterbi.h"
#include <spuc/spuc_defines.h>
#include <cmath>

Include dependency graph for viterbi.cpp:


Namespaces

namespace  SPUC

Defines

#define BUTTERFLY(i, sym)

Define Documentation

#define BUTTERFLY ( i,
sym   ) 

Value:

{ \
        int m0,m1;\
\
        /* ACS for 0 branch */\
        m0 = state[i].metric + euclid[sym];     /* 2*i */\
        m1 = state[i+32].metric + euclid[3^sym];        /* 2*i + 64 */\
        if(m0 > m1){\
                next[2*i].metric = m0;\
                next[2*i].path = state[i].path << 1;\
        } else {\
                next[2*i].metric = m1;\
                next[2*i].path = (state[i+32].path << 1)|1;\
        }\
        /* ACS for 1 branch */\
        m0 = state[i].metric + euclid[3^sym];   /* 2*i + 1 */\
        m1 = state[i+32].metric + euclid[sym];  /* 2*i + 65 */\
        if(m0 > m1){\
                next[2*i+1].metric = m0;\
                next[2*i+1].path = state[i].path << 1;\
        } else {\
                next[2*i+1].metric = m1;\
                next[2*i+1].path = (state[i+32].path << 1)|1;\
        }\
}


Generated on Mon Jun 9 19:40:16 2008 for DSPTemplates by  doxygen 1.4.7