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 12ea4daa750544e56a433c30bdc48e43728b468a
parent 3f18315816e8ab2c72fbed448beb2051878aa5e4
Author: d.levin256@gmail.com <d.levin256@gmail.com>
Date:   Thu,  3 Nov 2016 07:49:25 +0300

Forward declaration for low/high

Diffstat:
Minclude/kfr/base/vec.hpp | 17+++++++++++++----
1 file changed, 13 insertions(+), 4 deletions(-)

diff --git a/include/kfr/base/vec.hpp b/include/kfr/base/vec.hpp @@ -28,6 +28,17 @@ #include "kfr.h" #include "constants.hpp" +#include "types.hpp" + +namespace kfr +{ + +template <typename T, size_t N, size_t Nout = prev_poweroftwo(N - 1)> +CMT_INLINE vec<T, Nout> low(const vec<T, N>& x); +template <typename T, size_t N, size_t Nout = N - prev_poweroftwo(N - 1)> +CMT_INLINE vec<T, Nout> high(const vec<T, N>& x); +} + #ifdef CMT_COMPILER_CLANG #include "simd_clang.hpp" #else @@ -36,7 +47,6 @@ #include "simd_x86.hpp" #endif #endif -#include "types.hpp" CMT_PRAGMA_GNU(GCC diagnostic push) CMT_PRAGMA_GNU(GCC diagnostic ignored "-Wpragmas") @@ -1002,7 +1012,7 @@ constexpr CMT_INLINE vec<T, N> undefinedvector(vec_t<T, N>) } KFR_FN(undefinedvector) -template <typename T, size_t N, size_t Nout = prev_poweroftwo(N - 1)> +template <typename T, size_t N, size_t Nout /*= prev_poweroftwo(N - 1)*/> CMT_INLINE vec<T, Nout> low(const vec<T, N>& x) { return x.shuffle(csizeseq_t<Nout>()); @@ -1014,7 +1024,7 @@ CMT_INLINE vec_t<T, Nout> low(vec_t<T, N>) return {}; } -template <typename T, size_t N, size_t Nout = N - prev_poweroftwo(N - 1)> +template <typename T, size_t N, size_t Nout /*= N - prev_poweroftwo(N - 1)*/> CMT_INLINE vec<T, Nout> high(const vec<T, N>& x) { return x.shuffle(csizeseq_t<Nout, prev_poweroftwo(N - 1)>()); @@ -1029,7 +1039,6 @@ KFR_FN(low) KFR_FN(high) } - namespace cometa {