blob: 75722ac739a0c3ee4cd2fea8c08852ed7a8d74e5 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
|
#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;
}
long double rand_dist_pow(const gsl_rng *r, double beta) {
long double x = 0;
// underflow means that for very small beta x is sometimes identically zero,
// which causes problems
while (x == 0.0) {
long double y = logl(gsl_rng_uniform_pos(r)) / beta;
x = expl(y);
}
return x;
}
|