56 FloatType beta)
noexcept
62 for (
size_t i = 0; i < size; ++i)
63 samples[i] =
static_cast<FloatType
> (1);
69 auto halfSlots =
static_cast<FloatType
> (0.5) *
static_cast<FloatType
> (size - 1);
71 for (
size_t i = 0; i < size; ++i)
72 samples[i] =
static_cast<FloatType
> (1.0) - std::abs ((
static_cast<FloatType
> (i) - halfSlots) / halfSlots);
78 for (
size_t i = 0; i < size; ++i)
80 auto cos2 = ncos<FloatType> (2, i, size);
81 samples[i] =
static_cast<FloatType
> (0.5 - 0.5 * cos2);
88 for (
size_t i = 0; i < size; ++i)
90 auto cos2 = ncos<FloatType> (2, i, size);
91 samples[i] =
static_cast<FloatType
> (0.54 - 0.46 * cos2);
98 constexpr FloatType alpha = 0.16f;
100 for (
size_t i = 0; i < size; ++i)
102 auto cos2 = ncos<FloatType> (2, i, size);
103 auto cos4 = ncos<FloatType> (4, i, size);
105 samples[i] =
static_cast<FloatType
> (0.5 * (1 - alpha) - 0.5 * cos2 + 0.5 * alpha * cos4);
112 for (
size_t i = 0; i < size; ++i)
114 auto cos2 = ncos<FloatType> (2, i, size);
115 auto cos4 = ncos<FloatType> (4, i, size);
116 auto cos6 = ncos<FloatType> (6, i, size);
118 samples[i] =
static_cast<FloatType
> (0.35875 - 0.48829 * cos2 + 0.14128 * cos4 - 0.01168 * cos6);
125 for (
size_t i = 0; i < size; ++i)
127 auto cos2 = ncos<FloatType> (2, i, size);
128 auto cos4 = ncos<FloatType> (4, i, size);
129 auto cos6 = ncos<FloatType> (6, i, size);
130 auto cos8 = ncos<FloatType> (8, i, size);
132 samples[i] =
static_cast<FloatType
> (1.0 - 1.93 * cos2 + 1.29 * cos4 - 0.388 * cos6 + 0.028 * cos8);
141 for (
size_t i = 0; i < size; ++i)
143 / ( 0.5 * (size - 1.0)), 2.0)))
158 for (
size_t i = 0; i < size; ++i)
161 auto factor =
static_cast<FloatType
> (size) / sum;