#include #include float gatti(float x,float h,float xtalk,float *qq); float gatti(float x,float h,float xtalk,float *qq){ float a,b,c; float qthh,qth,qt,qtl,qtll; float qhh,qh,q,ql,qll,xm; float val0,val1,val2,val3,val4,val5; a=0.155479307E1; b=0.5744562646; c=0.1119619448E1; val0=a*h*atan(b*tanh(c*(x-2.5)/h)); val1=a*h*atan(b*tanh(c*(x-1.5)/h)); val2=a*h*atan(b*tanh(c*(x-.5)/h)); val3=a*h*atan(b*tanh(c*(x+.5)/h)); val4=a*h*atan(b*tanh(c*(x+1.5)/h)); val5=a*h*atan(b*tanh(c*(x+2.5)/h)); qthh=val5-val4; qth=val4-val3; qt=val3-val2; qtl=val2-val1; qtll=val1-val0; qhh=qthh*(1.-2.*xtalk)+xtalk*qth; qh=qthh*xtalk+qth*(1.-2.*xtalk)+qt*xtalk; q=qth*xtalk+qt*(1.-2.*xtalk)+qtl*xtalk; ql=qtll*xtalk+qtl*(1.-2.*xtalk)+qt*xtalk; qll=qtll*(1.-2.*xtalk)+xtalk*qtl; xm=-(qh-ql)/(q+qh+ql); qq[0]=ql; qq[1]=q; qq[2]=qh; // printf(" gatti2: %f %f %f %f \n",x,qh,q,ql); return xm; }