From patchwork Wed Dec 11 09:21:27 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: =?utf-8?q?Martin_Storsj=C3=B6?= X-Patchwork-Id: 16732 Return-Path: X-Original-To: patchwork@ffaux-bg.ffmpeg.org Delivered-To: patchwork@ffaux-bg.ffmpeg.org Received: from ffbox0-bg.mplayerhq.hu (ffbox0-bg.ffmpeg.org [79.124.17.100]) by ffaux.localdomain (Postfix) with ESMTP id 86794449AFE for ; Wed, 11 Dec 2019 11:21:36 +0200 (EET) Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id 6B78C68AEB7; Wed, 11 Dec 2019 11:21:36 +0200 (EET) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from mail-lf1-f65.google.com (mail-lf1-f65.google.com [209.85.167.65]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 7F7BF68ADC1 for ; Wed, 11 Dec 2019 11:21:29 +0200 (EET) Received: by mail-lf1-f65.google.com with SMTP id v201so16061517lfa.11 for ; Wed, 11 Dec 2019 01:21:29 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=martin-st.20150623.gappssmtp.com; s=20150623; h=from:to:subject:date:message-id; bh=/sNcxl7Z4ogwBKwIC3Zu0btpSORXuA+HxpqgQtaWCDg=; b=tZRIKsI760eszAjNONGCmuZsCZSNn7rJ5I/7Ok7dez/eGKttNp7WENY3uNA30RPZiF Gubgzfgy1TVdMPy/ZGmlnByaaEvhLP1aVvknQWz1L399YZl2PwOE4/3dVjo8dttjFfwu uMyuYhQwDV/6L3g+2QpLm08Qwir6bfr9Czvs/C/FFD+/zEijFWnWkpzzI9jddMsr23zj FjfuA+It35Yn4anTv7ScmZ8h8ZnD24f4KGBcEnZz9pyOzWoJnF5nLHLcnP2/h7rrQGkn ggR2q5DnDCW2IniuoCnN6GvrITeBohmyTkZKuDY7je00/QAIcr7kHe9LKxdkBfYgW5Hv JEpw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:subject:date:message-id; bh=/sNcxl7Z4ogwBKwIC3Zu0btpSORXuA+HxpqgQtaWCDg=; b=gkVc6lMPM4ubdqJfd3vN5vkLqW6+1jMoUIOOgUVfSc7of5uc0bj0lsb901merKmOr9 X9yHUhmnEg4kV07JwAg2YF8MatJJUwSI5EAAW+ro94+zAWdfsQYEBdKvks66IKnHBeGE 7Xt/P4idigySnRHcGL/CulyTY7PzUuAvTp95OpECm8dht1HjcHvi0scb4Zs1ihA/T3kO xG1ryUq29bpE/CDPdZmywBQ+5klMeTolbZxaSavWfQHWvPCMl5rnZcBKNXJHYy3A5o6f wEaZRFakv4JqQllZGbUVgYYetHDe1zTN2Q42heMfIihXbLuRuYh6lPMoHHImwYol98OP 6ICg== X-Gm-Message-State: APjAAAXxg7HKoTd0cokbYdo/VqOZ1HS2lbGb++UERLZuEuVp2V/i0TEP kNYXM/rCecsF1o2exSNafPV/yletnXI= X-Google-Smtp-Source: APXvYqxVx0VekFmM7BNkSSaN6oRU8+ESwGENFf1MolT+5pIyTV8MledCFXZNTlOEeAotsbm6tVwMcA== X-Received: by 2002:a05:6512:15d:: with SMTP id m29mr1534750lfo.51.1576056088752; Wed, 11 Dec 2019 01:21:28 -0800 (PST) Received: from localhost.localdomain (dsl-tkubng21-58c01c-243.dhcp.inet.fi. [88.192.28.243]) by smtp.gmail.com with ESMTPSA id h19sm753654ljk.44.2019.12.11.01.21.28 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 11 Dec 2019 01:21:28 -0800 (PST) From: =?UTF-8?q?Martin=20Storsj=C3=B6?= To: ffmpeg-devel@ffmpeg.org Date: Wed, 11 Dec 2019 11:21:27 +0200 Message-Id: <20191211092127.31652-1-martin@martin.st> X-Mailer: git-send-email 2.17.1 Subject: [FFmpeg-devel] [PATCH] checkasm: af_afir: Use a dynamic tolerance depending on values X-BeenThere: ffmpeg-devel@ffmpeg.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: FFmpeg development discussions and patches List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Reply-To: FFmpeg development discussions and patches MIME-Version: 1.0 Errors-To: ffmpeg-devel-bounces@ffmpeg.org Sender: "ffmpeg-devel" As the values generated by av_bmg_get can be arbitrarily large (only the stddev is specified), we can't use a fixed tolerance. Calculate a dynamic tolerance (like in float_dsp from 38f966b2222db), based on the individual steps of the calculation. This fixes running this test with certain seeds, when built with clang for mingw/x86_32. --- tests/checkasm/af_afir.c | 14 +++++++++++++- 1 file changed, 13 insertions(+), 1 deletion(-) diff --git a/tests/checkasm/af_afir.c b/tests/checkasm/af_afir.c index e3fb76e8e0..e791f88b97 100644 --- a/tests/checkasm/af_afir.c +++ b/tests/checkasm/af_afir.c @@ -53,7 +53,19 @@ static void test_fcmul_add(const float *src0, const float *src1, const float *sr call_ref(cdst, src1, src2, LEN); call_new(odst, src1, src2, LEN); for (i = 0; i <= LEN*2; i++) { - if (!float_near_abs_eps(cdst[i], odst[i], 6.2e-05)) { + int idx = i & ~1; + float cre = src2[idx]; + float cim = src2[idx + 1]; + float tre = src1[idx]; + float tim = src1[idx + 1]; + double t = fabs(src0[i]) + + fabs(tre) + fabs(tim) + fabs(cre) + fabs(tim) + + fabs(tre * cre) + fabs(tim * cim) + + fabs(tre * cim) + fabs(tim * cre) + + fabs(tre * cre - tim * cim) + + fabs(tre * cim + tim * cre) + + fabs(cdst[i]) + 1.0; + if (!float_near_abs_eps(cdst[i], odst[i], t * 2 * FLT_EPSILON)) { fprintf(stderr, "%d: %- .12f - %- .12f = % .12g\n", i, cdst[i], odst[i], cdst[i] - odst[i]); fail();