Main Page | Modules | Namespace List | Class Hierarchy | Alphabetical List | Class List | Directories | File List | Namespace Members | Class Members | File Members

viterbi.cpp File Reference

#include "viterbi.h"
#include <spuc.h>
#include <math.h>

Include dependency graph for viterbi.cpp:


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 Fri Sep 16 11:03:55 2005 for spuc by  doxygen 1.4.4