/* Generate random deviates from exponential distribution */
/* with parameter lambda (inverse transform method) */
/* precision: 1/1000000 */
/* f(x) = lambda * exp(-lambda * x) */
#include <math.h>
double exponential_dist(double lambda)
{
int val;
double a,b;
val = random() % 1000000;
a = ((double) val) / (double) 1000000.0;
b = -log(a) / lambda;
return(b);
}