From 170d24a251c11dadee35f14fd2c2348fa06279b0 Mon Sep 17 00:00:00 2001 From: Alejandro Colomar Date: Sat, 3 Jun 2023 19:25:00 +0200 Subject: [PATCH] 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 --- libmisc/csrand.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/libmisc/csrand.c b/libmisc/csrand.c index 2557fac8..e85eaa8a 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; }