26 #ifndef O2SCL_RNG_GSL_H
27 #define O2SCL_RNG_GSL_H
31 #ifdef O2SCL_NEEDS_TIME_H
35 #include <gsl/gsl_rng.h>
37 #ifndef DOXYGEN_NO_O2NS
58 rng_gsl(
const gsl_rng_type *gtype=gsl_rng_mt19937);
60 rng_gsl(
double ig1,
double ig2) {
62 gr=gsl_rng_alloc(gsl_rng_mt19937);
69 const gsl_rng_type *gtype=gsl_rng_mt19937);
84 return (
gr->type->get_double)(
gr->state);
89 return gsl_rng_max(
gr)-gsl_rng_min(
gr);
93 unsigned long int random_int(
unsigned long int n=0);
104 gsl_rng_set(
gr,seed);
107 #ifndef DOXYGEN_INTERNAL
129 #ifndef DOXYGEN_NO_O2NS
void clock_seed()
Set the seed.
void set_seed(unsigned long int s)
Set the seed.
rng_gsl(const gsl_rng_type *gtype=gsl_rng_mt19937)
Initialize the random number generator with type gtype and the default seed.
double random()
Return a random number in .
unsigned long int seed
The seed.
unsigned long int get_max()
Return the maximum integer for random_int()
gsl_rng * gr
The GSL random number generator.
Random number generator (GSL)
unsigned long int random_int(unsigned long int n=0)
Return random integer in .
const gsl_rng_type * get_type()
Return generator type.
const gsl_rng_type * rng
The GSL random number generator type.
double operator()(int ignored)
Return a random number in .