Afacc.cin

From TORI
Jump to: navigation, search

// afacc.cin is routine for the complex double evaluation of [[ArcFactorial].

z_type afacb(z_type z){
DB z0=0.461632144968362341262659542325721328468196204;
DB F0=-0.12148629053584960809551455717769158215135617313;
DB c2=.483836122723810585213722380854825370205628608;
DB p=0.2090973242496979633924701135209125815611056;
DB q=0.0565790271828431799463572817754001404669620;
DB A=0.0008685913050832152753870514845664790993724;
DB B=0.0002046727298252365296379380008904113017495;
z_type t=(log(z)-F0)/c2;   z_type v=sqrt(t);
z_type u=v*(1.+v*(p+A*t))
         /(1.+v*(q+B*t)) + z0; return u;}
z_type afacc(z_type z){ z_type a,c,d;   a=afacb(z); 
d=facp(a); c=z-fac(a); a+=c/d; if(abs(c)<1.e-12) return a;
d=facp(a); c=z-fac(a); a+=c/d; if(abs(c)<1.e-12) return a;
d=facp(a); c=z-fac(a); a+=c/d; if(abs(c)<1.e-12) return a;
d=facp(a); c=z-fac(a); a+=c/d; if(abs(c)<1.e-12) return a;
d=facp(a); c=z-fac(a); a+=c/d; return a;
}