From patchwork Fri Oct 4 08:51:53 2024 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: 52026 Delivered-To: ffmpegpatchwork2@gmail.com Received: by 2002:a59:938f:0:b0:48e:c0f8:d0de with SMTP id z15csp263426vqg; Fri, 4 Oct 2024 01:59:06 -0700 (PDT) X-Forwarded-Encrypted: i=2; AJvYcCXPKFmdjMH1cy3JR5sY4mThq19heznUVm4XsWavzy/cNOPmV+8qyQ6GQb7oxTjke7gP0uHvU0IMHtZFb1ITfXg5@gmail.com X-Google-Smtp-Source: AGHT+IGKOgg3n8DKublCaxfC+eUY3M7pQg90s92jkW48Ywvax1JhsKOOeGMtgAbEKKsJFLvKjRw5 X-Received: by 2002:a2e:be2c:0:b0:2f3:a896:1877 with SMTP id 38308e7fff4ca-2faf3b5d35dmr3055551fa.0.1728032346234; Fri, 04 Oct 2024 01:59:06 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1728032346; cv=none; d=google.com; s=arc-20240605; b=MvvBXoQfS9Q9DtHlWq+PPn1c12VCZsGmnBiSOWrEwSemZa3acpMP0DFGeAdRTD7Db/ oS5lJAlDvBA4vpzmWmOIoSL2UpV3K/4AqxDgNGMWXHIyWV5MYI/S2j4Iz27wlAU3AGC7 ClD2ja496ISXR35VdMI3wBxY2eVQKPsAhNi3WC8FLR2nnk1AbnOVPP03dmoJIohFwtb5 fQ4gnouw55gSILEtxu/035oxfvCi/i61+mj/UGBS9g3cnfNwPsZjYnaACE4QFcF8S9qt Ew0VbiNaOzLTBKwTsceAYWOESVZtzLdNyKCy8Q+4t1cBn95u+Rmhryk7hs9BxZqtqv52 5HCg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20240605; h=sender:errors-to:content-transfer-encoding:reply-to:list-subscribe :list-help:list-post:list-archive:list-unsubscribe:list-id :precedence:subject:mime-version:message-id:date:to:from :dkim-signature:delivered-to; bh=S/6NScOcd9OzIQki2WNFw2az6DAxFKEQCDKXj9HFh88=; fh=YOA8vD9MJZuwZ71F/05pj6KdCjf6jQRmzLS+CATXUQk=; b=cF4l9diFpiwnvglY2WWlHB1Eh+Plxx8OTYgBA+4up0kel3czNWguvoBYJFJHJsSMr9 qkSOWHSb0KkOO0dEKxFVA+64iYo6YsSDd5yKmdkxdtViBL9c+YxGWDar5Hmdynda+QKT khc8wETESDstprTLNV2RPrPfHhbjowJrfmhC2nW+Z1VfAPP+zYxSl5km1TXNMriohNe9 ztYun7IJv4TPi6qsppMz3HxYgpFZgJzsKPxlnI1Pjm1Cdq0kFt5j3Z3GiCoZ8SVObeV8 oGw3DQU+FfBVeli8oeCPftRT2KxfqunXrxaCfQhHzMbXjx0Ki2S2lHf9tBbG+t53GUdL omCg==; dara=google.com ARC-Authentication-Results: i=1; mx.google.com; dkim=neutral (body hash did not verify) header.i=@martin-st.20230601.gappssmtp.com header.s=20230601 header.b=Bvt6oAA+; spf=pass (google.com: domain of ffmpeg-devel-bounces@ffmpeg.org designates 79.124.17.100 as permitted sender) smtp.mailfrom=ffmpeg-devel-bounces@ffmpeg.org; dara=fail header.i=@gmail.com Return-Path: Received: from ffbox0-bg.mplayerhq.hu (ffbox0-bg.ffmpeg.org. [79.124.17.100]) by mx.google.com with ESMTP id 38308e7fff4ca-2faecc94aa2si9147871fa.457.2024.10.04.01.59.05; Fri, 04 Oct 2024 01:59:06 -0700 (PDT) Received-SPF: pass (google.com: domain of ffmpeg-devel-bounces@ffmpeg.org designates 79.124.17.100 as permitted sender) client-ip=79.124.17.100; Authentication-Results: mx.google.com; dkim=neutral (body hash did not verify) header.i=@martin-st.20230601.gappssmtp.com header.s=20230601 header.b=Bvt6oAA+; spf=pass (google.com: domain of ffmpeg-devel-bounces@ffmpeg.org designates 79.124.17.100 as permitted sender) smtp.mailfrom=ffmpeg-devel-bounces@ffmpeg.org; dara=fail header.i=@gmail.com Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id 0995668DA00; Fri, 4 Oct 2024 11:52:02 +0300 (EEST) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from mail-lj1-f170.google.com (mail-lj1-f170.google.com [209.85.208.170]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id C86B068D9FF for ; Fri, 4 Oct 2024 11:51:55 +0300 (EEST) Received: by mail-lj1-f170.google.com with SMTP id 38308e7fff4ca-2fac49b17ebso15165691fa.0 for ; Fri, 04 Oct 2024 01:51:55 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=martin-st.20230601.gappssmtp.com; s=20230601; t=1728031915; x=1728636715; darn=ffmpeg.org; h=content-transfer-encoding:mime-version:message-id:date:subject:to :from:from:to:cc:subject:date:message-id:reply-to; bh=rIug6SNbh348CoFn7N/pdJ1Ig9PKFmkbp7CzhXMVgnQ=; b=Bvt6oAA+8hYfCinvPnKz2DMyXFjoP3RRJzbVJpR9vxcaNFAVCDdzO2bf4tMIxbVCxq t3aUXSleHrG5e3eSRYtrk2vBVs8zEgeSUH2dllNTzZTOc/lDI/oGsG0CHj8i/dtYxSiy 9WbPefgmMNPWnQZo0VY8ArM3f9pgizr3DCNazA8fkc5qnOoov7mTcqJUcymChZDVTKUl vSjTJMSGlTAOjZpHrLHYJngD+wY6+8yTV3qHslVQXs5keUiIbmZMZKuM9Q2Nmd0MZzg3 3E2L+3C+WMcLalJE1VB247DYmx7URY6FYfELef9azkNGJdw88AW0PS6bjDwV4SvkKyhi AxeA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1728031915; x=1728636715; h=content-transfer-encoding:mime-version:message-id:date:subject:to :from:x-gm-message-state:from:to:cc:subject:date:message-id:reply-to; bh=rIug6SNbh348CoFn7N/pdJ1Ig9PKFmkbp7CzhXMVgnQ=; b=dLY8jWzi6lDjFjIx/DiFJGeVDvjE/MYlGh5TMnM6VId5zHq30GlVRjH1R2cZ6l7bB2 y0J7UiwFesKMFWvV9tQXXIwroAnGgNqVKCa4IaxxPOTYs5k0TSWTiX5xDqhk8xNQz1al eFhYj7kgqrPpRTnfNZ8D4gchM2qjw5BUktWNSMoL0iL3noJxxaVlLyZgnBJWe7q7fzlM OX1pdJ0nutJ/wVzNTd1z79rmAlj4OYojQ40Vykya6VugLZVyLmqbA+4IMS3t+ZMBYQZH tYeAW26Vi2n/PW3GvlBQogpRygR7kOpTml/LTS6UHgT7QqfZSI90ulL0CcvHEa2/dLEi eH3w== X-Gm-Message-State: AOJu0Yx36evDTSuYeC7r4luBvTuGL3xFi0lWESfK5vHxrfQvq0BVSo0D F+pLnF0mwxdL/WHchQa5I3agPfONypBUqa9a1HZIHbDHXDol21JMfDwgilwRp+ri3F/QuaXkgwL qPA== X-Received: by 2002:a2e:a9a4:0:b0:2fa:c6b3:bf27 with SMTP id 38308e7fff4ca-2faf3c015acmr9551561fa.6.1728031914631; Fri, 04 Oct 2024 01:51:54 -0700 (PDT) Received: from localhost (dsl-tkubng21-58c01c-243.dhcp.inet.fi. [88.192.28.243]) by smtp.gmail.com with ESMTPSA id 38308e7fff4ca-2faecc106d1sm4237891fa.52.2024.10.04.01.51.54 for (version=TLS1 cipher=AES128-SHA bits=128/128); Fri, 04 Oct 2024 01:51:54 -0700 (PDT) From: =?utf-8?q?Martin_Storsj=C3=B6?= To: ffmpeg-devel@ffmpeg.org Date: Fri, 4 Oct 2024 11:51:53 +0300 Message-Id: <20241004085153.89858-1-martin@martin.st> X-Mailer: git-send-email 2.39.5 (Apple Git-154) MIME-Version: 1.0 Subject: [FFmpeg-devel] [PATCH] checkasm: lls: Use relative tolerances rather than absolute ones X-BeenThere: ffmpeg-devel@ffmpeg.org X-Mailman-Version: 2.1.29 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 Errors-To: ffmpeg-devel-bounces@ffmpeg.org Sender: "ffmpeg-devel" X-TUID: ugOnhcNu/kug Depending on the magnitude of the output values, the potential errors can be larger. This fixes errors in the lls tests on x86_32 for some seeds, observed with GCC 11 (on Ubuntu 22.04, with the distro compiler, with -m32). --- tests/checkasm/lls.c | 14 +++++++++----- 1 file changed, 9 insertions(+), 5 deletions(-) diff --git a/tests/checkasm/lls.c b/tests/checkasm/lls.c index 1e0b56974c..4251032e02 100644 --- a/tests/checkasm/lls.c +++ b/tests/checkasm/lls.c @@ -46,28 +46,32 @@ static void test_update(LLSModel *lls, const double *var) call_new(lls, var); for (size_t i = 0; i < lls->indep_count; i++) - for (size_t j = i; j < lls->indep_count; j++) + for (size_t j = i; j < lls->indep_count; j++) { + double eps = FFMAX(2 * DBL_EPSILON * fabs(refcovar[i][j]), + 8 * DBL_EPSILON); if (!double_near_abs_eps(refcovar[i][j], lls->covariance[i][j], - 8 * DBL_EPSILON)) { + eps)) { fprintf(stderr, "%zu, %zu: %- .12f - %- .12f = % .12g\n", i, j, refcovar[i][j], lls->covariance[i][j], refcovar[i][j] - lls->covariance[i][j]); fail(); } + } bench_new(lls, var); } -#define EPS 0.2 static void test_evaluate(LLSModel *lls, const double *param, int order) { - double refprod, newprod; + double refprod, newprod, eps; declare_func_float(double, LLSModel *, const double *, int); refprod = call_ref(lls, param, order); newprod = call_new(lls, param, order); - if (!double_near_abs_eps(refprod, newprod, EPS)) { + eps = FFMAX(2 * DBL_EPSILON * fabs(refprod), 0.2); + + if (!double_near_abs_eps(refprod, newprod, eps)) { fprintf(stderr, "%- .12f - %- .12f = % .12g\n", refprod, newprod, refprod - newprod); fail();