From: Alejandro Colomar Date: Sat, 3 Jun 2023 17:25:00 +0000 (+0200) Subject: libmisc/csrand.c: Update comments X-Git-Tag: 4.14.0-rc1~52 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=170d24a251c11dadee35f14fd2c2348fa06279b0;p=thirdparty%2Fshadow.git libmisc/csrand.c: Update comments Those comments were written when this function used 64 bits (and temporary variables of 128 bits). Now it uses 32 bits, with temporaries of 64 bits, so some values have changed. Fixes: 2a61122b5e8f ("Unoptimize the higher part of the domain of csrand_uniform()") Signed-off-by: Alejandro Colomar --- diff --git a/libmisc/csrand.c b/libmisc/csrand.c index 2557fac8b..e85eaa8a4 100644 --- a/libmisc/csrand.c +++ b/libmisc/csrand.c @@ -110,15 +110,15 @@ csrand_uniform32(uint32_t n) if (n == 0) return csrand(); - bound = -n % n; // analogous to `2^64 % n`, since `x % y == (x-y) % y` + bound = -n % n; // analogous to `2^32 % n`, since `x % y == (x-y) % y` do { r = csrand(); mult = r * n; - rem = mult; // analogous to `mult % 2^64` - } while (rem < bound); // p = (2^64 % n) / 2^64; W.C.: n=2^63+1, p=0.5 + rem = mult; // analogous to `mult % 2^32` + } while (rem < bound); // p = (2^32 % n) / 2^32; W.C.: n=2^31+1, p=0.5 - r = mult >> WIDTHOF(n); // analogous to `mult / 2^64` + r = mult >> WIDTHOF(n); // analogous to `mult / 2^32` return r; }