#ifndef DEADBEEF_RAND_H #define DEADBEEF_RAND_H #include #define DEADBEEF_MAX UINT32_MAX /* Dead Beef Random Number Generator From: http://inglorion.net/software/deadbeef_rand */ /* Generates a random number between 0 and DEADBEEF_MAX. */ uint32_t deadbeef_rand(void); /* Seeds with the given integer. */ void deadbeef_srand(uint32_t x); /* Generates seed from the current time. */ uint32_t deadbeef_generate_seed(void); /* Seeds with the above function. */ #define deadbeef_srand_time() deadbeef_srand(deadbeef_generate_seed()) /* Returns random double in the range [a, b).*/ #define DEADBEEF_UNIFORM(a, b) \ ((a) + (deadbeef_rand() / (((double)DEADBEEF_MAX / (b - a) + 1)))) /* Returns random integer in the range [a, b).*/ #define DEADBEEF_RANDRANGE(a, b) (uint32_t)DEADBEEF_UNIFORM(a, b) #endif /* DEADBEEF_RAND_H */