#include <iostream>
@SPTR_NAME@
-trellis_make_@BASE_NAME@ (const fsm &FSM, const int ST)
+trellis_make_@BASE_NAME@ (const fsm &FSM, int ST)
{
return @SPTR_NAME@ (new @NAME@ (FSM,ST));
}
-@NAME@::@NAME@ (const fsm &FSM, const int ST)
+@NAME@::@NAME@ (const fsm &FSM, int ST)
: gr_sync_block ("@BASE_NAME@",
gr_make_io_signature (1, -1, sizeof (@I_TYPE@)),
gr_make_io_signature (1, -1, sizeof (@O_TYPE@))),
gr_vector_const_void_star &input_items,
gr_vector_void_star &output_items)
{
- int d_ST_tmp;
+ int ST_tmp;
assert (input_items.size() == output_items.size());
int nstreams = input_items.size();
-for (int m=0;m<nstreams;m++) {
- const @I_TYPE@ *in = (const @I_TYPE@ *) input_items[m];
- @O_TYPE@ *out = (@O_TYPE@ *) output_items[m];
- d_ST_tmp = d_ST;
+ for (int m=0;m<nstreams;m++) {
+ const @I_TYPE@ *in = (const @I_TYPE@ *) input_items[m];
+ @O_TYPE@ *out = (@O_TYPE@ *) output_items[m];
+ ST_tmp = d_ST;
-// per stream processing
-
- for (int i = 0; i < noutput_items; i++){
- out[i] = (@O_TYPE@) d_FSM.OS()[d_ST_tmp*d_FSM.I()+in[i]]; // direction of time?
- d_ST_tmp = (int) d_FSM.NS()[d_ST_tmp*d_FSM.I()+in[i]];
+ // per stream processing
+ for (int i = 0; i < noutput_items; i++){
+ out[i] = (@O_TYPE@) d_FSM.OS()[ST_tmp*d_FSM.I()+in[i]]; // direction of time?
+ ST_tmp = (int) d_FSM.NS()[ST_tmp*d_FSM.I()+in[i]];
+ }
+ // end per stream processing
}
-
-// end per stream processing
-}
- d_ST = d_ST_tmp;
+ d_ST = ST_tmp;
return noutput_items;
}