contains rudimentary statistical functions
Diff: normstat.cpp
- Revision:
- 0:63c55a3cd73c
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/normstat.cpp Mon Feb 25 19:41:26 2013 +0000 @@ -0,0 +1,33 @@ + #include "normstat.h" + + + + + +double normpdf(double x, double m, double s) +{ + + return (1/(s*sqrt(2*pi)))*exp(-pow((x-m),2)/(2*pow(s,2))); + +} + +normrand::normrand(double m, double s){ + mu = m; + sigma = s; +} + +double normrand::draw() +{ + double r1 = (std::rand() + 1.0)/(RAND_MAX + 1.0); // gives equal distribution in (0, 1] + double r2 = (std::rand() + 1.0)/(RAND_MAX + 1.0); + return mu + sigma * std::sqrt(-2*std::log(r1))*std::cos(2*pi*r2); +} + +double normrand::draw(double m, double s) +{ + this->mu=m; + this->sigma=s; + double r1 = (std::rand() + 1.0)/(RAND_MAX + 1.0); // gives equal distribution in (0, 1] + double r2 = (std::rand() + 1.0)/(RAND_MAX + 1.0); + return mu + sigma * std::sqrt(-2*std::log(r1))*std::cos(2*pi*r2); +} \ No newline at end of file