contains rudimentary statistical functions
normstat.cpp@0:63c55a3cd73c, 2013-02-25 (annotated)
- Committer:
- bclaus
- Date:
- Mon Feb 25 19:41:26 2013 +0000
- Revision:
- 0:63c55a3cd73c
initial commit of stats library;
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
bclaus | 0:63c55a3cd73c | 1 | #include "normstat.h" |
bclaus | 0:63c55a3cd73c | 2 | |
bclaus | 0:63c55a3cd73c | 3 | |
bclaus | 0:63c55a3cd73c | 4 | |
bclaus | 0:63c55a3cd73c | 5 | |
bclaus | 0:63c55a3cd73c | 6 | |
bclaus | 0:63c55a3cd73c | 7 | double normpdf(double x, double m, double s) |
bclaus | 0:63c55a3cd73c | 8 | { |
bclaus | 0:63c55a3cd73c | 9 | |
bclaus | 0:63c55a3cd73c | 10 | return (1/(s*sqrt(2*pi)))*exp(-pow((x-m),2)/(2*pow(s,2))); |
bclaus | 0:63c55a3cd73c | 11 | |
bclaus | 0:63c55a3cd73c | 12 | } |
bclaus | 0:63c55a3cd73c | 13 | |
bclaus | 0:63c55a3cd73c | 14 | normrand::normrand(double m, double s){ |
bclaus | 0:63c55a3cd73c | 15 | mu = m; |
bclaus | 0:63c55a3cd73c | 16 | sigma = s; |
bclaus | 0:63c55a3cd73c | 17 | } |
bclaus | 0:63c55a3cd73c | 18 | |
bclaus | 0:63c55a3cd73c | 19 | double normrand::draw() |
bclaus | 0:63c55a3cd73c | 20 | { |
bclaus | 0:63c55a3cd73c | 21 | double r1 = (std::rand() + 1.0)/(RAND_MAX + 1.0); // gives equal distribution in (0, 1] |
bclaus | 0:63c55a3cd73c | 22 | double r2 = (std::rand() + 1.0)/(RAND_MAX + 1.0); |
bclaus | 0:63c55a3cd73c | 23 | return mu + sigma * std::sqrt(-2*std::log(r1))*std::cos(2*pi*r2); |
bclaus | 0:63c55a3cd73c | 24 | } |
bclaus | 0:63c55a3cd73c | 25 | |
bclaus | 0:63c55a3cd73c | 26 | double normrand::draw(double m, double s) |
bclaus | 0:63c55a3cd73c | 27 | { |
bclaus | 0:63c55a3cd73c | 28 | this->mu=m; |
bclaus | 0:63c55a3cd73c | 29 | this->sigma=s; |
bclaus | 0:63c55a3cd73c | 30 | double r1 = (std::rand() + 1.0)/(RAND_MAX + 1.0); // gives equal distribution in (0, 1] |
bclaus | 0:63c55a3cd73c | 31 | double r2 = (std::rand() + 1.0)/(RAND_MAX + 1.0); |
bclaus | 0:63c55a3cd73c | 32 | return mu + sigma * std::sqrt(-2*std::log(r1))*std::cos(2*pi*r2); |
bclaus | 0:63c55a3cd73c | 33 | } |