#include "fracture.h" 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; }