17inline void halfBand(std::span<const float> in, std::span<float> out)
40 static constexpr float c1 = -0.076167110507847f;
41 static constexpr float c2 = 0.120096364504897f;
42 static constexpr float c3 = -0.215886324727246f;
43 static constexpr float c4 = 0.671957070730196f;
45 size_t n = out.size();
46 assert(in.size() == (2 * n + HALF_BAND_EXTRA));
48 for (
size_t i = 0; i < n; ++i) {
49 out[i] = in[2 * i + 7]
50 + c1 * (in[2 * i + 0] + in[2 * i + 14])
51 + c2 * (in[2 * i + 2] + in[2 * i + 12])
52 + c3 * (in[2 * i + 4] + in[2 * i + 10])
53 + c4 * (in[2 * i + 6] + in[2 * i + 8]);