parzen = (N, amplitude) => {
const L = N + 1;
const f1 = (y, n) => {
const r = Math.abs((2 * n) / L);
return y * (1 - 6 * r ** 2 * (1 - r));
};
const f2 = (y, n) => {
const r = Math.abs((2 * n) / L);
return y * 2 * (1 - r) ** 3;
};
return rectangular(N, amplitude).map((y, n) =>
Math.abs(n - N / 2) > L / 4 && Math.abs(n - N / 2) <= L / 2
? f2(y, n - N / 2)
: f1(y, n - N / 2)
);
}