30 #define randomize_buffer(buf) \ 33 double bmg[2], stddev = 10.0, mean = 0.0; \ 35 for (i = 0; i < LEN*2+8; i += 2) { \ 36 av_bmg_get(&checkasm_lfg, bmg); \ 37 buf[i] = bmg[0] * stddev + mean; \ 38 buf[i + 1] = bmg[1] * stddev + mean; \ 48 declare_func(
void,
float *sum,
const float *t,
const float *
c,
51 memcpy(cdst, src0, (
LEN*2+8) *
sizeof(
float));
52 memcpy(odst, src0, (
LEN*2+8) *
sizeof(
float));
55 for (i = 0; i <=
LEN*2; i++) {
57 float cre = src2[idx];
58 float cim = src2[idx + 1];
59 float tre = src1[idx];
60 float tim = src1[idx + 1];
61 double t = fabs(src0[i]) +
62 fabs(tre) + fabs(tim) + fabs(cre) + fabs(cim) +
63 fabs(tre * cre) + fabs(tim * cim) +
64 fabs(tre * cim) + fabs(tim * cre) +
65 fabs(tre * cre - tim * cim) +
66 fabs(tre * cim + tim * cre) +
69 fprintf(stderr,
"%d: %- .12f - %- .12f = % .12g\n",
70 i, cdst[i], odst[i], cdst[i] - odst[i]);
75 memcpy(odst, src0, (
LEN*2+8) *
sizeof(
float));
void checkasm_check_afir(void)
static void test_fcmul_add(const float *src0, const float *src1, const float *src2)
int float_near_abs_eps(float a, float b, float eps)
#define i(width, name, range_min, range_max)
#define declare_func(ret,...)
common internal API header
void(* fcmul_add)(float *sum, const float *t, const float *c, ptrdiff_t len)
void ff_afir_init(AudioFIRDSPContext *dsp)
#define randomize_buffer(buf)
#define check_func(func,...)
#define LOCAL_ALIGNED_32(t, v,...)