#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; }