summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorCarl Hetherington <cth@carlh.net>2023-10-02 22:11:28 +0200
committerCarl Hetherington <cth@carlh.net>2023-10-02 22:11:28 +0200
commit242e3a7fdb8ca249335a693e83eb4faf3f3542ec (patch)
treeb489ba73fda87803b525e3807152d4c18fdececc
parent53efefb605de531f6d822668b7dd5769b1de0eb5 (diff)
Micro-optimizations.opt
-rw-r--r--src/leqm_nrt.cc18
1 files changed, 10 insertions, 8 deletions
diff --git a/src/leqm_nrt.cc b/src/leqm_nrt.cc
index 469890c..f170901 100644
--- a/src/leqm_nrt.cc
+++ b/src/leqm_nrt.cc
@@ -65,13 +65,15 @@ void worker_thread(std::vector<double>& buffer, int nsamples, int nch, std::vect
};
auto convolve = [](std::vector<double> const& signal, std::vector<double> const& ir) {
- std::vector<double> result(signal.size());
+ auto const signal_size = signal.size();
+ auto const ir_size = ir.size();
+ std::vector<double> result(signal_size);
double sum = 0.0;
- for (auto i = 0U; i < signal.size(); i++) {
+ for (auto i = 0U; i < signal_size; i++) {
auto m = i;
- for (int l = ir.size()- 1; l >= 0; l--, m++) {
- if (m >= signal.size()) {
- m -= signal.size();
+ for (int l = ir_size - 1; l >= 0; l--, m++) {
+ if (m >= signal_size) {
+ m -= signal_size;
}
sum += signal[m] * ir[l];
}
@@ -82,9 +84,9 @@ void worker_thread(std::vector<double>& buffer, int nsamples, int nch, std::vect
};
auto rectify = [](std::vector<double> const& input) {
- std::vector<double> squared;
- for (auto i: input) {
- squared.push_back(pow(i, 2));
+ std::vector<double> squared(input.size());
+ for (auto i = 0U; i < input.size(); ++i) {
+ squared[i] = pow(input[i], 2);
}
return squared;
};