AYAMY
05-02-2007, 18:19
Ciao a tutti.. sto cercando una funzione che simuli la distribuzione di gauss.. e avendo trovato qualcosa che FORSE possa fare al caso mio.. volevo provarla.. ma nella compilazioni mi esce questo errore [Linker error] undefined reference to `WinMain@16' .. che ho fatto?
ecco il codice
#include <iostream>
#include <math.h>
#define PI 3.141592654
double max(double a, double b)
{
if (a>b)
return a;
else
return b;
}
double min(double a, double b)
{
if (a>b)
return b;
else
return a;
}
// replicates Sgn as in visual basic, the signum of a real number
double sgn(double a)
{
if (a>0)
return 1.;
else if (a<0)
return -1.;
else
return 0.;
}
// standard normal density function
double ndf(double t)
{
return 0.398942280401433*exp(-t*t/2);
}
// standard normal cumulative distribution function
double nc(double x)
{
double result;
if (x<-7.)
result = ndf(x)/sqrt(1.+x*x);
else if (x>7.)
result = 1. - nc(-x);
else
{
result = 0.2316419;
static double a[5] = {0.31938153,-0.356563782,1.781477937,-1.821255978,1.330274429};
result=1./(1+result*fabs(x));
result=1-ndf(x)*(result*(a[0]+result*(a[1]+result*(a[2]+result*(a[3]+result*a[4])))));
if (x<=0.) result=1.-result;
}
return result;
}
Grazie
ecco il codice
#include <iostream>
#include <math.h>
#define PI 3.141592654
double max(double a, double b)
{
if (a>b)
return a;
else
return b;
}
double min(double a, double b)
{
if (a>b)
return b;
else
return a;
}
// replicates Sgn as in visual basic, the signum of a real number
double sgn(double a)
{
if (a>0)
return 1.;
else if (a<0)
return -1.;
else
return 0.;
}
// standard normal density function
double ndf(double t)
{
return 0.398942280401433*exp(-t*t/2);
}
// standard normal cumulative distribution function
double nc(double x)
{
double result;
if (x<-7.)
result = ndf(x)/sqrt(1.+x*x);
else if (x>7.)
result = 1. - nc(-x);
else
{
result = 0.2316419;
static double a[5] = {0.31938153,-0.356563782,1.781477937,-1.821255978,1.330274429};
result=1./(1+result*fabs(x));
result=1-ndf(x)*(result*(a[0]+result*(a[1]+result*(a[2]+result*(a[3]+result*a[4])))));
if (x<=0.) result=1.-result;
}
return result;
}
Grazie