contains rudimentary statistical functions
normstat.cpp
- Committer:
- bclaus
- Date:
- 2013-02-25
- Revision:
- 0:63c55a3cd73c
File content as of revision 0:63c55a3cd73c:
#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); }