Blame view

build2/epsilon-master/ion/src/shared/random.cpp 488 Bytes
6663b6c9   adorian   projet complet av...
1
2
3
4
5
6
7
8
9
10
11
  #include <ion.h>
  #include <stdlib.h>
  
  uint32_t Ion::random() {
    /* rand() returns a pseudo-random integral number in the range between 0 and
     * RAND_MAX. We assert that RAND_MAX is at least 8 bit, this way we can merge
     * four rand() calls to create a single 32 bit value. Merging is done using
     * XOR, whose output is as likely to be a 1 as a 0. */
    static_assert(RAND_MAX >= (1<<8), "RAND_MAX is too small");
    return (rand() << 24) ^ (rand() << 16) ^ (rand() << 8) ^ rand();
  }