summaryrefslogtreecommitdiff
path: root/gr-fec/lib/decoder_impl.cc
diff options
context:
space:
mode:
Diffstat (limited to 'gr-fec/lib/decoder_impl.cc')
-rw-r--r--gr-fec/lib/decoder_impl.cc14
1 files changed, 7 insertions, 7 deletions
diff --git a/gr-fec/lib/decoder_impl.cc b/gr-fec/lib/decoder_impl.cc
index 5af8978700..f4ad7a9846 100644
--- a/gr-fec/lib/decoder_impl.cc
+++ b/gr-fec/lib/decoder_impl.cc
@@ -63,17 +63,17 @@ decoder_impl::decoder_impl(generic_decoder::sptr my_decoder,
int decoder_impl::fixed_rate_ninput_to_noutput(int ninput)
{
- return (int)(0.5 + ninput * relative_rate());
+ return std::lround(ninput * relative_rate());
}
int decoder_impl::fixed_rate_noutput_to_ninput(int noutput)
{
- return (int)(0.5 + noutput / relative_rate());
+ return std::lround(noutput / relative_rate());
}
void decoder_impl::forecast(int noutput_items, gr_vector_int& ninput_items_required)
{
- ninput_items_required[0] = 0.5 + fixed_rate_noutput_to_ninput(noutput_items);
+ ninput_items_required[0] = std::lround(fixed_rate_noutput_to_ninput(noutput_items));
}
int decoder_impl::general_work(int noutput_items,
@@ -84,9 +84,9 @@ int decoder_impl::general_work(int noutput_items,
const unsigned char* in = (unsigned char*)input_items[0];
unsigned char* out = (unsigned char*)output_items[0];
- int outnum = (int)(((1.0 / relative_rate()) * noutput_items) + 0.5);
+ int outnum = std::lround((1.0 / relative_rate()) * noutput_items);
int innum =
- (int)(relative_rate() * (ninput_items[0] - d_decoder->get_history()) + 0.5) /
+ std::lround(relative_rate() * (ninput_items[0] - d_decoder->get_history())) /
(output_multiple() - d_decoder->get_history());
int items = (outnum <= ninput_items[0] - d_decoder->get_history())
@@ -106,8 +106,8 @@ int decoder_impl::general_work(int noutput_items,
pmt::intern(alias()));
}
- int consumed = static_cast<int>(
- items / relative_rate() * (output_multiple() - d_decoder->get_history()) + 0.5);
+ int consumed = std::lround(
+ items / relative_rate() * (output_multiple() - d_decoder->get_history()));
int returned = items * (output_multiple() - d_decoder->get_history());
consume_each(consumed);