Micro-optimizations. opt
authorCarl Hetherington <cth@carlh.net>
Mon, 2 Oct 2023 20:11:28 +0000 (22:11 +0200)
committerCarl Hetherington <cth@carlh.net>
Mon, 2 Oct 2023 20:11:28 +0000 (22:11 +0200)
src/leqm_nrt.cc

index 469890cbfcfd1f4fbf2f37ee8609d41fb42ed35e..f170901db2631aa847e6e0573e539304162f6e74 100644 (file)
@@ -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;
        };