diff options
author | pants <jaron@kent-dobias.com> | 2016-09-09 14:33:56 -0400 |
---|---|---|
committer | pants <jaron@kent-dobias.com> | 2016-09-09 14:33:56 -0400 |
commit | 03de79b8c5ebcc206e3450dfbc701211d9c254b0 (patch) | |
tree | ea1882e66605bbfcf257692c53f45bf1c4d0d2db /src/rand.c | |
parent | bf525955316995a56b9fd1e66b9345cdf4ba3561 (diff) | |
download | fuse_networks-03de79b8c5ebcc206e3450dfbc701211d9c254b0.tar.gz fuse_networks-03de79b8c5ebcc206e3450dfbc701211d9c254b0.tar.bz2 fuse_networks-03de79b8c5ebcc206e3450dfbc701211d9c254b0.zip |
more refactoring
Diffstat (limited to 'src/rand.c')
-rw-r--r-- | src/rand.c | 20 |
1 files changed, 20 insertions, 0 deletions
diff --git a/src/rand.c b/src/rand.c new file mode 100644 index 0000000..1a6a3d4 --- /dev/null +++ b/src/rand.c @@ -0,0 +1,20 @@ + +#include "fracture.h" + +unsigned long int rand_seed() { + FILE *f = fopen("/dev/urandom", "r"); + unsigned long int seed; + fread(&seed, sizeof(unsigned long int), 1, f); + fclose(f); + return seed; +} + +double rand_dist_pow(const gsl_rng *r, double beta) { + double x = 0; + + // underflow means that for very small beta x is sometimes identically zero, + // which causes problems + while ((x = exp(log(gsl_rng_uniform_pos(r)) / beta)) == 0.0); + + return x; +} |