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:
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>)>