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 9c163bb8711f499566bb64e86db03b0d166daadf
parent 42bd423c4938a31779c7c8ec3d6e142513633572
Author: samuriddle@gmail.com <samuriddle@gmail.com>
Date:   Sun,  7 Aug 2016 08:40:19 +0300

replace tuple with array in make_vector_impl

Diffstat:
Minclude/kfr/base/vec.hpp | 4++--
Mtests/vec_test.cpp | 4----
2 files changed, 2 insertions(+), 6 deletions(-)

diff --git a/include/kfr/base/vec.hpp b/include/kfr/base/vec.hpp @@ -562,8 +562,8 @@ template <typename T, typename... Args, size_t... indices, size_t N = 1 + sizeof constexpr KFR_INLINE vec<T, N> make_vector_impl(csizes_t<indices...>, const T& x, const Args&... rest) { constexpr size_t width = compound_type_traits<T>::width; - const std::tuple<const T&, const Args&...> list(x, rest...); - typename vec<T, N>::simd_t result{ compound_type_traits<T>::at(std::get<indices / width>(list), + const T list[] = { x, rest... }; + typename vec<T, N>::simd_t result{ compound_type_traits<T>::at(list[indices / width], indices % width)... }; return result; } diff --git a/tests/vec_test.cpp b/tests/vec_test.cpp @@ -182,10 +182,6 @@ TEST(vec_is_convertible) CHECK(static_cast<vec<complex<double>, 2>>(vec<complex<float>, 2>{ c32{ 1.f, 2.f }, c32{ 1.f, 2.f } }) == vec<complex<double>, 2>{ c64{ 1., 2. }, c64{ 1., 2. } }); - CHECK(static_cast<vec<vec<double, 5>, 2>>(vec<vec<float, 5>, 2>{ - vec<float, 5>{ 1.f, 2.f, 3.f, 4.f, 5.f }, vec<float, 5>{ 11.f, 22.f, 33.f, 44.f, 55.f } }) == - vec<vec<double, 5>, 2>{ vec<double, 5>{ 1., 2., 3., 4., 5. }, - vec<double, 5>{ 11., 22., 33., 44., 55. } }); } TEST(vec_pack_expr)