/* ============================================================================ Name : kongruencia.h Author : Stippinger Marcell Version : 1.0 Copyright : BME-TTK FI SzamSzim gyak segedanyag Description : multiplicative congruential RNG in C, Ansi-style ============================================================================ */ /* Type definition */ typedef struct { unsigned int a, m, c, seed; } my_rng; /* Allocate an RNG and initialize parameters */ my_rng* my_rng_alloc(unsigned int a, unsigned int m, unsigned int c); /* Set seed */ void my_rng_set(my_rng* r, unsigned int seed); /* Get a random int */ unsigned int my_rng_get(my_rng* r); /* Get boundaries */ unsigned int my_rng_min(my_rng* r); unsigned int my_rng_max(my_rng* r); /* Get a random double in [0,1) */ double my_rng_uniform(my_rng* r); /* Free allocated space */ void my_rng_free(my_rng* r);