[FFmpeg-cvslog] lavfi: get rid of bespoke double scalar products

Rémi Denis-Courmont git at videolan.org
Fri May 31 22:26:00 EEST 2024


ffmpeg | branch: master | Rémi Denis-Courmont <remi at remlab.net> | Wed May 29 17:51:06 2024 +0300| [b1149520305839eaceeb20864f501c96d358731e] | committer: Rémi Denis-Courmont

lavfi: get rid of bespoke double scalar products

> http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=b1149520305839eaceeb20864f501c96d358731e
---

 libavfilter/aap_template.c   | 14 +-------------
 libavfilter/anlms_template.c | 16 ++--------------
 libavfilter/arls_template.c  | 14 +-------------
 3 files changed, 4 insertions(+), 40 deletions(-)

diff --git a/libavfilter/aap_template.c b/libavfilter/aap_template.c
index ea9c815a89..0e0580fb32 100644
--- a/libavfilter/aap_template.c
+++ b/libavfilter/aap_template.c
@@ -36,18 +36,6 @@
 #define fn2(a,b)   fn3(a,b)
 #define fn(a)      fn2(a, SAMPLE_FORMAT)
 
-#if DEPTH == 64
-static double scalarproduct_double(const double *v1, const double *v2, int len)
-{
-    double p = 0.0;
-
-    for (int i = 0; i < len; i++)
-        p += v1[i] * v2[i];
-
-    return p;
-}
-#endif
-
 static ftype fn(fir_sample)(AudioAPContext *s, ftype sample, ftype *delay,
                             ftype *coeffs, ftype *tmp, int *offset)
 {
@@ -60,7 +48,7 @@ static ftype fn(fir_sample)(AudioAPContext *s, ftype sample, ftype *delay,
 #if DEPTH == 32
     output = s->fdsp->scalarproduct_float(delay, tmp, s->kernel_size);
 #else
-    output = scalarproduct_double(delay, tmp, s->kernel_size);
+    output = s->fdsp->scalarproduct_double(delay, tmp, s->kernel_size);
 #endif
 
     if (--(*offset) < 0)
diff --git a/libavfilter/anlms_template.c b/libavfilter/anlms_template.c
index b25df4fa18..a8d1dbfe0f 100644
--- a/libavfilter/anlms_template.c
+++ b/libavfilter/anlms_template.c
@@ -33,18 +33,6 @@
 #define fn2(a,b)   fn3(a,b)
 #define fn(a)      fn2(a, SAMPLE_FORMAT)
 
-#if DEPTH == 64
-static double scalarproduct_double(const double *v1, const double *v2, int len)
-{
-    double p = 0.0;
-
-    for (int i = 0; i < len; i++)
-        p += v1[i] * v2[i];
-
-    return p;
-}
-#endif
-
 static ftype fn(fir_sample)(AudioNLMSContext *s, ftype sample, ftype *delay,
                             ftype *coeffs, ftype *tmp, int *offset)
 {
@@ -58,7 +46,7 @@ static ftype fn(fir_sample)(AudioNLMSContext *s, ftype sample, ftype *delay,
 #if DEPTH == 32
     output = s->fdsp->scalarproduct_float(delay, tmp, s->kernel_size);
 #else
-    output = scalarproduct_double(delay, tmp, s->kernel_size);
+    output = s->fdsp->scalarproduct_double(delay, tmp, s->kernel_size);
 #endif
 
     if (--(*offset) < 0)
@@ -85,7 +73,7 @@ static ftype fn(process_sample)(AudioNLMSContext *s, ftype input, ftype desired,
 #if DEPTH == 32
     sum = s->fdsp->scalarproduct_float(delay, delay, s->kernel_size);
 #else
-    sum = scalarproduct_double(delay, delay, s->kernel_size);
+    sum = s->fdsp->scalarproduct_double(delay, delay, s->kernel_size);
 #endif
     norm = s->eps + sum;
     b = mu * e / norm;
diff --git a/libavfilter/arls_template.c b/libavfilter/arls_template.c
index d8b19d89a5..c67b48cf6f 100644
--- a/libavfilter/arls_template.c
+++ b/libavfilter/arls_template.c
@@ -39,18 +39,6 @@
 #define fn2(a,b)   fn3(a,b)
 #define fn(a)      fn2(a, SAMPLE_FORMAT)
 
-#if DEPTH == 64
-static double scalarproduct_double(const double *v1, const double *v2, int len)
-{
-    double p = 0.0;
-
-    for (int i = 0; i < len; i++)
-        p += v1[i] * v2[i];
-
-    return p;
-}
-#endif
-
 static ftype fn(fir_sample)(AudioRLSContext *s, ftype sample, ftype *delay,
                             ftype *coeffs, ftype *tmp, int *offset)
 {
@@ -64,7 +52,7 @@ static ftype fn(fir_sample)(AudioRLSContext *s, ftype sample, ftype *delay,
 #if DEPTH == 32
     output = s->fdsp->scalarproduct_float(delay, tmp, s->kernel_size);
 #else
-    output = scalarproduct_double(delay, tmp, s->kernel_size);
+    output = s->fdsp->scalarproduct_double(delay, tmp, s->kernel_size);
 #endif
 
     if (--(*offset) < 0)



More information about the ffmpeg-cvslog mailing list