summaryrefslogtreecommitdiff
path: root/gr-blocks/lib/moving_average_impl.cc
diff options
context:
space:
mode:
authorMarcus Müller <mmueller@gnuradio.org>2019-08-07 21:45:12 +0200
committerMarcus Müller <marcus@hostalia.de>2019-08-09 23:04:28 +0200
commitf7bbf2c1d8d780294f3e016aff239ca35eb6516e (patch)
treee09ab6112e02b2215b2d59ac24d3d6ea2edac745 /gr-blocks/lib/moving_average_impl.cc
parent78431dc6941e3acc67c858277dfe4a0ed583643c (diff)
Tree: clang-format without the include sorting
Diffstat (limited to 'gr-blocks/lib/moving_average_impl.cc')
-rw-r--r--gr-blocks/lib/moving_average_impl.cc173
1 files changed, 87 insertions, 86 deletions
diff --git a/gr-blocks/lib/moving_average_impl.cc b/gr-blocks/lib/moving_average_impl.cc
index b77a70a440..3342e2c937 100644
--- a/gr-blocks/lib/moving_average_impl.cc
+++ b/gr-blocks/lib/moving_average_impl.cc
@@ -29,21 +29,24 @@
#include <gnuradio/io_signature.h>
namespace gr {
- namespace blocks {
-
- template <class T>
- typename moving_average<T>::sptr
- moving_average<T>::make(int length, T scale, int max_iter, unsigned int vlen)
- {
- return gnuradio::get_initial_sptr
- (new moving_average_impl<T> (length, scale, max_iter, vlen));
- }
-
- template <class T>
- moving_average_impl<T>::moving_average_impl(int length, T scale, int max_iter, unsigned int vlen)
+namespace blocks {
+
+template <class T>
+typename moving_average<T>::sptr
+moving_average<T>::make(int length, T scale, int max_iter, unsigned int vlen)
+{
+ return gnuradio::get_initial_sptr(
+ new moving_average_impl<T>(length, scale, max_iter, vlen));
+}
+
+template <class T>
+moving_average_impl<T>::moving_average_impl(int length,
+ T scale,
+ int max_iter,
+ unsigned int vlen)
: sync_block("moving_average",
- io_signature::make(1, 1, sizeof(T)*vlen),
- io_signature::make(1, 1, sizeof(T)*vlen)),
+ io_signature::make(1, 1, sizeof(T) * vlen),
+ io_signature::make(1, 1, sizeof(T) * vlen)),
d_length(length),
d_scale(scale),
d_max_iter(max_iter),
@@ -51,101 +54,99 @@ namespace gr {
d_new_length(length),
d_new_scale(scale),
d_updated(false)
- {
- this->set_history(length);
- //we don't have C++11's <array>, so initialize the stored vector instead
- //we store this vector so that work() doesn't spend its time allocating and freeing vector storage
- if(d_vlen > 1) {
+{
+ this->set_history(length);
+ // we don't have C++11's <array>, so initialize the stored vector instead
+ // we store this vector so that work() doesn't spend its time allocating and freeing
+ // vector storage
+ if (d_vlen > 1) {
d_sum = std::vector<T>(d_vlen);
- }
- }
-
- template <class T>
- moving_average_impl<T> ::~moving_average_impl()
- {
- }
-
- template <class T>
- void
- moving_average_impl<T> ::set_length_and_scale(int length, T scale)
- {
- d_new_length = length;
- d_new_scale = scale;
- d_updated = true;
}
-
- template <class T>
- void
- moving_average_impl<T> ::set_length(int length)
- {
- d_new_length = length;
- d_updated = true;
- }
-
- template <class T>
- void
- moving_average_impl<T> ::set_scale(T scale)
- {
- d_new_scale = scale;
- d_updated = true;
- }
-
- template <class T>
- int
- moving_average_impl<T> ::work(int noutput_items,
- gr_vector_const_void_star &input_items,
- gr_vector_void_star &output_items)
- {
- if(d_updated) {
+}
+
+template <class T>
+moving_average_impl<T>::~moving_average_impl()
+{
+}
+
+template <class T>
+void moving_average_impl<T>::set_length_and_scale(int length, T scale)
+{
+ d_new_length = length;
+ d_new_scale = scale;
+ d_updated = true;
+}
+
+template <class T>
+void moving_average_impl<T>::set_length(int length)
+{
+ d_new_length = length;
+ d_updated = true;
+}
+
+template <class T>
+void moving_average_impl<T>::set_scale(T scale)
+{
+ d_new_scale = scale;
+ d_updated = true;
+}
+
+template <class T>
+int moving_average_impl<T>::work(int noutput_items,
+ gr_vector_const_void_star& input_items,
+ gr_vector_void_star& output_items)
+{
+ if (d_updated) {
d_length = d_new_length;
d_scale = d_new_scale;
this->set_history(d_length);
d_updated = false;
return 0; // history requirements might have changed
- }
+ }
- const T *in = (const T *)input_items[0];
- T *out = (T *)output_items[0];
+ const T* in = (const T*)input_items[0];
+ T* out = (T*)output_items[0];
- unsigned int num_iter = (unsigned int)((noutput_items>d_max_iter) ? d_max_iter : noutput_items);
- if(d_vlen == 1) {
+ unsigned int num_iter =
+ (unsigned int)((noutput_items > d_max_iter) ? d_max_iter : noutput_items);
+ if (d_vlen == 1) {
T sum = in[0];
- for(int i = 1; i < d_length-1; i++) {
- sum += in[i];
+ for (int i = 1; i < d_length - 1; i++) {
+ sum += in[i];
}
- for(unsigned int i = 0; i < num_iter; i++) {
- sum += in[i+d_length-1];
- out[i] = sum * d_scale;
- sum -= in[i];
+ for (unsigned int i = 0; i < num_iter; i++) {
+ sum += in[i + d_length - 1];
+ out[i] = sum * d_scale;
+ sum -= in[i];
}
- } else { // d_vlen > 1
- //gets automatically optimized well
- for(unsigned int elem = 0; elem < d_vlen; elem++) {
- d_sum[elem] = in[elem];
+ } else { // d_vlen > 1
+ // gets automatically optimized well
+ for (unsigned int elem = 0; elem < d_vlen; elem++) {
+ d_sum[elem] = in[elem];
}
- for(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];
- }
+ for (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];
+ }
}
- for(unsigned int i = 0; i < num_iter; i++) {
- for(unsigned int elem = 0; elem < d_vlen; elem++) {
- d_sum[elem] += in[(i+d_length-1)*d_vlen + elem];
- out[i*d_vlen + elem] = d_sum[elem] * d_scale;
- d_sum[elem] -= in[i*d_vlen + elem];
- }
+ for (unsigned int i = 0; i < num_iter; i++) {
+ for (unsigned int elem = 0; elem < d_vlen; elem++) {
+ d_sum[elem] += in[(i + d_length - 1) * d_vlen + elem];
+ out[i * d_vlen + elem] = d_sum[elem] * d_scale;
+ d_sum[elem] -= in[i * d_vlen + elem];
+ }
}
- }
- return num_iter;
}
+ return num_iter;
+}
template class moving_average<std::int16_t>;
template class moving_average<std::int32_t>;
template class moving_average<float>;
template class moving_average<gr_complex>;
- } /* namespace blocks */
+} /* namespace blocks */
} /* namespace gr */