Hi Theo,

Theo de Raadt wrote on Sat, Dec 21, 2019 at 04:29:24PM -0700:
> Ingo Schwarze <schwa...@usta.de> wrote:
>> Alexander Nasonov wrote on Fri, Dec 20, 2019 at 08:33:40PM +0000:
>>> j...@bitminer.ca wrote:

>>>> Clarify that drand48 returns values not including 1.0.

>>> It's not clear from the documentation whether drand48 can generate
>>> a denormal number. If it can't, you can exclude 0.0 because it's
>>> a denormal ;-)

>> Looking at our code in lib/libc/stdlib/drand48.c, i conclude that
>> drand48(3) does return 0.0 with a probability of 2^-48.
>> 
>> More generally, the function returns a uniform distribution of
>> numbers from the set {2^-48 * n | n integer and 0 <= n < 2^48}.
>> 
>> Talking about loading bits into the mantissa and adjusting the
>> exponent feels mildly confusing, given that the distribution is
>> simply uniform over a fixed finite set.  I'm not sending a patch
>> because i never looked at how floating point representation works
>> internally, so i would likely only make matters worse.

> In which mode, the deterministic mode or the actual random mode? :)

You are right, it's thrilling to talk about probability distributions in
deterministic mode!  Here we go, in deterministic mode, the distribution
is as follows:

 * p=1 for the deterministic value requested by the user
 * p=0 for any other value

The integral of this probability measure over the whole sample space,
as expected, is 1.

Yours,
  ;-)


P.S.
Please, everybody refrain from sending a patch adding the above
information to the manual page.  Describing the distribution in
actual random mode seems sufficient to me.

Reply via email to