10 #include "../include/tscope5/randomizer.h"
11 #include "../include/tscope5/randomizer_internal.h"
12 #include "../include/tscope5/system_internal.h"
14 #include <gsl/gsl_rng.h>
15 #include <gsl/gsl_randist.h>
36 ts5_check_randomizer(
"ts5_random_integer");
37 ts5_log(TS5_LOGLEVEL_5,
"ts5_random_integer(%u)\n", max);
39 return gsl_rng_uniform_int(_ts5_status.randomizer, (
long)max);
52 ts5_check_randomizer(
"ts5_random_list");
53 ts5_log(TS5_LOGLEVEL_5,
"ts5_random_list(%d,%d,%p)\n", nmax, freq, list);
56 for (i = 0; i < nmax * freq; i++) {
60 gsl_ran_shuffle(_ts5_status.randomizer, list, (
unsigned long)(nmax * freq),
sizeof(
int));
84 ts5_check_randomizer(
"ts5_random_uniform");
85 ts5_log(TS5_LOGLEVEL_5,
"ts5_random_uniform()\n");
87 return gsl_rng_uniform(_ts5_status.randomizer);
101 ts5_check_randomizer(
"ts5_random_normal");
102 ts5_log(TS5_LOGLEVEL_5,
"ts5_random_normal(%f,%f)\n", mu, sigma);
104 return (mu + gsl_ran_gaussian(_ts5_status.randomizer, sigma));
117 ts5_check_randomizer(
"ts5_random_exponential");
118 ts5_log(TS5_LOGLEVEL_5,
"ts5_random_exponential(%f)\n", mu);
120 return gsl_ran_exponential(_ts5_status.randomizer, mu);
144 ts5_check_randomizer(
"ts5_seed_randomizer");
145 ts5_log(TS5_LOGLEVEL_4,
"ts5_seed_randomizer(%u)\n", seed);
147 gsl_rng_set(_ts5_status.randomizer, (
long)seed);