1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37
|
double Pochammer(double z,int l){
double res=1;
while(l>0){
res=res*(z+l-1);
l--;
}
return res;
}
double Fac(int l){
double res=1;
while(l>0){
res=res*(l);
l--;
}
return res;
}
double Somme(double H,double t, double borne1,double borne2,double a,double b,double c,int n){
double res=0,denom=0,num=0,membre=0;
for(int o=0;o<=n;o++){
double result1=0,result2=0;
hyperg_2F1_series(-o+b,1+a,a+2,borne1/t,result1);
hyperg_2F1_series(-o+b,1+a,a+2,borne2/t,result2);
num=-pow(t,H-.5)*Pochammer(a,o)*Pochammer(c-b,o);
denom=1/((1+a)*Donnees::Gamma_c*Pochammer(c,o)*Fac(o));
membre=-pow((double)borne2/t,a)*borne2*result2+pow((double)(borne1)/t,a)*borne1*result1;
res+=num*denom*membre;
}
res=res*Donnees::N;
return res;
} |