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);
}