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-trellis/lib/sccc_decoder_blk_impl.cc | |
parent | 78431dc6941e3acc67c858277dfe4a0ed583643c (diff) |
Tree: clang-format without the include sorting
Diffstat (limited to 'gr-trellis/lib/sccc_decoder_blk_impl.cc')
-rw-r--r-- | gr-trellis/lib/sccc_decoder_blk_impl.cc | 162 |
1 files changed, 92 insertions, 70 deletions
diff --git a/gr-trellis/lib/sccc_decoder_blk_impl.cc b/gr-trellis/lib/sccc_decoder_blk_impl.cc index 152079d94c..206dc3f5da 100644 --- a/gr-trellis/lib/sccc_decoder_blk_impl.cc +++ b/gr-trellis/lib/sccc_decoder_blk_impl.cc @@ -31,93 +31,115 @@ #include <gnuradio/trellis/core_algorithms.h> namespace gr { - namespace trellis { +namespace trellis { - template <class T> - typename sccc_decoder_blk<T>::sptr - sccc_decoder_blk<T>::make(const fsm &FSMo, int STo0, int SToK, - const fsm &FSMi, int STi0, int STiK, - const interleaver &INTERLEAVER, - int blocklength, - int repetitions, - siso_type_t SISO_TYPE) - { - return gnuradio::get_initial_sptr - (new sccc_decoder_blk_impl<T>(FSMo, STo0, SToK, FSMi, STi0, STiK, - INTERLEAVER, blocklength, repetitions, - SISO_TYPE)); - } +template <class T> +typename sccc_decoder_blk<T>::sptr +sccc_decoder_blk<T>::make(const fsm& FSMo, + int STo0, + int SToK, + const fsm& FSMi, + int STi0, + int STiK, + const interleaver& INTERLEAVER, + int blocklength, + int repetitions, + siso_type_t SISO_TYPE) +{ + return gnuradio::get_initial_sptr(new sccc_decoder_blk_impl<T>(FSMo, + STo0, + SToK, + FSMi, + STi0, + STiK, + INTERLEAVER, + blocklength, + repetitions, + SISO_TYPE)); +} - template <class T> - sccc_decoder_blk_impl<T>::sccc_decoder_blk_impl(const fsm &FSMo, int STo0, int SToK, - const fsm &FSMi, int STi0, int STiK, - const interleaver &INTERLEAVER, - int blocklength, - int repetitions, - siso_type_t SISO_TYPE) +template <class T> +sccc_decoder_blk_impl<T>::sccc_decoder_blk_impl(const fsm& FSMo, + int STo0, + int SToK, + const fsm& FSMi, + int STi0, + int STiK, + const interleaver& INTERLEAVER, + int blocklength, + int repetitions, + siso_type_t SISO_TYPE) : block("sccc_decoder_blk", - io_signature::make(1, 1, sizeof(float)), - io_signature::make(1, 1, sizeof(T))), - d_FSMo(FSMo), d_STo0(STo0), d_SToK(SToK), - d_FSMi(FSMi), d_STi0(STi0), d_STiK(STiK), + io_signature::make(1, 1, sizeof(float)), + io_signature::make(1, 1, sizeof(T))), + d_FSMo(FSMo), + d_STo0(STo0), + d_SToK(SToK), + d_FSMi(FSMi), + d_STi0(STi0), + d_STiK(STiK), d_INTERLEAVER(INTERLEAVER), d_blocklength(blocklength), d_repetitions(repetitions), d_SISO_TYPE(SISO_TYPE) - { - this->set_relative_rate(1, (uint64_t) d_FSMi.O()); - this->set_output_multiple(d_blocklength); - } - - template <class T> - sccc_decoder_blk_impl<T>::~sccc_decoder_blk_impl() - { - } +{ + this->set_relative_rate(1, (uint64_t)d_FSMi.O()); + this->set_output_multiple(d_blocklength); +} - template <class T> - void - sccc_decoder_blk_impl<T>::forecast(int noutput_items, - gr_vector_int &ninput_items_required) - { - int input_required = d_FSMi.O() * noutput_items ; - ninput_items_required[0] = input_required; - } +template <class T> +sccc_decoder_blk_impl<T>::~sccc_decoder_blk_impl() +{ +} - //=========================================================== +template <class T> +void sccc_decoder_blk_impl<T>::forecast(int noutput_items, + gr_vector_int& ninput_items_required) +{ + int input_required = d_FSMi.O() * noutput_items; + ninput_items_required[0] = input_required; +} - template <class T> - int - sccc_decoder_blk_impl<T>::general_work(int noutput_items, - gr_vector_int &ninput_items, - gr_vector_const_void_star &input_items, - gr_vector_void_star &output_items) - { - int nblocks = noutput_items / d_blocklength; - float (*p2min)(float, float) = NULL; +//=========================================================== - if(d_SISO_TYPE == TRELLIS_MIN_SUM) - p2min = &min; - else if(d_SISO_TYPE == TRELLIS_SUM_PRODUCT) - p2min = &min_star; +template <class T> +int sccc_decoder_blk_impl<T>::general_work(int noutput_items, + gr_vector_int& ninput_items, + gr_vector_const_void_star& input_items, + gr_vector_void_star& output_items) +{ + int nblocks = noutput_items / d_blocklength; + float (*p2min)(float, float) = NULL; - const float *in = (const float*)input_items[0]; - T *out = (T*)output_items[0]; + if (d_SISO_TYPE == TRELLIS_MIN_SUM) + p2min = &min; + else if (d_SISO_TYPE == TRELLIS_SUM_PRODUCT) + p2min = &min_star; - for(int n = 0; n < nblocks; n++) { - sccc_decoder(d_FSMo, d_STo0, d_SToK, - d_FSMi, d_STi0, d_STiK, - d_INTERLEAVER, d_blocklength, d_repetitions, - p2min, - &(in[n*d_blocklength*d_FSMi.O()]), - &(out[n*d_blocklength])); - } + const float* in = (const float*)input_items[0]; + T* out = (T*)output_items[0]; - this->consume_each(d_FSMi.O() * noutput_items ); - return noutput_items; + for (int n = 0; n < nblocks; n++) { + sccc_decoder(d_FSMo, + d_STo0, + d_SToK, + d_FSMi, + d_STi0, + d_STiK, + d_INTERLEAVER, + d_blocklength, + d_repetitions, + p2min, + &(in[n * d_blocklength * d_FSMi.O()]), + &(out[n * d_blocklength])); } + this->consume_each(d_FSMi.O() * noutput_items); + return noutput_items; +} + template class sccc_decoder_blk<std::uint8_t>; template class sccc_decoder_blk<std::int16_t>; template class sccc_decoder_blk<std::int32_t>; - } /* namespace trellis */ +} /* namespace trellis */ } /* namespace gr */ |