23 #define SAMPLE_FORMAT float
27 #define SAMPLE_FORMAT double
32 #define fn3(a,b) a##_##b
33 #define fn2(a,b) fn3(a,b)
34 #define fn(a) fn2(a, SAMPLE_FORMAT)
39 const int order =
s->order;
47 output =
s->fdsp->scalarproduct_float(delay,
tmp,
s->kernel_size);
49 output =
s->fdsp->scalarproduct_double(delay,
tmp,
s->kernel_size);
61 const int order =
s->order;
62 const ftype leakage =
s->leakage;
74 sum =
s->fdsp->scalarproduct_float(delay, delay,
s->kernel_size);
76 sum =
s->fdsp->scalarproduct_double(delay, delay,
s->kernel_size);
86 s->fdsp->vector_fmul_scalar(coeffs, coeffs,
a,
s->kernel_size);
87 s->fdsp->vector_fmac_scalar(coeffs,
tmp,
b,
s->kernel_size);
89 s->fdsp->vector_dmul_scalar(coeffs, coeffs,
a,
s->kernel_size);
90 s->fdsp->vector_dmac_scalar(coeffs,
tmp,
b,
s->kernel_size);
93 memcpy(coeffs + order, coeffs, order *
sizeof(
ftype));
95 switch (
s->output_mode) {
109 const int start = (
out->ch_layout.nb_channels * jobnr) / nb_jobs;
110 const int end = (
out->ch_layout.nb_channels * (jobnr+1)) / nb_jobs;
112 for (
int c = start;
c < end;
c++) {
114 const ftype *desired = (
const ftype *)
s->frame[1]->extended_data[
c];
118 int *
offset = (
int *)
s->offset->extended_data[
c];
121 for (
int n = 0; n <
out->nb_samples; n++) {
123 if (
ctx->is_disabled)