Mercurial > hg > qm-dsp
comparison dsp/rateconversion/Resampler.cpp @ 498:8b92623e81c9
Use Restrict header
author | Chris Cannam <cannam@all-day-breakfast.com> |
---|---|
date | Mon, 03 Jun 2019 14:20:07 +0100 |
parents | fdaa63607c15 |
children |
comparison
equal
deleted
inserted
replaced
497:0d3a001e63c7 | 498:8b92623e81c9 |
---|---|
15 #include "Resampler.h" | 15 #include "Resampler.h" |
16 | 16 |
17 #include "maths/MathUtilities.h" | 17 #include "maths/MathUtilities.h" |
18 #include "base/KaiserWindow.h" | 18 #include "base/KaiserWindow.h" |
19 #include "base/SincWindow.h" | 19 #include "base/SincWindow.h" |
20 #include "base/Restrict.h" | |
20 | 21 |
21 #include <iostream> | 22 #include <iostream> |
22 #include <vector> | 23 #include <vector> |
23 #include <map> | 24 #include <map> |
24 #include <cassert> | 25 #include <cassert> |
283 cerr << "ERROR: n + m_bufferOrigin > m_buffer.size() [" << n << " + " | 284 cerr << "ERROR: n + m_bufferOrigin > m_buffer.size() [" << n << " + " |
284 << m_bufferOrigin << " > " << m_buffer.size() << "]" << endl; | 285 << m_bufferOrigin << " > " << m_buffer.size() << "]" << endl; |
285 throw std::logic_error("n + m_bufferOrigin > m_buffer.size()"); | 286 throw std::logic_error("n + m_bufferOrigin > m_buffer.size()"); |
286 } | 287 } |
287 | 288 |
288 #if defined(__MSVC__) | 289 const double *const QM_R__ buf(m_buffer.data() + m_bufferOrigin); |
289 #define R__ __restrict | 290 const double *const QM_R__ filt(pd.filter.data()); |
290 #elif defined(__GNUC__) | |
291 #define R__ __restrict__ | |
292 #else | |
293 #define R__ | |
294 #endif | |
295 | |
296 const double *const R__ buf(m_buffer.data() + m_bufferOrigin); | |
297 const double *const R__ filt(pd.filter.data()); | |
298 | 291 |
299 for (int i = 0; i < n; ++i) { | 292 for (int i = 0; i < n; ++i) { |
300 // NB gcc can only vectorize this with -ffast-math | 293 // NB gcc can only vectorize this with -ffast-math |
301 v += buf[i] * filt[i]; | 294 v += buf[i] * filt[i]; |
302 } | 295 } |