diff options
author | anastas <anastas@221aa14e-8319-0410-a670-987f0aec2ac5> | 2007-02-04 23:09:12 +0000 |
---|---|---|
committer | anastas <anastas@221aa14e-8319-0410-a670-987f0aec2ac5> | 2007-02-04 23:09:12 +0000 |
commit | 82a5715de7e2ad1448ab98cd7081c8cca5b7e763 (patch) | |
tree | 47a9789c714ec5d9be790a5cc285294a527692ce /gr-trellis/src/lib/trellis_siso_f.cc | |
parent | 6bfcea09c4fe36804294f96131342aa80a854311 (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.cc | 10 |
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; |