summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMarcus Müller <marcus@hostalia.de>2017-09-12 00:12:51 +0200
committerMarcus Müller <marcus@hostalia.de>2017-09-12 00:12:51 +0200
commit5cfa4f51c5ee3d06391aa12b80cbe01326bdc831 (patch)
treed1fbf0134b07cb1b5d8b08d2d12a750d3911b61a
parent295f5a6030437380562a339acdd95cc755572a37 (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.t12
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];
}