contains rudimentary statistical functions

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?

UserRevisionLine numberNew 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 }