Mercurial > hg > qm-dsp
diff dsp/rateconversion/Resampler.cpp @ 505:930b5b0f707d
Merge branch 'codestyle-and-tidy'
author | Chris Cannam <cannam@all-day-breakfast.com> |
---|---|
date | Wed, 05 Jun 2019 12:55:15 +0100 |
parents | 8b92623e81c9 |
children |
line wrap: on
line diff
--- a/dsp/rateconversion/Resampler.cpp Thu May 30 16:18:13 2019 +0100 +++ b/dsp/rateconversion/Resampler.cpp Wed Jun 05 12:55:15 2019 +0100 @@ -17,6 +17,7 @@ #include "maths/MathUtilities.h" #include "base/KaiserWindow.h" #include "base/SincWindow.h" +#include "base/Restrict.h" #include <iostream> #include <vector> @@ -70,10 +71,10 @@ } KaiserWindow::Parameters params = - KaiserWindow::parametersForBandwidth(snr, bandwidth, higher / m_gcd); + KaiserWindow::parametersForBandwidth(snr, bandwidth, higher / m_gcd); params.length = - (params.length % 2 == 0 ? params.length + 1 : params.length); + (params.length % 2 == 0 ? params.length + 1 : params.length); params.length = (params.length > 200001 ? 200001 : params.length); @@ -174,23 +175,23 @@ for (int phase = 0; phase < inputSpacing; ++phase) { - Phase p; + Phase p; - p.nextPhase = phase - outputSpacing; - while (p.nextPhase < 0) p.nextPhase += inputSpacing; - p.nextPhase %= inputSpacing; - - p.drop = int(ceil(std::max(0.0, double(outputSpacing - phase)) - / inputSpacing)); + p.nextPhase = phase - outputSpacing; + while (p.nextPhase < 0) p.nextPhase += inputSpacing; + p.nextPhase %= inputSpacing; + + p.drop = int(ceil(std::max(0.0, double(outputSpacing - phase)) + / inputSpacing)); - int filtZipLength = int(ceil(double(m_filterLength - phase) - / inputSpacing)); + int filtZipLength = int(ceil(double(m_filterLength - phase) + / inputSpacing)); - for (int i = 0; i < filtZipLength; ++i) { - p.filter.push_back(filter[i * inputSpacing + phase]); - } + for (int i = 0; i < filtZipLength; ++i) { + p.filter.push_back(filter[i * inputSpacing + phase]); + } - m_phaseData[phase] = p; + m_phaseData[phase] = p; } #ifdef DEBUG_RESAMPLER @@ -268,7 +269,7 @@ #ifdef DEBUG_RESAMPLER cerr << "initial phase " << m_phase << " (as " << (m_filterLength/2) << " % " << inputSpacing << ")" - << ", latency " << m_latency << endl; + << ", latency " << m_latency << endl; #endif } @@ -285,20 +286,12 @@ throw std::logic_error("n + m_bufferOrigin > m_buffer.size()"); } -#if defined(__MSVC__) -#define R__ __restrict -#elif defined(__GNUC__) -#define R__ __restrict__ -#else -#define R__ -#endif - - const double *const R__ buf(m_buffer.data() + m_bufferOrigin); - const double *const R__ filt(pd.filter.data()); + const double *const QM_R__ buf(m_buffer.data() + m_bufferOrigin); + const double *const QM_R__ filt(pd.filter.data()); for (int i = 0; i < n; ++i) { - // NB gcc can only vectorize this with -ffast-math - v += buf[i] * filt[i]; + // NB gcc can only vectorize this with -ffast-math + v += buf[i] * filt[i]; } m_bufferOrigin += pd.drop; @@ -321,9 +314,9 @@ double scaleFactor = (double(m_targetRate) / m_gcd) / m_peakToPole; while (outidx < maxout && - m_buffer.size() >= m_phaseData[m_phase].filter.size() + m_bufferOrigin) { - dst[outidx] = scaleFactor * reconstructOne(); - outidx++; + m_buffer.size() >= m_phaseData[m_phase].filter.size() + m_bufferOrigin) { + dst[outidx] = scaleFactor * reconstructOne(); + outidx++; } if (m_bufferOrigin > (int)m_buffer.size()) { @@ -392,7 +385,7 @@ int printN = 50; cerr << "first " << printN << " in:" << endl; for (int i = 0; i < printN && i < n; ++i) { - if (i % 5 == 0) cerr << endl << i << "... "; + if (i % 5 == 0) cerr << endl << i << "... "; cerr << data[i] << " "; } cerr << endl; @@ -402,13 +395,13 @@ if (toReturn > m) toReturn = m; vector<double> sliced(out.begin() + latency, - out.begin() + latency + toReturn); + out.begin() + latency + toReturn); #ifdef DEBUG_RESAMPLER_VERBOSE cerr << "first " << printN << " out (after latency compensation), length " << sliced.size() << ":"; for (int i = 0; i < printN && i < sliced.size(); ++i) { - if (i % 5 == 0) cerr << endl << i << "... "; - cerr << sliced[i] << " "; + if (i % 5 == 0) cerr << endl << i << "... "; + cerr << sliced[i] << " "; } cerr << endl; #endif