Change iterators to pointers
MSVC STL and libc++ iterators do not decay to pointers as easily as gcc
This commit is contained in:
parent
8eaa2a39de
commit
f2fa0cf55a
2 changed files with 170 additions and 159 deletions
|
|
@ -49,17 +49,18 @@ BENCHMARK_DEFINE_F(FilterFixture, OnePole_VA)(benchmark::State& state) {
|
||||||
for (auto _ : state)
|
for (auto _ : state)
|
||||||
{
|
{
|
||||||
const auto step = static_cast<size_t>(state.range(0));
|
const auto step = static_cast<size_t>(state.range(0));
|
||||||
auto cutoffIterator = cutoff.begin();
|
auto cutoffPtr = cutoff.data();
|
||||||
auto inputIterator = input.begin();
|
auto inputPtr = input.data();
|
||||||
auto outputIterator = output.begin();
|
auto outputPtr = output.data();
|
||||||
while (cutoffIterator < cutoff.end())
|
const auto sentinel = cutoff.data() + blockSize;
|
||||||
|
while (cutoffPtr < sentinel)
|
||||||
{
|
{
|
||||||
const auto gain = sfz::OnePoleFilter<float>::normalizedGain(*cutoffIterator, sampleRate);
|
const auto gain = sfz::OnePoleFilter<float>::normalizedGain(*cutoffPtr, sampleRate);
|
||||||
filter.setGain(gain);
|
filter.setGain(gain);
|
||||||
filter.processLowpass({ inputIterator.base(), step }, { outputIterator.base(), step } );
|
filter.processLowpass({ inputPtr, step }, { outputPtr, step } );
|
||||||
cutoffIterator += step;
|
cutoffPtr += step;
|
||||||
inputIterator += step;
|
inputPtr += step;
|
||||||
outputIterator += step;
|
outputPtr += step;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
@ -71,15 +72,16 @@ BENCHMARK_DEFINE_F(FilterFixture, OnePole_Faust)(benchmark::State& state) {
|
||||||
for (auto _ : state)
|
for (auto _ : state)
|
||||||
{
|
{
|
||||||
const auto step = static_cast<size_t>(state.range(0));
|
const auto step = static_cast<size_t>(state.range(0));
|
||||||
auto cutoffIterator = cutoff.begin();
|
auto cutoffPtr = cutoff.data();
|
||||||
auto inputIterator = input.begin();
|
auto inputPtr = input.data();
|
||||||
auto outputIterator = output.begin();
|
auto outputPtr = output.data();
|
||||||
while (cutoffIterator < cutoff.end())
|
const auto sentinel = cutoff.data() + blockSize;
|
||||||
|
while (cutoffPtr < sentinel)
|
||||||
{
|
{
|
||||||
filter.process(&inputIterator.base(), &outputIterator.base(), *cutoffIterator, 0.0, 0.0, step);
|
filter.process(&inputPtr, &outputPtr, *cutoffPtr, 0.0, 0.0, step);
|
||||||
cutoffIterator += step;
|
cutoffPtr += step;
|
||||||
inputIterator += step;
|
inputPtr += step;
|
||||||
outputIterator += step;
|
outputPtr += step;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
@ -91,17 +93,18 @@ BENCHMARK_DEFINE_F(FilterFixture, TwoPole_Faust)(benchmark::State& state) {
|
||||||
for (auto _ : state)
|
for (auto _ : state)
|
||||||
{
|
{
|
||||||
const auto step = static_cast<size_t>(state.range(0));
|
const auto step = static_cast<size_t>(state.range(0));
|
||||||
auto cutoffIterator = cutoff.begin();
|
auto cutoffPtr = cutoff.data();
|
||||||
auto qIterator = q.begin();
|
auto qIterator = q.begin();
|
||||||
auto inputIterator = input.begin();
|
auto inputPtr = input.data();
|
||||||
auto outputIterator = output.begin();
|
auto outputPtr = output.data();
|
||||||
while (cutoffIterator < cutoff.end())
|
const auto sentinel = cutoff.data() + blockSize;
|
||||||
|
while (cutoffPtr < sentinel)
|
||||||
{
|
{
|
||||||
filter.process(&inputIterator.base(), &outputIterator.base(), *cutoffIterator, *qIterator, 0.0, step);
|
filter.process(&inputPtr, &outputPtr, *cutoffPtr, *qIterator, 0.0, step);
|
||||||
qIterator += step;
|
qIterator += step;
|
||||||
cutoffIterator += step;
|
cutoffPtr += step;
|
||||||
inputIterator += step;
|
inputPtr += step;
|
||||||
outputIterator += step;
|
outputPtr += step;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
@ -113,19 +116,20 @@ BENCHMARK_DEFINE_F(FilterFixture, TwoPoleShelf_Faust)(benchmark::State& state) {
|
||||||
for (auto _ : state)
|
for (auto _ : state)
|
||||||
{
|
{
|
||||||
const auto step = static_cast<size_t>(state.range(0));
|
const auto step = static_cast<size_t>(state.range(0));
|
||||||
auto cutoffIterator = cutoff.begin();
|
auto cutoffPtr = cutoff.data();
|
||||||
auto qIterator = q.begin();
|
auto qIterator = q.begin();
|
||||||
auto pkshIterator = pksh.begin();
|
auto pkshIterator = pksh.begin();
|
||||||
auto inputIterator = input.begin();
|
auto inputPtr = input.data();
|
||||||
auto outputIterator = output.begin();
|
auto outputPtr = output.data();
|
||||||
while (cutoffIterator < cutoff.end())
|
const auto sentinel = cutoff.data() + blockSize;
|
||||||
|
while (cutoffPtr < sentinel)
|
||||||
{
|
{
|
||||||
filter.process(&inputIterator.base(), &outputIterator.base(), *cutoffIterator, *qIterator, *pkshIterator, step);
|
filter.process(&inputPtr, &outputPtr, *cutoffPtr, *qIterator, *pkshIterator, step);
|
||||||
qIterator += step;
|
qIterator += step;
|
||||||
cutoffIterator += step;
|
cutoffPtr += step;
|
||||||
pkshIterator += step;
|
pkshIterator += step;
|
||||||
inputIterator += step;
|
inputPtr += step;
|
||||||
outputIterator += step;
|
outputPtr += step;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -19,7 +19,7 @@ constexpr float sampleRate { 48000.0f };
|
||||||
|
|
||||||
class FilterFixture : public benchmark::Fixture {
|
class FilterFixture : public benchmark::Fixture {
|
||||||
public:
|
public:
|
||||||
void SetUp(const ::benchmark::State&) {
|
void SetUp(const ::benchmark::State& state) {
|
||||||
inputLeft = std::vector<float>(blockSize);
|
inputLeft = std::vector<float>(blockSize);
|
||||||
inputRight = std::vector<float>(blockSize);
|
inputRight = std::vector<float>(blockSize);
|
||||||
outputLeft = std::vector<float>(blockSize);
|
outputLeft = std::vector<float>(blockSize);
|
||||||
|
|
@ -56,15 +56,16 @@ BENCHMARK_DEFINE_F(FilterFixture, OnePole_MonoOnce)(benchmark::State& state) {
|
||||||
for (auto _ : state)
|
for (auto _ : state)
|
||||||
{
|
{
|
||||||
const auto step = static_cast<size_t>(state.range(0));
|
const auto step = static_cast<size_t>(state.range(0));
|
||||||
auto cutoffIterator = cutoff.begin();
|
auto cutoffPtr = cutoff.data();
|
||||||
auto inLIterator = inputLeft.begin();
|
auto inLPtr = inputLeft.data();
|
||||||
auto outLIterator = outputRight.begin();
|
auto outLPtr = outputRight.data();
|
||||||
while (cutoffIterator < cutoff.end())
|
const auto sentinel = cutoff.data() + blockSize;
|
||||||
|
while (cutoffPtr < sentinel)
|
||||||
{
|
{
|
||||||
filterLeft.process( &inLIterator.base(), &outLIterator.base(), *cutoffIterator, 0.0, 0.0, step);
|
filterLeft.process( &inLPtr, &outLPtr, *cutoffPtr, 0.0, 0.0, step);
|
||||||
cutoffIterator += step;
|
cutoffPtr += step;
|
||||||
inLIterator += step;
|
inLPtr += step;
|
||||||
outLIterator += step;
|
outLPtr += step;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
@ -79,20 +80,21 @@ BENCHMARK_DEFINE_F(FilterFixture, OnePole_MonoTwice)(benchmark::State& state) {
|
||||||
for (auto _ : state)
|
for (auto _ : state)
|
||||||
{
|
{
|
||||||
const auto step = static_cast<size_t>(state.range(0));
|
const auto step = static_cast<size_t>(state.range(0));
|
||||||
auto cutoffIterator = cutoff.begin();
|
auto cutoffPtr = cutoff.data();
|
||||||
auto inLIterator = inputLeft.begin();
|
auto inLPtr = inputLeft.data();
|
||||||
auto inRIterator = inputRight.begin();
|
auto inRPtr = inputRight.data();
|
||||||
auto outRIterator = outputLeft.begin();
|
auto outRPtr = outputLeft.data();
|
||||||
auto outLIterator = outputRight.begin();
|
auto outLPtr = outputRight.data();
|
||||||
while (cutoffIterator < cutoff.end())
|
const auto sentinel = cutoff.data() + blockSize;
|
||||||
|
while (cutoffPtr < sentinel)
|
||||||
{
|
{
|
||||||
filterLeft.process( &inLIterator.base(), &outLIterator.base(), *cutoffIterator, 0.0, 0.0, step);
|
filterLeft.process( &inLPtr, &outLPtr, *cutoffPtr, 0.0, 0.0, step);
|
||||||
filterRight.process(&inRIterator.base(), &outRIterator.base(), *cutoffIterator, 0.0, 0.0, step);
|
filterRight.process(&inRPtr, &outRPtr, *cutoffPtr, 0.0, 0.0, step);
|
||||||
cutoffIterator += step;
|
cutoffPtr += step;
|
||||||
inLIterator += step;
|
inLPtr += step;
|
||||||
inRIterator += step;
|
inRPtr += step;
|
||||||
outLIterator += step;
|
outLPtr += step;
|
||||||
outRIterator += step;
|
outRPtr += step;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
@ -105,21 +107,22 @@ BENCHMARK_DEFINE_F(FilterFixture, OnePole_Stereo)(benchmark::State& state) {
|
||||||
for (auto _ : state)
|
for (auto _ : state)
|
||||||
{
|
{
|
||||||
const auto step = static_cast<size_t>(state.range(0));
|
const auto step = static_cast<size_t>(state.range(0));
|
||||||
auto cutoffIterator = cutoff.begin();
|
auto cutoffPtr = cutoff.data();
|
||||||
auto inLIterator = inputLeft.begin();
|
auto inLPtr = inputLeft.data();
|
||||||
auto inRIterator = inputRight.begin();
|
auto inRPtr = inputRight.data();
|
||||||
auto outRIterator = outputLeft.begin();
|
auto outRPtr = outputLeft.data();
|
||||||
auto outLIterator = outputRight.begin();
|
auto outLPtr = outputRight.data();
|
||||||
while (cutoffIterator < cutoff.end())
|
const auto sentinel = cutoff.data() + blockSize;
|
||||||
|
while (cutoffPtr < sentinel)
|
||||||
{
|
{
|
||||||
float * inputs[2] = { inLIterator.base(), inRIterator.base() };
|
float * inputs[2] = { inLPtr, inRPtr };
|
||||||
float * outputs[2] = { outLIterator.base(), outRIterator.base() };
|
float * outputs[2] = { outLPtr, outRPtr };
|
||||||
filter.process(inputs, outputs, *cutoffIterator, 0.0, 0.0, step);
|
filter.process(inputs, outputs, *cutoffPtr, 0.0, 0.0, step);
|
||||||
cutoffIterator += step;
|
cutoffPtr += step;
|
||||||
inLIterator += step;
|
inLPtr += step;
|
||||||
inRIterator += step;
|
inRPtr += step;
|
||||||
outLIterator += step;
|
outLPtr += step;
|
||||||
outRIterator += step;
|
outRPtr += step;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
@ -131,17 +134,18 @@ BENCHMARK_DEFINE_F(FilterFixture, TwoPole_MonoOnce)(benchmark::State& state) {
|
||||||
for (auto _ : state)
|
for (auto _ : state)
|
||||||
{
|
{
|
||||||
const auto step = static_cast<size_t>(state.range(0));
|
const auto step = static_cast<size_t>(state.range(0));
|
||||||
auto cutoffIterator = cutoff.begin();
|
auto cutoffPtr = cutoff.data();
|
||||||
auto qIterator = q.begin();
|
auto qPtr = q.data();
|
||||||
auto inLIterator = inputLeft.begin();
|
auto inLPtr = inputLeft.data();
|
||||||
auto outLIterator = outputRight.begin();
|
auto outLPtr = outputRight.data();
|
||||||
while (cutoffIterator < cutoff.end())
|
const auto sentinel = cutoff.data() + blockSize;
|
||||||
|
while (cutoffPtr < sentinel)
|
||||||
{
|
{
|
||||||
filterLeft.process(&inLIterator.base(), &outLIterator.base(), *cutoffIterator, *qIterator, 0.0, step);
|
filterLeft.process(&inLPtr, &outLPtr, *cutoffPtr, *qPtr, 0.0, step);
|
||||||
cutoffIterator += step;
|
cutoffPtr += step;
|
||||||
qIterator += step;
|
qPtr += step;
|
||||||
inLIterator += step;
|
inLPtr += step;
|
||||||
outLIterator += step;
|
outLPtr += step;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
@ -156,22 +160,23 @@ BENCHMARK_DEFINE_F(FilterFixture, TwoPole_MonoTwice)(benchmark::State& state) {
|
||||||
for (auto _ : state)
|
for (auto _ : state)
|
||||||
{
|
{
|
||||||
const auto step = static_cast<size_t>(state.range(0));
|
const auto step = static_cast<size_t>(state.range(0));
|
||||||
auto cutoffIterator = cutoff.begin();
|
auto cutoffPtr = cutoff.data();
|
||||||
auto qIterator = q.begin();
|
auto qPtr = q.data();
|
||||||
auto inLIterator = inputLeft.begin();
|
auto inLPtr = inputLeft.data();
|
||||||
auto inRIterator = inputRight.begin();
|
auto inRPtr = inputRight.data();
|
||||||
auto outRIterator = outputLeft.begin();
|
auto outRPtr = outputLeft.data();
|
||||||
auto outLIterator = outputRight.begin();
|
auto outLPtr = outputRight.data();
|
||||||
while (cutoffIterator < cutoff.end())
|
const auto sentinel = cutoff.data() + blockSize;
|
||||||
|
while (cutoffPtr < sentinel)
|
||||||
{
|
{
|
||||||
filterLeft.process( &inLIterator.base(), &outLIterator.base(), *cutoffIterator, *qIterator, 0.0, step);
|
filterLeft.process( &inLPtr, &outLPtr, *cutoffPtr, *qPtr, 0.0, step);
|
||||||
filterRight.process(&inRIterator.base(), &outRIterator.base(), *cutoffIterator, *qIterator, 0.0, step);
|
filterRight.process(&inRPtr, &outRPtr, *cutoffPtr, *qPtr, 0.0, step);
|
||||||
cutoffIterator += step;
|
cutoffPtr += step;
|
||||||
qIterator += step;
|
qPtr += step;
|
||||||
inLIterator += step;
|
inLPtr += step;
|
||||||
inRIterator += step;
|
inRPtr += step;
|
||||||
outLIterator += step;
|
outLPtr += step;
|
||||||
outRIterator += step;
|
outRPtr += step;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
@ -184,23 +189,24 @@ BENCHMARK_DEFINE_F(FilterFixture, TwoPole_Stereo)(benchmark::State& state) {
|
||||||
for (auto _ : state)
|
for (auto _ : state)
|
||||||
{
|
{
|
||||||
const auto step = static_cast<size_t>(state.range(0));
|
const auto step = static_cast<size_t>(state.range(0));
|
||||||
auto cutoffIterator = cutoff.begin();
|
auto cutoffPtr = cutoff.data();
|
||||||
auto qIterator = q.begin();
|
auto qPtr = q.data();
|
||||||
auto inLIterator = inputLeft.begin();
|
auto inLPtr = inputLeft.data();
|
||||||
auto inRIterator = inputRight.begin();
|
auto inRPtr = inputRight.data();
|
||||||
auto outRIterator = outputLeft.begin();
|
auto outRPtr = outputLeft.data();
|
||||||
auto outLIterator = outputRight.begin();
|
auto outLPtr = outputRight.data();
|
||||||
while (cutoffIterator < cutoff.end())
|
const auto sentinel = cutoff.data() + blockSize;
|
||||||
|
while (cutoffPtr < sentinel)
|
||||||
{
|
{
|
||||||
float * inputs[2] = { inLIterator.base(), inRIterator.base() };
|
float * inputs[2] = { inLPtr, inRPtr };
|
||||||
float * outputs[2] = { outLIterator.base(), outRIterator.base() };
|
float * outputs[2] = { outLPtr, outRPtr };
|
||||||
filter.process(inputs, outputs, *cutoffIterator, *qIterator, 0.0, step);
|
filter.process(inputs, outputs, *cutoffPtr, *qPtr, 0.0, step);
|
||||||
cutoffIterator += step;
|
cutoffPtr += step;
|
||||||
qIterator += step;
|
qPtr += step;
|
||||||
inLIterator += step;
|
inLPtr += step;
|
||||||
inRIterator += step;
|
inRPtr += step;
|
||||||
outLIterator += step;
|
outLPtr += step;
|
||||||
outRIterator += step;
|
outRPtr += step;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
@ -212,19 +218,20 @@ BENCHMARK_DEFINE_F(FilterFixture, Shelf_MonoOnce)(benchmark::State& state) {
|
||||||
for (auto _ : state)
|
for (auto _ : state)
|
||||||
{
|
{
|
||||||
const auto step = static_cast<size_t>(state.range(0));
|
const auto step = static_cast<size_t>(state.range(0));
|
||||||
auto cutoffIterator = cutoff.begin();
|
auto cutoffPtr = cutoff.data();
|
||||||
auto qIterator = q.begin();
|
auto qPtr = q.data();
|
||||||
auto pkshIterator = pksh.begin();
|
auto pkshPtr = pksh.data();
|
||||||
auto inLIterator = inputLeft.begin();
|
auto inLPtr = inputLeft.data();
|
||||||
auto outLIterator = outputRight.begin();
|
auto outLPtr = outputRight.data();
|
||||||
while (cutoffIterator < cutoff.end())
|
const auto sentinel = cutoff.data() + blockSize;
|
||||||
|
while (cutoffPtr < sentinel)
|
||||||
{
|
{
|
||||||
filterLeft.process(&inLIterator.base(), &outLIterator.base(), *cutoffIterator, *qIterator, *pkshIterator, step);
|
filterLeft.process(&inLPtr, &outLPtr, *cutoffPtr, *qPtr, *pkshPtr, step);
|
||||||
cutoffIterator += step;
|
cutoffPtr += step;
|
||||||
qIterator += step;
|
qPtr += step;
|
||||||
pkshIterator += step;
|
pkshPtr += step;
|
||||||
inLIterator += step;
|
inLPtr += step;
|
||||||
outLIterator += step;
|
outLPtr += step;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
@ -235,28 +242,28 @@ BENCHMARK_DEFINE_F(FilterFixture, Shelf_MonoTwice)(benchmark::State& state) {
|
||||||
filterLeft.init(sampleRate);
|
filterLeft.init(sampleRate);
|
||||||
filterLeft.setType(sfz::FilterType::kFilterLpf2p);
|
filterLeft.setType(sfz::FilterType::kFilterLpf2p);
|
||||||
filterRight.init(sampleRate);
|
filterRight.init(sampleRate);
|
||||||
filterRight.setType(sfz::FilterType::kFilterLpf2p);
|
|
||||||
for (auto _ : state)
|
for (auto _ : state)
|
||||||
{
|
{
|
||||||
const auto step = static_cast<size_t>(state.range(0));
|
const auto step = static_cast<size_t>(state.range(0));
|
||||||
auto cutoffIterator = cutoff.begin();
|
auto cutoffPtr = cutoff.data();
|
||||||
auto qIterator = q.begin();
|
auto qPtr = q.data();
|
||||||
auto pkshIterator = pksh.begin();
|
auto pkshPtr = pksh.data();
|
||||||
auto inLIterator = inputLeft.begin();
|
auto inLPtr = inputLeft.data();
|
||||||
auto inRIterator = inputRight.begin();
|
auto inRPtr = inputRight.data();
|
||||||
auto outRIterator = outputLeft.begin();
|
auto outRPtr = outputLeft.data();
|
||||||
auto outLIterator = outputRight.begin();
|
auto outLPtr = outputRight.data();
|
||||||
while (cutoffIterator < cutoff.end())
|
const auto sentinel = cutoff.data() + blockSize;
|
||||||
|
while (cutoffPtr < sentinel)
|
||||||
{
|
{
|
||||||
filterLeft.process( &inLIterator.base(), &outLIterator.base(), *cutoffIterator, *qIterator, *pkshIterator, step);
|
filterLeft.process( &inLPtr, &outLPtr, *cutoffPtr, *qPtr, *pkshPtr, step);
|
||||||
filterRight.process(&inRIterator.base(), &outRIterator.base(), *cutoffIterator, *qIterator, *pkshIterator, step);
|
filterRight.process(&inRPtr, &outRPtr, *cutoffPtr, *qPtr, *pkshPtr, step);
|
||||||
cutoffIterator += step;
|
cutoffPtr += step;
|
||||||
qIterator += step;
|
qPtr += step;
|
||||||
pkshIterator += step;
|
pkshPtr += step;
|
||||||
inLIterator += step;
|
inLPtr += step;
|
||||||
inRIterator += step;
|
inRPtr += step;
|
||||||
outLIterator += step;
|
outLPtr += step;
|
||||||
outRIterator += step;
|
outRPtr += step;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
@ -269,25 +276,26 @@ BENCHMARK_DEFINE_F(FilterFixture, Shelf_Stereo)(benchmark::State& state) {
|
||||||
for (auto _ : state)
|
for (auto _ : state)
|
||||||
{
|
{
|
||||||
const auto step = static_cast<size_t>(state.range(0));
|
const auto step = static_cast<size_t>(state.range(0));
|
||||||
auto cutoffIterator = cutoff.begin();
|
auto cutoffPtr = cutoff.data();
|
||||||
auto qIterator = q.begin();
|
auto qPtr = q.data();
|
||||||
auto pkshIterator = pksh.begin();
|
auto pkshPtr = pksh.data();
|
||||||
auto inLIterator = inputLeft.begin();
|
auto inLPtr = inputLeft.data();
|
||||||
auto inRIterator = inputRight.begin();
|
auto inRPtr = inputRight.data();
|
||||||
auto outRIterator = outputLeft.begin();
|
auto outRPtr = outputLeft.data();
|
||||||
auto outLIterator = outputRight.begin();
|
auto outLPtr = outputRight.data();
|
||||||
while (cutoffIterator < cutoff.end())
|
const auto sentinel = cutoff.data() + blockSize;
|
||||||
|
while (cutoffPtr < sentinel)
|
||||||
{
|
{
|
||||||
float * inputs[2] = { inLIterator.base(), inRIterator.base() };
|
float * inputs[2] = { inLPtr, inRPtr };
|
||||||
float * outputs[2] = { outLIterator.base(), outRIterator.base() };
|
float * outputs[2] = { outLPtr, outRPtr };
|
||||||
filter.process(inputs, outputs, *cutoffIterator, *qIterator, *pkshIterator, step);
|
filter.process(inputs, outputs, *cutoffPtr, *qPtr, *pkshPtr, step);
|
||||||
cutoffIterator += step;
|
cutoffPtr += step;
|
||||||
qIterator += step;
|
qPtr += step;
|
||||||
pkshIterator += step;
|
pkshPtr += step;
|
||||||
inLIterator += step;
|
inLPtr += step;
|
||||||
inRIterator += step;
|
inRPtr += step;
|
||||||
outLIterator += step;
|
outLPtr += step;
|
||||||
outRIterator += step;
|
outRPtr += step;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
@ -302,4 +310,3 @@ BENCHMARK_REGISTER_F(FilterFixture, Shelf_MonoOnce)->RangeMultiplier(2)->Range(1
|
||||||
BENCHMARK_REGISTER_F(FilterFixture, Shelf_MonoTwice)->RangeMultiplier(2)->Range(1, 1 << 8);
|
BENCHMARK_REGISTER_F(FilterFixture, Shelf_MonoTwice)->RangeMultiplier(2)->Range(1, 1 << 8);
|
||||||
BENCHMARK_REGISTER_F(FilterFixture, Shelf_Stereo)->RangeMultiplier(2)->Range(1, 1 << 8);
|
BENCHMARK_REGISTER_F(FilterFixture, Shelf_Stereo)->RangeMultiplier(2)->Range(1, 1 << 8);
|
||||||
BENCHMARK_MAIN();
|
BENCHMARK_MAIN();
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Add table
Reference in a new issue