From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from ffbox0-bg.mplayerhq.hu (ffbox0-bg.ffmpeg.org [79.124.17.100]) by master.gitmailbox.com (Postfix) with ESMTP id E0F3648B3A for ; Wed, 3 Jan 2024 16:14:43 +0000 (UTC) Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id 923A768CB75; Wed, 3 Jan 2024 18:14:40 +0200 (EET) Received: from mail-wm1-f47.google.com (mail-wm1-f47.google.com [209.85.128.47]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 1A6C268C935 for ; Wed, 3 Jan 2024 18:14:34 +0200 (EET) Received: by mail-wm1-f47.google.com with SMTP id 5b1f17b1804b1-40d4a222818so3845295e9.0 for ; Wed, 03 Jan 2024 08:14:34 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1704298473; x=1704903273; darn=ffmpeg.org; h=user-agent:in-reply-to:content-disposition:mime-version:references :mail-followup-to:message-id:subject:to:from:date:from:to:cc:subject :date:message-id:reply-to; bh=ACOgue6x5IVlSmL32XoKi453lvpep9vNw2RyvVkDlgI=; b=KDwVJ/MUQ6RQbKkfRsZ+BXOlM3LWNTZqHF2K1GmNvXk8zlpZvlNjuNVHBbSwjutJbd RyKPLobV4l9NIq+OHurWu5ZMjBgXMMIO3BgN7TtjigejBapTKnsNKxHcj/h+OfxrnxR5 P4u/lUMNKsn8+hDM7S6yTEmygbc45GWqPXKf8KiJPW6dct7n0OcrqUuv3ht3uZ8jm25V E1zQ5ayZxvYyjlvdkqixEqA3pbNbVo4qlzRTJQiphI4ISOzozAYmsoSkn/a+7fu8L2lK kKFdEp1+Rq6HEJm6aglGEDyGl8cr15aNw7T3g8ubrru5FnUHfFlmSWV5kSDo5z7ylDEX mDUA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1704298473; x=1704903273; h=user-agent:in-reply-to:content-disposition:mime-version:references :mail-followup-to:message-id:subject:to:from:date:x-gm-message-state :from:to:cc:subject:date:message-id:reply-to; bh=ACOgue6x5IVlSmL32XoKi453lvpep9vNw2RyvVkDlgI=; b=DuCUEsrlRYhfZvrXTCiY3pRQSBO46vmmJ7SR6rTUvUucXUFau5ziV3weees0G00N8I 6S4BVQ05SfwSWpLO5BLRuZCXk7/Av9ozx5OSCUqoc0VjHTPSn3NvGpe767KksR0fPvbk 5S/MCCbdfVo7RsT7RZ/8qtDPStYSbr/5xhrwHfDgErv9fDuq9DFha0Wbog0wgjcgSR1t 49ztpFqDpnpH+88yC0Wmh5zkqBoIIa3BrLPvL0fIwSUw6kgZR2+8gBVoDNjpPMnrp84A zD3RFg6BYYFkg6Xe9d2eRRz0fXg8VfPfR+lrIJu2ztUAgYWGBtGqp6z6WESjAt4xOo3H oTGw== X-Gm-Message-State: AOJu0Yw1Fayp0WCRmnLeLCuYUgqfJxPqkXkt99dcIRaD+mLIFU2IgzOE qT42rbQzdfx5fRN/Ny7UBlA4puWHd2k= X-Google-Smtp-Source: AGHT+IEuMS+pOvJKy82OWeUv0cxuAvTioLtVTJSDPZhrBc//DnpvL5lbTulWBvWmNYiqLoBcL/2Xcg== X-Received: by 2002:a05:600c:a06:b0:40d:88bf:da7c with SMTP id z6-20020a05600c0a0600b0040d88bfda7cmr730750wmp.159.1704298472905; Wed, 03 Jan 2024 08:14:32 -0800 (PST) Received: from mariano (dynamic-adsl-84-220-189-10.clienti.tiscali.it. [84.220.189.10]) by smtp.gmail.com with ESMTPSA id d2-20020a05600c34c200b0040d61b1cecasm2760627wmq.33.2024.01.03.08.14.32 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 03 Jan 2024 08:14:32 -0800 (PST) Received: by mariano (Postfix, from userid 1000) id 52FBCBFCDC; Wed, 3 Jan 2024 17:14:31 +0100 (CET) Date: Wed, 3 Jan 2024 17:14:31 +0100 From: Stefano Sabatini To: FFmpeg development discussions and patches Message-ID: Mail-Followup-To: FFmpeg development discussions and patches References: <20240101193859.1038078-2-stefasab@gmail.com> MIME-Version: 1.0 Content-Disposition: inline In-Reply-To: User-Agent: Mutt/2.1.4 (2021-12-11) Subject: Re: [FFmpeg-devel] [PATCH 2/2] doc/utils/eval: clarify meaning of random* seed value 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 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Errors-To: ffmpeg-devel-bounces@ffmpeg.org Sender: "ffmpeg-devel" Archived-At: List-Archive: List-Post: On date Wednesday 2024-01-03 12:20:12 +0100, Michael Koch wrote: > > Possible address trac issue: > > > http://trac.ffmpeg.org/ticket/10763 > > I don't like the random generator as it is, because the first two random numbers > are very close to zero, as can be shown with this command line: > ffmpeg -loglevel repeat -f lavfi -i nullsrc=size=1x1,format=gray -vf "geq=lum='print(random(0));print(random(0));print(random(0));print(random(0))'" > -frames 1 -y out.png 0.000000 0.000091 0.285346 0.929202 This behaviour can > be improved by inizializing the generator with a large number as seed value. OTOH this seems only to happen with 0, which is also the default seed value used by the random generator (since all variables are set to 0). $ echo "st(0, UINT64_MAX/3); st(1, 10); while(gt(ld(1), 0), print(random(0)); st(1, ld(1)-1))" | tools/ffeval 0.666667 0.333374 0.616496 0.023515 0.931519 0.317050 0.393449 0.969531 0.842403 0.129183 => 0.000000 $ echo "st(0, UINT64_MAX/2); st(1, 10); while(gt(ld(1), 0), print(random(0)); st(1, ld(1)-1))" | tools/ffeval 0.500000 0.500091 0.785217 0.673490 0.103073 0.829142 0.144794 0.508226 0.735092 0.655693 => 0.000000 $ echo "st(0, UINT64_MAX/7); st(1, 10); while(gt(ld(1), 0), print(random(0)); st(1, ld(1)-1))" | tools/ffeval 0.285714 0.571498 0.855853 0.398648 0.009648 0.802972 0.608529 0.007854 0.405221 0.959683 => 0.000000 $ echo "st(0, UINT64_MAX/13); st(1, 10); while(gt(ld(1), 0), print(random(0)); st(1, ld(1)-1))" | tools/ffeval 0.384615 0.923180 0.593572 0.754748 0.415309 0.067556 0.905708 0.928599 0.448587 0.772728 => 0.000000 $ echo "st(0, UINT64_MAX/6); st(1, 10); while(gt(ld(1), 0), print(random(0)); st(1, ld(1)-1))" | tools/ffeval 0.833333 0.166733 0.451010 0.605203 0.240940 0.007228 0.778975 0.354595 0.413333 0.898240 => 0.000000 $ echo "st(0, 0); st(1, 10); while(gt(ld(1), 0), print(random(0)); st(1, ld(1)-1))" | tools/ffeval 0.000000 0.000091 0.285346 0.929202 0.239519 0.140744 0.686872 0.275489 0.537404 0.583466 => 0.000000 (BTW it could be handy to have an inc and dec function as well to simplify this kind of loops.) > I'm not sure if it's a good idea to share the same variables for ld() and > st() (as double) and random() (as unsigned int). All functions work with double precision floating point numbers, but they can be used also to represent integers, but with a few limitations (e.g. you cannot represent many integers with a float exactly). > Wouldn't it be better to use separate variables for random()? > Michael One idea would be to use a random_seed(idx) function, but this would mean that we need to use separate registers only for the random function, and this would also break backward compatibility. _______________________________________________ ffmpeg-devel mailing list ffmpeg-devel@ffmpeg.org https://ffmpeg.org/mailman/listinfo/ffmpeg-devel To unsubscribe, visit link above, or email ffmpeg-devel-request@ffmpeg.org with subject "unsubscribe".