diff options
author | Marcus Müller <mmueller@gnuradio.org> | 2019-08-07 21:45:12 +0200 |
---|---|---|
committer | Marcus Müller <marcus@hostalia.de> | 2019-08-09 23:04:28 +0200 |
commit | f7bbf2c1d8d780294f3e016aff239ca35eb6516e (patch) | |
tree | e09ab6112e02b2215b2d59ac24d3d6ea2edac745 /gr-blocks/lib/multiply_const_impl.cc | |
parent | 78431dc6941e3acc67c858277dfe4a0ed583643c (diff) |
Tree: clang-format without the include sorting
Diffstat (limited to 'gr-blocks/lib/multiply_const_impl.cc')
-rw-r--r-- | gr-blocks/lib/multiply_const_impl.cc | 194 |
1 files changed, 96 insertions, 98 deletions
diff --git a/gr-blocks/lib/multiply_const_impl.cc b/gr-blocks/lib/multiply_const_impl.cc index 03ac054a0e..bd6f442fc2 100644 --- a/gr-blocks/lib/multiply_const_impl.cc +++ b/gr-blocks/lib/multiply_const_impl.cc @@ -30,110 +30,108 @@ #include <volk/volk.h> namespace gr { - namespace blocks { - - template <class T> - typename multiply_const<T>::sptr multiply_const<T>::make(T k, size_t vlen) - { - return gnuradio::get_initial_sptr(new multiply_const_impl<T> (k, vlen)); - } - - template <> - multiply_const_impl<float>::multiply_const_impl(float k, size_t vlen) - : sync_block ("multiply_const_ff", - io_signature::make (1, 1, sizeof (float)*vlen), - io_signature::make (1, 1, sizeof (float)*vlen)), - d_k(k), d_vlen(vlen) - { - const int alignment_multiple = - volk_get_alignment() / sizeof(float); - set_alignment(std::max(1,alignment_multiple)); - } - - template<> - int - multiply_const_impl<float>::work(int noutput_items, - gr_vector_const_void_star &input_items, - gr_vector_void_star &output_items) - { - const float *in = (const float *) input_items[0]; - float *out = (float *) output_items[0]; - int noi = noutput_items * d_vlen; - - volk_32f_s32f_multiply_32f(out, in, d_k, noi); - - return noutput_items; - } - - template <> - multiply_const_impl<gr_complex>::multiply_const_impl(gr_complex k, size_t vlen) - : sync_block ("multiply_const_cc", - io_signature::make (1, 1, sizeof (gr_complex)*vlen), - io_signature::make (1, 1, sizeof (gr_complex)*vlen)), - d_k(k), d_vlen(vlen) - { - const int alignment_multiple = - volk_get_alignment() / sizeof(gr_complex); - set_alignment(std::max(1,alignment_multiple)); - } - - template <> - int - multiply_const_impl<gr_complex>::work(int noutput_items, - gr_vector_const_void_star &input_items, - gr_vector_void_star &output_items) - { - const gr_complex *in = (const gr_complex *) input_items[0]; - gr_complex *out = (gr_complex *) output_items[0]; - int noi = noutput_items * d_vlen; - - volk_32fc_s32fc_multiply_32fc(out, in, d_k, noi); - - return noutput_items; +namespace blocks { + +template <class T> +typename multiply_const<T>::sptr multiply_const<T>::make(T k, size_t vlen) +{ + return gnuradio::get_initial_sptr(new multiply_const_impl<T>(k, vlen)); +} + +template <> +multiply_const_impl<float>::multiply_const_impl(float k, size_t vlen) + : sync_block("multiply_const_ff", + io_signature::make(1, 1, sizeof(float) * vlen), + io_signature::make(1, 1, sizeof(float) * vlen)), + d_k(k), + d_vlen(vlen) +{ + const int alignment_multiple = volk_get_alignment() / sizeof(float); + set_alignment(std::max(1, alignment_multiple)); +} + +template <> +int multiply_const_impl<float>::work(int noutput_items, + gr_vector_const_void_star& input_items, + gr_vector_void_star& output_items) +{ + const float* in = (const float*)input_items[0]; + float* out = (float*)output_items[0]; + int noi = noutput_items * d_vlen; + + volk_32f_s32f_multiply_32f(out, in, d_k, noi); + + return noutput_items; +} + +template <> +multiply_const_impl<gr_complex>::multiply_const_impl(gr_complex k, size_t vlen) + : sync_block("multiply_const_cc", + io_signature::make(1, 1, sizeof(gr_complex) * vlen), + io_signature::make(1, 1, sizeof(gr_complex) * vlen)), + d_k(k), + d_vlen(vlen) +{ + const int alignment_multiple = volk_get_alignment() / sizeof(gr_complex); + set_alignment(std::max(1, alignment_multiple)); +} + +template <> +int multiply_const_impl<gr_complex>::work(int noutput_items, + gr_vector_const_void_star& input_items, + gr_vector_void_star& output_items) +{ + const gr_complex* in = (const gr_complex*)input_items[0]; + gr_complex* out = (gr_complex*)output_items[0]; + int noi = noutput_items * d_vlen; + + volk_32fc_s32fc_multiply_32fc(out, in, d_k, noi); + + return noutput_items; +} + + +template <class T> +multiply_const_impl<T>::multiply_const_impl(T k, size_t vlen) + : sync_block("multiply_const", + io_signature::make(1, 1, sizeof(T) * vlen), + io_signature::make(1, 1, sizeof(T) * vlen)), + d_k(k), + d_vlen(vlen) +{ +} + +template <class T> +int multiply_const_impl<T>::work(int noutput_items, + gr_vector_const_void_star& input_items, + gr_vector_void_star& output_items) +{ + T* iptr = (T*)input_items[0]; + T* optr = (T*)output_items[0]; + + int size = noutput_items * d_vlen; + + while (size >= 8) { + *optr++ = *iptr++ * d_k; + *optr++ = *iptr++ * d_k; + *optr++ = *iptr++ * d_k; + *optr++ = *iptr++ * d_k; + *optr++ = *iptr++ * d_k; + *optr++ = *iptr++ * d_k; + *optr++ = *iptr++ * d_k; + *optr++ = *iptr++ * d_k; + size -= 8; } + while (size-- > 0) + *optr++ = *iptr++ * d_k; - template <class T> - multiply_const_impl<T> ::multiply_const_impl(T k, size_t vlen) - : sync_block ("multiply_const", - io_signature::make (1, 1, sizeof (T)*vlen), - io_signature::make (1, 1, sizeof (T)*vlen)), - d_k(k), d_vlen(vlen) - { - } - - template <class T> - int - multiply_const_impl<T> ::work(int noutput_items, - gr_vector_const_void_star &input_items, - gr_vector_void_star &output_items) - { - T *iptr = (T *) input_items[0]; - T *optr = (T *) output_items[0]; - - int size = noutput_items * d_vlen; - - while (size >= 8){ - *optr++ = *iptr++ * d_k; - *optr++ = *iptr++ * d_k; - *optr++ = *iptr++ * d_k; - *optr++ = *iptr++ * d_k; - *optr++ = *iptr++ * d_k; - *optr++ = *iptr++ * d_k; - *optr++ = *iptr++ * d_k; - *optr++ = *iptr++ * d_k; - size -= 8; - } - - while (size-- > 0) - *optr++ = *iptr++ * d_k; - - return noutput_items; - } + return noutput_items; +} template class multiply_const<std::int16_t>; template class multiply_const<std::int32_t>; template class multiply_const<float>; template class multiply_const<gr_complex>; - } /* namespace blocks */ +} /* namespace blocks */ } /* namespace gr */ |