kfr

Fast, modern C++ DSP framework, FFT, Sample Rate Conversion, FIR/IIR/Biquad Filters (SSE, AVX, AVX-512, ARM NEON)
Log | Files | Refs | README

commit e33911e70905261f88defce1fab10a6ce075ed63
parent afe8c69338c1ce53b266462d03a31ae026de2898
Author: d.levin256@gmail.com <d.levin256@gmail.com>
Date:   Tue, 26 Nov 2019 15:15:04 +0000

Fix for convolve_filter

Diffstat:
Mexamples/fir.cpp | 6+++---
Minclude/kfr/base/pointer.hpp | 4++--
2 files changed, 5 insertions(+), 5 deletions(-)

diff --git a/examples/fir.cpp b/examples/fir.cpp @@ -137,11 +137,11 @@ int main() // -------------------------------------------------------------------------------------- // Initialize FIR filter with float input/output and fbase taps - convolve_filter<float> conv_filter(taps127); + convolve_filter<fbase> conv_filter(taps127); // Apply to univector, static array, data by pointer or anything - univector<float> filtered_noise3; - conv_filter.apply(filtered_noise3, noise); + univector<fbase> filtered_noise3; + conv_filter.apply(filtered_noise3, noise * 1.0); #if PYTHON_IS_INSTALLED // Plot results, same as filtered_noise2 diff --git a/include/kfr/base/pointer.hpp b/include/kfr/base/pointer.hpp @@ -144,9 +144,9 @@ struct expression_pointer : input_expression using value_type = T; expression_pointer() CMT_NOEXCEPT : instance(nullptr), vtable(nullptr) {} - expression_pointer(void* instance, const expression_vtable<T>* vtable, + expression_pointer(const void* instance, const expression_vtable<T>* vtable, std::shared_ptr<expression_resource> resource = nullptr) - : instance(instance), vtable(vtable), resource(std::move(resource)) + : instance(const_cast<void*>(instance)), vtable(vtable), resource(std::move(resource)) { } template <size_t N, KFR_ENABLE_IF(N <= maximum_expression_width<T>)>