Reduce inlining of FIR configuration due to templating.

80 bytes!
This commit is contained in:
Jared Boone 2016-01-04 11:20:28 -08:00
parent 359fb6f3c6
commit e6f69c90f2
2 changed files with 19 additions and 5 deletions

View File

@ -657,6 +657,18 @@ buffer_s16_t FIR64AndDecimateBy2Real::execute(
return { dst.p, src.count / 2, src.sampling_rate / 2 };
}
void FIRAndDecimateComplex::configure(
const int16_t* const taps,
const size_t taps_count,
const size_t decimation_factor
) {
samples_ = std::make_unique<samples_t>(taps_count);
taps_reversed_ = std::make_unique<taps_t>(taps_count);
taps_count_ = taps_count;
decimation_factor_ = decimation_factor;
std::reverse_copy(&taps[0], &taps[taps_count], &taps_reversed_[0]);
}
buffer_c16_t FIRAndDecimateComplex::execute(
const buffer_c16_t& src,
const buffer_c16_t& dst

View File

@ -227,11 +227,7 @@ public:
const T& taps,
const size_t decimation_factor
) {
samples_ = std::make_unique<samples_t>(taps.size());
taps_reversed_ = std::make_unique<taps_t>(taps.size());
taps_count_ = taps.size();
decimation_factor_ = decimation_factor;
std::reverse_copy(taps.cbegin(), taps.cend(), &taps_reversed_[0]);
configure(taps.data(), taps.size(), decimation_factor);
}
buffer_c16_t execute(
@ -246,6 +242,12 @@ private:
std::unique_ptr<taps_t> taps_reversed_;
size_t taps_count_;
size_t decimation_factor_;
void configure(
const int16_t* const taps,
const size_t taps_count,
const size_t decimation_factor
);
};
class DecimateBy2CIC4Real {