summaryrefslogtreecommitdiff
path: root/gr-trellis/src/lib/trellis_siso_f.cc
diff options
context:
space:
mode:
authoranastas <anastas@221aa14e-8319-0410-a670-987f0aec2ac5>2007-02-04 23:09:12 +0000
committeranastas <anastas@221aa14e-8319-0410-a670-987f0aec2ac5>2007-02-04 23:09:12 +0000
commit82a5715de7e2ad1448ab98cd7081c8cca5b7e763 (patch)
tree47a9789c714ec5d9be790a5cc285294a527692ce /gr-trellis/src/lib/trellis_siso_f.cc
parent6bfcea09c4fe36804294f96131342aa80a854311 (diff)
added support for irregular FSMs
git-svn-id: http://gnuradio.org/svn/gnuradio/trunk@4371 221aa14e-8319-0410-a670-987f0aec2ac5
Diffstat (limited to 'gr-trellis/src/lib/trellis_siso_f.cc')
-rw-r--r--gr-trellis/src/lib/trellis_siso_f.cc10
1 files changed, 5 insertions, 5 deletions
diff --git a/gr-trellis/src/lib/trellis_siso_f.cc b/gr-trellis/src/lib/trellis_siso_f.cc
index b3d18c2b7b..9fe503eea4 100644
--- a/gr-trellis/src/lib/trellis_siso_f.cc
+++ b/gr-trellis/src/lib/trellis_siso_f.cc
@@ -129,8 +129,8 @@ inline float min_star(float a, float b)
void siso_algorithm(int I, int S, int O,
const std::vector<int> &NS,
const std::vector<int> &OS,
- const std::vector<int> &PS,
- const std::vector<int> &PI,
+ const std::vector< std::vector<int> > &PS,
+ const std::vector< std::vector<int> > &PI,
int K,
int S0,int SK,
bool POSTI, bool POSTO,
@@ -157,9 +157,9 @@ void siso_algorithm(int I, int S, int O,
norm=INF;
for(int j=0;j<S;j++) {
minm=INF;
- for(int i=0;i<I;i++) {
- int i0 = j*I+i;
- mm=alpha[k*S+PS[i0]]+priori[k*I+PI[i0]]+prioro[k*O+OS[PS[i0]*I+PI[i0]]];
+ for(int i=0;i<PS[j].size();i++) {
+ //int i0 = j*I+i;
+ mm=alpha[k*S+PS[j][i]]+priori[k*I+PI[j][i]]+prioro[k*O+OS[PS[j][i]*I+PI[j][i]]];
minm=(*p2mymin)(minm,mm);
}
alpha[(k+1)*S+j]=minm;