This is an automated email from the git hooks/post-receive script.

Git pushed a commit to branch master
in repository ffmpeg.

commit 068173f329c681fc084c9a994eb28d21139c477b
Author:     Niklas Haas <[email protected]>
AuthorDate: Wed Dec 17 17:53:28 2025 +0100
Commit:     Niklas Haas <[email protected]>
CommitDate: Thu Jun 4 11:44:22 2026 +0200

    tests/checkasm: factorize out randomize_buffer for doubles
    
    Not only is this duplicating code, but it also hard-codes a reference to
    `checkasm_lfg`, which I want to eliminate in the interest of being able to
    switch out the checkasm implementation.
---
 tests/checkasm/af_afir.c   | 24 ++++++------------------
 tests/checkasm/checkasm.h  | 11 +++++++++++
 tests/checkasm/float_dsp.c | 30 +++++++++---------------------
 tests/checkasm/lls.c       | 15 ++-------------
 tests/checkasm/vorbisdsp.c | 15 ++-------------
 5 files changed, 30 insertions(+), 65 deletions(-)

diff --git a/tests/checkasm/af_afir.c b/tests/checkasm/af_afir.c
index 6cb59dbb6c..dba1531473 100644
--- a/tests/checkasm/af_afir.c
+++ b/tests/checkasm/af_afir.c
@@ -28,18 +28,6 @@
 
 #define LEN 256
 
-#define randomize_buffer(buf)                 \
-do {                                          \
-    int i;                                    \
-    double bmg[2], stddev = 10.0, mean = 0.0; \
-                                              \
-    for (i = 0; i < BUF_SIZE; i += 2) {        \
-        av_bmg_get(&checkasm_lfg, bmg);       \
-        buf[i]     = bmg[0] * stddev + mean;  \
-        buf[i + 1] = bmg[1] * stddev + mean;  \
-    }                                         \
-} while(0);
-
 static void test_fcmul_add(AudioFIRDSPContext *fir)
 {
 #define BUF_SIZE LEN*2+8
@@ -47,9 +35,9 @@ static void test_fcmul_add(AudioFIRDSPContext *fir)
     LOCAL_ALIGNED_32(float, src1, [BUF_SIZE]);
     LOCAL_ALIGNED_32(float, src2, [BUF_SIZE]);
 
-    randomize_buffer(src0);
-    randomize_buffer(src1);
-    randomize_buffer(src2);
+    randomize_stddev(src0, BUF_SIZE, 10.0);
+    randomize_stddev(src1, BUF_SIZE, 10.0);
+    randomize_stddev(src2, BUF_SIZE, 10.0);
 
     if (check_func(fir->fcmul_add, "fcmul_add")) {
         LOCAL_ALIGNED_32(float, cdst, [BUF_SIZE]);
@@ -97,9 +85,9 @@ static void test_dcmul_add(AudioFIRDSPContext *fir)
     LOCAL_ALIGNED_32(double, src1, [BUF_SIZE]);
     LOCAL_ALIGNED_32(double, src2, [BUF_SIZE]);
 
-    randomize_buffer(src0);
-    randomize_buffer(src1);
-    randomize_buffer(src2);
+    randomize_stddev_dbl(src0, BUF_SIZE, 10.0);
+    randomize_stddev_dbl(src1, BUF_SIZE, 10.0);
+    randomize_stddev_dbl(src2, BUF_SIZE, 10.0);
 
     if (check_func(fir->dcmul_add, "dcmul_add")) {
         LOCAL_ALIGNED_32(double, cdst, [BUF_SIZE]);
diff --git a/tests/checkasm/checkasm.h b/tests/checkasm/checkasm.h
index 552de20169..e48f53e3e6 100644
--- a/tests/checkasm/checkasm.h
+++ b/tests/checkasm/checkasm.h
@@ -515,4 +515,15 @@ int checkasm_check_float_ulp(const char *file, int line,
                              buf2 ## _16, stride2,            \
                              __VA_ARGS__))
 
+#define randomize_stddev(buf, size, stddev) \
+do {                                        \
+    double bmg[2];                          \
+    for (int i = 0; i < size; i += 2) {     \
+        av_bmg_get(&checkasm_lfg, bmg);     \
+        (buf)[i]     = bmg[0] * (stddev);   \
+        (buf)[i + 1] = bmg[1] * (stddev);   \
+    }                                       \
+} while (0);
+#define randomize_stddev_dbl(...) randomize_stddev(__VA_ARGS__)
+
 #endif /* TESTS_CHECKASM_CHECKASM_H */
diff --git a/tests/checkasm/float_dsp.c b/tests/checkasm/float_dsp.c
index 296db1cff9..c28343e4a8 100644
--- a/tests/checkasm/float_dsp.c
+++ b/tests/checkasm/float_dsp.c
@@ -28,18 +28,6 @@
 
 #define LEN 256
 
-#define randomize_buffer(buf)                 \
-do {                                          \
-    int i;                                    \
-    double bmg[2], stddev = 10.0, mean = 0.0; \
-                                              \
-    for (i = 0; i < LEN; i += 2) {            \
-        av_bmg_get(&checkasm_lfg, bmg);       \
-        buf[i]     = bmg[0] * stddev + mean;  \
-        buf[i + 1] = bmg[1] * stddev + mean;  \
-    }                                         \
-} while(0);
-
 static void test_vector_fmul(const float *src0, const float *src1)
 {
     LOCAL_ALIGNED_32(float, cdst, [LEN]);
@@ -312,15 +300,15 @@ void checkasm_check_float_dsp(void)
         return;
     }
 
-    randomize_buffer(src0);
-    randomize_buffer(src1);
-    randomize_buffer(src2);
-    randomize_buffer(src3);
-    randomize_buffer(src4);
-    randomize_buffer(src5);
-    randomize_buffer(dbl_src0);
-    randomize_buffer(dbl_src1);
-    randomize_buffer(dbl_src2);
+    randomize_stddev(src0, LEN, 10.0);
+    randomize_stddev(src1, LEN, 10.0);
+    randomize_stddev(src2, LEN, 10.0);
+    randomize_stddev(src3, LEN, 10.0);
+    randomize_stddev(src4, LEN, 10.0);
+    randomize_stddev(src5, LEN, 10.0);
+    randomize_stddev_dbl(dbl_src0, LEN, 10.0);
+    randomize_stddev_dbl(dbl_src1, LEN, 10.0);
+    randomize_stddev_dbl(dbl_src2, LEN, 10.0);
 
     if (check_func(fdsp->vector_fmul, "vector_fmul"))
         test_vector_fmul(src0, src1);
diff --git a/tests/checkasm/lls.c b/tests/checkasm/lls.c
index 4251032e02..8b876b1bb9 100644
--- a/tests/checkasm/lls.c
+++ b/tests/checkasm/lls.c
@@ -20,17 +20,6 @@
 #include "libavutil/lls.h"
 #include "checkasm.h"
 
-#define randomize_buffer(buf)                  \
-do {                                           \
-    double bmg[2], stddev = 10.0;              \
-                                               \
-    for (size_t i = 0; i < MAX_VARS_ALIGN; i += 2) { \
-        av_bmg_get(&checkasm_lfg, bmg);        \
-        buf[i]     = bmg[0] * stddev;          \
-        buf[i + 1] = bmg[1] * stddev;          \
-    }                                          \
-} while(0);
-
 static void test_update(LLSModel *lls, const double *var)
 {
     double refcovar[MAX_VARS][MAX_VARS];
@@ -91,8 +80,8 @@ void checkasm_check_lls(void)
         LLSModel lls;
 
         avpriv_init_lls(&lls, counts[i]);
-        randomize_buffer(var);
-        randomize_buffer(param);
+        randomize_stddev_dbl(var, MAX_VARS_ALIGN, 10.0);
+        randomize_stddev_dbl(param, MAX_VARS_ALIGN, 10.0);
 
         if (check_func(lls.update_lls, "update_lls_%d", counts[i]))
             test_update(&lls, var);
diff --git a/tests/checkasm/vorbisdsp.c b/tests/checkasm/vorbisdsp.c
index 5a1cfbdf37..b4d60cc446 100644
--- a/tests/checkasm/vorbisdsp.c
+++ b/tests/checkasm/vorbisdsp.c
@@ -26,17 +26,6 @@
 
 #define LEN 512
 
-#define randomize_buffer(buf)                 \
-do {                                          \
-    double bmg[2], stddev = 10.0, mean = 0.0; \
-                                              \
-    for (int i = 0; i < LEN; i += 2) {        \
-        av_bmg_get(&checkasm_lfg, bmg);       \
-        buf[i]     = bmg[0] * stddev + mean;  \
-        buf[i + 1] = bmg[1] * stddev + mean;  \
-    }                                         \
-} while(0);
-
 static void test_inverse_coupling(void)
 {
     LOCAL_ALIGNED_16(float, src0,  [LEN]);
@@ -49,8 +38,8 @@ static void test_inverse_coupling(void)
     declare_func(void, float *restrict mag, float *restrict ang,
                  ptrdiff_t blocksize);
 
-    randomize_buffer(src0);
-    randomize_buffer(src1);
+    randomize_stddev(src0, LEN, 10.0);
+    randomize_stddev(src1, LEN, 10.0);
 
     memcpy(cdst,  src0, LEN * sizeof(*src0));
     memcpy(cdst1, src1, LEN * sizeof(*src1));

_______________________________________________
ffmpeg-cvslog mailing list -- [email protected]
To unsubscribe send an email to [email protected]

Reply via email to