#define PI 3.14159 #define eps 1.E-10 // Fondo quadratico double background(double x[], double par[]) { return par[0] + par[1]*x[0] + par[2]*x[0]*x[0]; } // Picco di Lorentz double lorentzianPeak(double x[], double par[]){ double Den = (x[0]-par[2])*(x[0]-par[2]) + par[1]*par[1]/4.; if ( Den < eps ) Den = eps; return ( par[0]*par[1]/(2.*PI) )/ Den; } // Somma del fondo e della lorentziana double fitFunction(double x[], double par[]) { return background(x,par) + lorentzianPeak(x,&par[3]); // &par[3] = vettore che // inizia dall'elemento [3] }