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 d25a43ed046b086ad3601be1af10e173333552ee
parent 1b4afb35f0a94b8fc284b2d4184372243fe30675
Author: bmanga <bruno.manga95@gmail.com>
Date:   Fri, 12 Apr 2019 12:28:04 +0100

Make DFT compile with GCC

Diffstat:
MCMakeLists.txt | 11+++--------
Minclude/kfr/dft/impl/dft-impl.hpp | 4++--
Minclude/kfr/simd/impl/read_write.hpp | 1+
3 files changed, 6 insertions(+), 10 deletions(-)

diff --git a/CMakeLists.txt b/CMakeLists.txt @@ -56,11 +56,9 @@ endif() include(sources.cmake) option(ENABLE_TESTS "Enable tests and examples" OFF) -if (CLANG) - option(ENABLE_DFT "Enable DFT and related algorithms. Requires Clang" ON) - if (X86) - option(ENABLE_DFT_MULTIARCH "Build DFT static libraries for various architectures. Requires Clang" OFF) - endif () +option(ENABLE_DFT "Enable DFT and related algorithms." ON) +if (X86) + option(ENABLE_DFT_MULTIARCH "Build DFT static libraries for various architectures." OFF) endif () option(ENABLE_ASMTEST "Enable writing disassembly" OFF) option(REGENERATE_TESTS "Regenerate auto tests" OFF) @@ -169,9 +167,6 @@ if (ENABLE_TESTS) endif () if (ENABLE_DFT) - if (NOT CLANG) - message(FATAL_ERROR "Clang compiler is required for DFT in KFR. See README.md for more information") - endif() add_library(kfr_dft ${KFR_DFT_SRC}) target_link_libraries(kfr_dft kfr use_arch) if (MSVC) diff --git a/include/kfr/dft/impl/dft-impl.hpp b/include/kfr/dft/impl/dft-impl.hpp @@ -465,12 +465,12 @@ void prepare_dft_stage(dft_plan<T>* self, size_t radix, size_t iterations, size_ return cswitch( dft_radices, radix, [self, iterations, blocks](auto radix) CMT_INLINE_LAMBDA { - add_stage<conditional<is_final, intrinsics::dft_stage_fixed_final_impl<T, val_of(radix)>, + self->template add_stage<conditional<is_final, intrinsics::dft_stage_fixed_final_impl<T, val_of(radix)>, intrinsics::dft_stage_fixed_impl<T, val_of(radix)>>>(self, radix, iterations, blocks); }, [self, radix, iterations, blocks]() { - add_stage<intrinsics::dft_stage_generic_impl<T, is_final>>(self, radix, iterations, blocks); + self->template add_stage<intrinsics::dft_stage_generic_impl<T, is_final>>(self, radix, iterations, blocks); }); } diff --git a/include/kfr/simd/impl/read_write.hpp b/include/kfr/simd/impl/read_write.hpp @@ -28,6 +28,7 @@ #include "../shuffle.hpp" #include "../types.hpp" #include "../vec.hpp" +#include "function.hpp" namespace kfr {