C++: Normal CDF

Bjarne-stroustrup
 

const double Pi = 3.14159265359;

// Standard Normal cumulative distribution function
double Normal_CDF(const double & x) 
{  double k = 1.0/(1.0 + 0.2316419 * x);
   double k_sum = k * (0.319381530 + k * (-0.356563782 + k * (1.781477937 + k * (-1.821255978 + 1.330274429 * k))));

   if (x >= 0.0) 
   {  return (1.0 - (1.0/(pow(2*Pi,0.5)))*exp(-0.5*x*x) * k_sum); } 
   else 
   {  return 1.0 - Normal_CDF(-x); } 
}

Subscribe to TFE Times

Enter your email address to become a member of TFE Times today!