#include #include #include #include "filter.h" #ifdef WIN double drand48() { return (double)rand()/(double)RAND_MAX; } void srand48(long seed) { srand(seed); } #endif /* uniform distribution random number */ /* between a and b */ extern double uniformrand(double a, double b) { return (b-a)*drand48() + a; } /* normal distribution randam number N(0,1) */ /* average \mu = 0 and variance \rho^2 = 1 */ extern double nrand(void) { double sum, f; int k; sum = 0.00; for (k=0; k<12; k++) { f = drand48(); /* uniform random [0,1) */ sum += f; } sum -= 6; return sum; } /* normal distribution randam number N(mu,rho^2) */ /* with average mu and variance rho^2 */ extern double normalrand(double mu, double var) { return var * nrand() + mu; } /* exponential distribution random number */ extern double exponetialrand(double lambda) { return (- log(- drand48())/lambda); }