/******************************************
*
* Cedric Pradalier 2001
* mail : http://cedric.pradalier.free.fr/mail.html
*
*****************************************/
/***********************************
* y = a1 *x + a0 precision r square : rs
* Parametres :
* n : nombre de données
* x : double[n] , données observées
* y : double[n] , données observées
* a0,a1,rs : pointeur sur des doubles -> resultats
* */
void linreg(int n,double * x, double * y,double * a0, double * a1, double * rs)
{
double sxy = 0;
double sx = 0;
double sy = 0;
double sx2 = 0;
double sy2 = 0;
int i;
for(i=0;i<n;i++)
{
sxy += x[i]*y[i];
sx += x[i];
sy += y[i];
sx2 += x[i]*x[i];
sy2 += y[i]*y[i];
}
*a1 = (sxy - sx*sy/n) / (sx2 - sx*sx/n);
*a0 = (sy - *a1 * sx)/n;
*rs = ((sxy -sx*sy/n)*(sxy -sx*sy/n)/(sx2 - sx*sx/n))/(sy2 - sy*sy/n);
}