// Obsolete; use C++11 instead // Boost random numbers // uniform and gaussian distributions #include #include #include #include //typedef boost::mt19937 rng; typedef boost::lagged_fibonacci607 rng; rng gener; void initrng(void) { // initialize generator static bool first=true; if(first) { std::cout<<" initrng: initializing generator\n"; gener.seed(static_cast (std::time(0))); first = false; } } double unirand(void){ // U[0,1) static bool first=true; if(first) { initrng(); first =false; } typedef boost::uniform_real<> dist_type; dist_type dist(0,1); boost::variate_generator random(gener, dist); return random(); } double gaussrand(){ // Gaussian (Normal) distribution static bool first=true; if(first) { initrng(); first =false; } typedef boost::normal_distribution<> dist_type; dist_type dist(0.0,1.0); boost::variate_generator random(gener, dist); return random(); }