Skip to content

Commit

Permalink
change rounding method to lround
Browse files Browse the repository at this point in the history
  • Loading branch information
mathiasvr authored and michaelld committed Nov 17, 2019
1 parent f78c958 commit c750d10
Show file tree
Hide file tree
Showing 6 changed files with 23 additions and 23 deletions.
4 changes: 2 additions & 2 deletions gnuradio-runtime/lib/block_executor.cc
Original file line number Diff line number Diff line change
Expand Up @@ -143,7 +143,7 @@ static bool propagate_tags(block::tag_propagation_policy_t policy,
} else if (use_fp_rrate) {
for (t = rtags.begin(); t != rtags.end(); t++) {
tag_t new_tag = *t;
new_tag.offset = ((double)new_tag.offset * rrate) + 0.5;
new_tag.offset = std::llround((double)new_tag.offset * rrate);
for (int o = 0; o < d->noutputs(); o++)
out_buf[o]->add_item_tag(new_tag);
}
Expand Down Expand Up @@ -191,7 +191,7 @@ static bool propagate_tags(block::tag_propagation_policy_t policy,
} else if (use_fp_rrate) {
for (t = rtags.begin(); t != rtags.end(); t++) {
tag_t new_tag = *t;
new_tag.offset = ((double)new_tag.offset * rrate) + 0.5;
new_tag.offset = std::llround((double)new_tag.offset * rrate);
out_buf->add_item_tag(new_tag);
}
} else {
Expand Down
14 changes: 7 additions & 7 deletions gr-fec/lib/decoder_impl.cc
Original file line number Diff line number Diff line change
Expand Up @@ -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,
Expand All @@ -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())
Expand All @@ -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);
Expand Down
8 changes: 4 additions & 4 deletions gr-fec/lib/depuncture_bb_impl.cc
Original file line number Diff line number Diff line change
Expand Up @@ -81,18 +81,18 @@ depuncture_bb_impl::~depuncture_bb_impl() {}

int depuncture_bb_impl::fixed_rate_ninput_to_noutput(int ninput)
{
return (int)(((d_puncsize / (double)(d_puncsize - d_puncholes)) * ninput) + .5);
return std::lround((d_puncsize / (double)(d_puncsize - d_puncholes)) * ninput);
}

int depuncture_bb_impl::fixed_rate_noutput_to_ninput(int noutput)
{
return (int)((((d_puncsize - d_puncholes) / (double)(d_puncsize)) * noutput) + .5);
return std::lround(((d_puncsize - d_puncholes) / (double)(d_puncsize)) * noutput);
}

void depuncture_bb_impl::forecast(int noutput_items, gr_vector_int& ninput_items_required)
{
ninput_items_required[0] =
(int)((((d_puncsize - d_puncholes) / (double)(d_puncsize)) * noutput_items) + .5);
std::lround(((d_puncsize - d_puncholes) / (double)(d_puncsize)) * noutput_items);
}

/*
Expand Down Expand Up @@ -138,7 +138,7 @@ int depuncture_bb_impl::general_work(int noutput_items,
% ((int)(((1.0/relative_rate()) * noutput_items) + .5)));
*/

consume_each((int)(((1.0 / relative_rate()) * noutput_items) + .5));
consume_each(std::lround((1.0 / relative_rate()) * noutput_items));
return noutput_items;
}

Expand Down
4 changes: 2 additions & 2 deletions gr-fec/lib/encoder_impl.cc
Original file line number Diff line number Diff line change
Expand Up @@ -62,12 +62,12 @@ encoder_impl::~encoder_impl() {}

int encoder_impl::fixed_rate_ninput_to_noutput(int ninput)
{
return (int)(0.5 + ninput * relative_rate());
return std::lround(ninput * relative_rate());
}

int encoder_impl::fixed_rate_noutput_to_ninput(int noutput)
{
return (int)(0.5 + noutput / relative_rate());
return std::lround(noutput / relative_rate());
}

void encoder_impl::forecast(int noutput_items, gr_vector_int& ninput_items_required)
Expand Down
8 changes: 4 additions & 4 deletions gr-fec/lib/puncture_bb_impl.cc
Original file line number Diff line number Diff line change
Expand Up @@ -79,18 +79,18 @@ puncture_bb_impl::~puncture_bb_impl() {}

int puncture_bb_impl::fixed_rate_ninput_to_noutput(int ninput)
{
return (int)((((d_puncsize - d_puncholes) / (double)(d_puncsize)) * ninput) + .5);
return std::lround(((d_puncsize - d_puncholes) / (double)(d_puncsize)) * ninput);
}

int puncture_bb_impl::fixed_rate_noutput_to_ninput(int noutput)
{
return (int)(((d_puncsize / (double)(d_puncsize - d_puncholes)) * noutput) + .5);
return std::lround((d_puncsize / (double)(d_puncsize - d_puncholes)) * noutput);
}

void puncture_bb_impl::forecast(int noutput_items, gr_vector_int& ninput_items_required)
{
ninput_items_required[0] =
(int)(((d_puncsize / (double)(d_puncsize - d_puncholes)) * noutput_items) + .5);
std::lround((d_puncsize / (double)(d_puncsize - d_puncholes)) * noutput_items);
}

/*
Expand Down Expand Up @@ -138,7 +138,7 @@ int puncture_bb_impl::general_work(int noutput_items,
% ((int)(((1.0/relative_rate()) * noutput_items) + .5)));
*/

consume_each((int)(((1.0 / relative_rate()) * noutput_items) + .5));
consume_each(std::lround((1.0 / relative_rate()) * noutput_items));
return noutput_items;
}

Expand Down
8 changes: 4 additions & 4 deletions gr-fec/lib/puncture_ff_impl.cc
Original file line number Diff line number Diff line change
Expand Up @@ -79,18 +79,18 @@ puncture_ff_impl::~puncture_ff_impl() {}

int puncture_ff_impl::fixed_rate_ninput_to_noutput(int ninput)
{
return (int)((((d_puncsize - d_puncholes) / (double)(d_puncsize)) * ninput) + .5);
return std::lround(((d_puncsize - d_puncholes) / (double)(d_puncsize)) * ninput);
}

int puncture_ff_impl::fixed_rate_noutput_to_ninput(int noutput)
{
return (int)(((d_puncsize / (double)(d_puncsize - d_puncholes)) * noutput) + .5);
return std::lround((d_puncsize / (double)(d_puncsize - d_puncholes)) * noutput);
}

void puncture_ff_impl::forecast(int noutput_items, gr_vector_int& ninput_items_required)
{
ninput_items_required[0] =
(int)(((d_puncsize / (double)(d_puncsize - d_puncholes)) * noutput_items) + .5);
std::lround((d_puncsize / (double)(d_puncsize - d_puncholes)) * noutput_items);
}

/*
Expand Down Expand Up @@ -138,7 +138,7 @@ int puncture_ff_impl::general_work(int noutput_items,
% ((int)(((1.0/relative_rate()) * noutput_items) + .5)));
*/

consume_each((int)(((1.0 / relative_rate()) * noutput_items) + .5));
consume_each(std::lround((1.0 / relative_rate()) * noutput_items));
return noutput_items;
}

Expand Down

0 comments on commit c750d10

Please sign in to comment.