Quoth Elie Le Vaillant <eolie...@disroot.org>:
> ---
>  libutil/random.c | 23 +++++++++++------------
>  1 file changed, 11 insertions(+), 12 deletions(-)
> 
> diff --git a/libutil/random.c b/libutil/random.c
> index 72385fb..15082e5 100644
> --- a/libutil/random.c
> +++ b/libutil/random.c
> @@ -21,7 +21,7 @@ rng32(void)
>  }
>  
>  void
> -rng32_randomseed()
> +rng32_seed()
>  {
>       return;
>  }
> @@ -41,8 +41,8 @@ rng32(void)
>       uint64_t oldstate = globalstate;
>       uint32_t r, v;
>  
> -     *state *= 6364136223846793005ULL;
> -     *state += globalid; /* we must have it as odd */
> +     globalstate *= 6364136223846793005ULL;
> +     globalstate += 1442695040888963407ULL; /* we must have it as odd */
>  
>       r = oldstate >> (64 - 5);
>       v = (oldstate ^ (oldstate >> 18)) >> (32 - 5);
> @@ -51,12 +51,11 @@ rng32(void)
>  }
>  
>  void
> -rng32_randomseed(void)
> +rng32_seed(void)
>  {
>       struct timespec ts;
>       clock_gettime(CLOCK_REALTIME, &ts);
>       globalstate = (intptr_t)&printf ^ ts.tv_sec ^ ((unsigned 
> long)ts.tv_nsec * 0xAC5533CD);
> -     globalid = 1442695040888963407ULL;
>  }
>  
>  #endif /* standalone, PCG construction */
> @@ -70,15 +69,15 @@ rng32_bounded(uint32_t bound) {
>       uint32_t x = rng32();
>       uint64_t m = (uint64_t)x * (uint64_t)bound;
>       uint32_t l = (uint32_t)m;
> -     if (l < range) {
> -             uint32_t t = -range;
> -             if (t >= range) {
> -                     t -= range;
> -                     if (t >= range) 
> -                             t %= range;
> +     if (l < bound) {
> +             uint32_t t = -bound;
> +             if (t >= bound) {
> +                     t -= bound;
> +                     if (t >= bound)
> +                             t %= bound;
>               }
>               while (l < t) {
> -                     x = rng32(state, id);
> +                     x = rng32();
>                       m = (uint64_t)x * (uint64_t)bound;
>                       l = (uint32_t)m;
>               }
> -- 
> 2.47.1
> 
> 
> 


Reply via email to