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)
37 static double scalarproduct_double(
const double *v1,
const double *v2,
int len)
41 for (
int i = 0;
i <
len;
i++)
51 const int order =
s->order;
59 output =
s->fdsp->scalarproduct_float(delay,
tmp,
s->kernel_size);
61 output = scalarproduct_double(delay,
tmp,
s->kernel_size);
73 const int order =
s->order;
74 const ftype leakage =
s->leakage;
86 sum =
s->fdsp->scalarproduct_float(delay, delay,
s->kernel_size);
88 sum = scalarproduct_double(delay, delay,
s->kernel_size);
98 s->fdsp->vector_fmul_scalar(coeffs, coeffs,
a,
s->kernel_size);
99 s->fdsp->vector_fmac_scalar(coeffs,
tmp,
b,
s->kernel_size);
101 s->fdsp->vector_dmul_scalar(coeffs, coeffs,
a,
s->kernel_size);
102 s->fdsp->vector_dmac_scalar(coeffs,
tmp,
b,
s->kernel_size);
105 memcpy(coeffs + order, coeffs, order *
sizeof(
ftype));
107 switch (
s->output_mode) {
121 const int start = (
out->ch_layout.nb_channels * jobnr) / nb_jobs;
122 const int end = (
out->ch_layout.nb_channels * (jobnr+1)) / nb_jobs;
124 for (
int c = start;
c < end;
c++) {
126 const ftype *desired = (
const ftype *)
s->frame[1]->extended_data[
c];
130 int *
offset = (
int *)
s->offset->extended_data[
c];
133 for (
int n = 0; n <
out->nb_samples; n++) {
135 if (
ctx->is_disabled)