mirror of https://git.ffmpeg.org/ffmpeg.git
checkasm: float_dsp: Scale FLT/DBL_EPSILON sufficiently when comparing
As the values generated by av_bmg_get can be arbitrarily large
(only the stddev is specified), we can't use a fixed tolerance.
This matches what was done for test_vector_dmul_scalar in
38f966b222
.
This fixes the float_dsp checkasm test for some seeds, when built
with clang for mingw/x86_32.
Signed-off-by: Martin Storsjö <martin@martin.st>
This commit is contained in:
parent
6569e9505c
commit
8f70e261fa
|
@ -51,7 +51,8 @@ static void test_vector_fmul(const float *src0, const float *src1)
|
||||||
call_ref(cdst, src0, src1, LEN);
|
call_ref(cdst, src0, src1, LEN);
|
||||||
call_new(odst, src0, src1, LEN);
|
call_new(odst, src0, src1, LEN);
|
||||||
for (i = 0; i < LEN; i++) {
|
for (i = 0; i < LEN; i++) {
|
||||||
if (!float_near_abs_eps(cdst[i], odst[i], FLT_EPSILON)) {
|
double t = fabs(src0[i]) + fabs(src1[i]) + fabs(src0[i] * src1[i]) + 1.0;
|
||||||
|
if (!float_near_abs_eps(cdst[i], odst[i], t * 2 * FLT_EPSILON)) {
|
||||||
fprintf(stderr, "%d: %- .12f - %- .12f = % .12g\n",
|
fprintf(stderr, "%d: %- .12f - %- .12f = % .12g\n",
|
||||||
i, cdst[i], odst[i], cdst[i] - odst[i]);
|
i, cdst[i], odst[i], cdst[i] - odst[i]);
|
||||||
fail();
|
fail();
|
||||||
|
@ -73,7 +74,8 @@ static void test_vector_dmul(const double *src0, const double *src1)
|
||||||
call_ref(cdst, src0, src1, LEN);
|
call_ref(cdst, src0, src1, LEN);
|
||||||
call_new(odst, src0, src1, LEN);
|
call_new(odst, src0, src1, LEN);
|
||||||
for (i = 0; i < LEN; i++) {
|
for (i = 0; i < LEN; i++) {
|
||||||
if (!double_near_abs_eps(cdst[i], odst[i], DBL_EPSILON)) {
|
double t = fabs(src0[i]) + fabs(src1[i]) + fabs(src0[i] * src1[i]) + 1.0;
|
||||||
|
if (!double_near_abs_eps(cdst[i], odst[i], t * 2 * DBL_EPSILON)) {
|
||||||
fprintf(stderr, "%d: %- .12f - %- .12f = % .12g\n",
|
fprintf(stderr, "%d: %- .12f - %- .12f = % .12g\n",
|
||||||
i, cdst[i], odst[i], cdst[i] - odst[i]);
|
i, cdst[i], odst[i], cdst[i] - odst[i]);
|
||||||
fail();
|
fail();
|
||||||
|
@ -117,7 +119,8 @@ static void test_vector_fmul_scalar(const float *src0, const float *src1)
|
||||||
call_ref(cdst, src0, src1[0], LEN);
|
call_ref(cdst, src0, src1[0], LEN);
|
||||||
call_new(odst, src0, src1[0], LEN);
|
call_new(odst, src0, src1[0], LEN);
|
||||||
for (i = 0; i < LEN; i++) {
|
for (i = 0; i < LEN; i++) {
|
||||||
if (!float_near_abs_eps(cdst[i], odst[i], FLT_EPSILON)) {
|
double t = fabs(src0[i]) + fabs(src1[0]) + fabs(src0[i] * src1[0]) + 1.0;
|
||||||
|
if (!float_near_abs_eps(cdst[i], odst[i], t * 2 * FLT_EPSILON)) {
|
||||||
fprintf(stderr, "%d: %- .12f - %- .12f = % .12g\n",
|
fprintf(stderr, "%d: %- .12f - %- .12f = % .12g\n",
|
||||||
i, cdst[i], odst[i], cdst[i] - odst[i]);
|
i, cdst[i], odst[i], cdst[i] - odst[i]);
|
||||||
fail();
|
fail();
|
||||||
|
|
Loading…
Reference in New Issue