From patchwork Sun Dec 17 09:13:43 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: =?utf-8?q?R=C3=A9mi_Denis-Courmont?= X-Patchwork-Id: 45185 Delivered-To: ffmpegpatchwork2@gmail.com Received: by 2002:a05:6a20:1225:b0:181:818d:5e7f with SMTP id v37csp6718419pzf; Sun, 17 Dec 2023 01:13:53 -0800 (PST) X-Google-Smtp-Source: AGHT+IGOPtmlLNub61ltiUrrKDduH50cKn7HFBhZdFybS304VRYB9sMPIJ2WcDo5mVSj0ju67X3E X-Received: by 2002:aa7:d5d3:0:b0:551:dbe0:8342 with SMTP id d19-20020aa7d5d3000000b00551dbe08342mr8958624eds.3.1702804432959; Sun, 17 Dec 2023 01:13:52 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1702804432; cv=none; d=google.com; s=arc-20160816; b=Sq6LKt9UZbuYVm40GdR4+rl8pc1Z4onepqDzhX1/oJ7qmkGbUpR9PkYRM/tYT4pFcw kNgqjLLQYQMnoDyQ8LjbUYwhzYN3GKCPYnXBcKEo3wpQ0vmENRxUyvCK2XrWvHC0RpqZ NZ4N5Z4+73xBhAEjXXcvsm+PltRQv+VBrva1vz167YiBzXfYNmlgUIvKzX0DVEsWZVbP nZZbWsTqoy+mfFoXKBPv4G0KxN4OXpsmgECkrbfsnLJuGEJwHG9yQDqfrS81H+r3yjhb PWUb+Noq2THKdbiBTNNSudDlurTR8Cg3nMNCCWCLTRa11lMarRSY2cqUVxeObNswtpET CW8A== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; 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 :delivered-to; bh=QEdeCGsvqFaIEmXkyX15WYQPBn4Zh+ntsYRJXptvB+k=; fh=YOA8vD9MJZuwZ71F/05pj6KdCjf6jQRmzLS+CATXUQk=; b=bZnvV281LM+jvUja1ZtbTq5C+sxQGpIDee3BHYprBRV8odCfdZNoeRRDO1xQTnoprh 0uiQy/igJOL+7PncFd2pAAD0FAyXkifv9UjdQp90kVmy5nPlcKqx5vdsS/1kr5zwRMVw la2TpueCbqBNYOgxJrsaxn352JP1v0XtdJwcqz7GTA6WFMWf51cO7gJGsTwTeCrz3Chf Oaak4jkqbqKMVcciOlph1j/bJbY99+t8jUUvHGEydyxFWBFjJPzAzs1BEltWYmAbkbdv eS6oM8PX4qRoNhXfR4ZltCWNactAKiJpEzUCWx3hV7pyXUEaVAd0vqEWiFpqjZbEwXbH yE1w== ARC-Authentication-Results: i=1; mx.google.com; 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 Return-Path: Received: from ffbox0-bg.mplayerhq.hu (ffbox0-bg.ffmpeg.org. [79.124.17.100]) by mx.google.com with ESMTP id y2-20020a50e602000000b0054cd723d668si8711053edm.655.2023.12.17.01.13.52; Sun, 17 Dec 2023 01:13:52 -0800 (PST) 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; 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 Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id ED42668D0FE; Sun, 17 Dec 2023 11:13:49 +0200 (EET) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from ursule.remlab.net (vps-a2bccee9.vps.ovh.net [51.75.19.47]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id C749768CEC3 for ; Sun, 17 Dec 2023 11:13:43 +0200 (EET) Received: from basile.remlab.net (localhost [IPv6:::1]) by ursule.remlab.net (Postfix) with ESMTP id 39DCAC01A0 for ; Sun, 17 Dec 2023 11:13:43 +0200 (EET) From: =?utf-8?q?R=C3=A9mi_Denis-Courmont?= To: ffmpeg-devel@ffmpeg.org Date: Sun, 17 Dec 2023 11:13:43 +0200 Message-ID: <20231217091343.34077-1-remi@remlab.net> X-Mailer: git-send-email 2.43.0 MIME-Version: 1.0 Subject: [FFmpeg-devel] [PATCHv2 1/1] checkasm/lpc: test compute_autocorr 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: gXdl5QEXYx+3 --- tests/checkasm/lpc.c | 47 ++++++++++++++++++++++++++++++++++++++++++-- 1 file changed, 45 insertions(+), 2 deletions(-) diff --git a/tests/checkasm/lpc.c b/tests/checkasm/lpc.c index 592e34c03d..9b33f8a3b0 100644 --- a/tests/checkasm/lpc.c +++ b/tests/checkasm/lpc.c @@ -57,10 +57,46 @@ static void test_window(int len) bench_new(src, len, dst1); } +static void test_compute_autocorr(ptrdiff_t len, int lag) +{ + LOCAL_ALIGNED(32, double, src, [5000 + 2 + MAX_LPC_ORDER]); + LOCAL_ALIGNED(16, double, dst0, [MAX_LPC_ORDER + 1]); + LOCAL_ALIGNED(16, double, dst1, [MAX_LPC_ORDER + 1]); + + declare_func(void, const double *in, ptrdiff_t len, int lag, double *out); + + av_assert0(lag >= 0 && lag <= MAX_LPC_ORDER); + + for (int i = 0; i < MAX_LPC_ORDER; i++) + src[i] = 0.; + + src += MAX_LPC_ORDER; + + for (ptrdiff_t i = 0; i < len; i++) { + src[i] = (double)rnd() / (double)UINT_MAX; + } + + call_ref(src, len, lag, dst0); + call_new(src, len, lag, dst1); + + for (size_t i = 0; i < lag; i++) { + if (!double_near_abs_eps(dst0[i], dst1[i], EPS)) { + fprintf(stderr, "%zu: %- .12f - %- .12f = % .12g\n", + i, dst0[i], dst1[i], dst0[i] - dst1[i]); + fail(); + break; + } + } + + bench_new(src, len, lag, dst1); +} + void checkasm_check_lpc(void) { LPCContext ctx; - int len = rnd() % 5000; + int len = 2000 + (rnd() % 3000); + static const int lags[] = { 10, 30, 32 }; + ff_lpc_init(&ctx, 32, 16, FF_LPC_TYPE_DEFAULT); if (check_func(ctx.lpc_apply_welch_window, "apply_welch_window_even")) { @@ -72,6 +108,13 @@ void checkasm_check_lpc(void) test_window(len | 1); } report("apply_welch_window_odd"); - ff_lpc_end(&ctx); + + for (size_t i = 0; i < FF_ARRAY_ELEMS(lags); i++) { + ff_lpc_init(&ctx, len, lags[i], FF_LPC_TYPE_DEFAULT); + if (check_func(ctx.lpc_compute_autocorr, "autocorr_%d", lags[i])) + test_compute_autocorr(len, lags[i]); + report("compute_autocorr_%d", lags[i]); + ff_lpc_end(&ctx); + } }