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 264e3d51c8fc1611e87f8636fef926245544b96d
parent ed316590f47bdbb603b65c833ef75af718232bda
Author: d.levin256@gmail.com <d.levin256@gmail.com>
Date:   Mon,  6 Nov 2023 00:18:23 +0000

trig_fold: simplify to fix MSVC ICE

Diffstat:
Minclude/kfr/math/impl/sin_cos.hpp | 8++++----
1 file changed, 4 insertions(+), 4 deletions(-)

diff --git a/include/kfr/math/impl/sin_cos.hpp b/include/kfr/math/impl/sin_cos.hpp @@ -64,10 +64,10 @@ KFR_INTRINSIC vec<T, N> trig_fold(const vec<T, N>& x, vec<itype<T>, N>& quadrant vec<T, N> y = floor(xabs / div); quadrant = broadcastto<itype<T>>(broadcastto<int>(y - floor(y * T(1.0 / 16.0)) * T(16.0))); - const mask<T, N> msk = (quadrant & 1) != 0; - quadrant = kfr::select(msk, quadrant + 1, quadrant); - y = select(msk, y + T(1.0), y); - quadrant = quadrant & 7; + const vec<itype<T>, N> odd = (quadrant & 1); + quadrant = quadrant + odd; + y = y + cast<T>(odd); + quadrant = quadrant & 7; constexpr T hi = constants<T>::fold_constant_hi; constexpr T rem1 = constants<T>::fold_constant_rem1;