diff options
author | Marcus Müller <marcus@hostalia.de> | 2017-09-12 00:12:51 +0200 |
---|---|---|
committer | Marcus Müller <marcus@hostalia.de> | 2017-09-12 00:12:51 +0200 |
commit | 5cfa4f51c5ee3d06391aa12b80cbe01326bdc831 (patch) | |
tree | d1fbf0134b07cb1b5d8b08d2d12a750d3911b61a | |
parent | 295f5a6030437380562a339acdd95cc755572a37 (diff) |
removed zeroing in favour of just setting the first element in the sum
-rw-r--r-- | gr-blocks/lib/moving_average_XX_impl.cc.t | 12 |
1 files changed, 7 insertions, 5 deletions
diff --git a/gr-blocks/lib/moving_average_XX_impl.cc.t b/gr-blocks/lib/moving_average_XX_impl.cc.t index bfb878e7bf..2e70ab4cc0 100644 --- a/gr-blocks/lib/moving_average_XX_impl.cc.t +++ b/gr-blocks/lib/moving_average_XX_impl.cc.t @@ -103,8 +103,8 @@ namespace gr { unsigned int num_iter = (unsigned int)((noutput_items>d_max_iter) ? d_max_iter : noutput_items); if(d_vlen == 1) { - @I_TYPE@ sum = 0; - for(unsigned int i = 0; i < d_length-1; i++) { + @I_TYPE@ sum = in[0]; + for(unsigned int i = 1; i < d_length-1; i++) { sum += in[i]; } @@ -115,10 +115,12 @@ namespace gr { } } else { // d_vlen > 1 - //TODO: VOLKize this zeroing? - std::fill(d_sum.begin(), d_sum.end(), (@I_TYPE@)0); + //gets automatically optimized well + for(unsigned int elem = 0; elem < d_vlen; elem++) { + d_sum[elem] = in[elem]; + } - for(unsigned int i = 0; i < d_length - 1; i++) { + for(unsigned int i = 1; i < d_length - 1; i++) { for(unsigned int elem = 0; elem < d_vlen; elem++) { d_sum[elem] += in[i*d_vlen + elem]; } |