void beschb( double x, double *gam1, double *gam2, double *gampl, double *gammi ) { double xx; static double c1[] = { -1.142022680371172e0, 6.516511267076e-3, 3.08709017308e-4, -3.470626964e-6, 6.943764e-9, 3.6780e-11, -1.36e-13 }; static double c2[] = { 1.843740587300906e0, -0.076852840844786e0, 1.271927136655e-3, -4.971736704e-6, -3.3126120e-8, 2.42310e-10, -1.70e-13, -1.0e-15 }; xx = 8.0*x*x - 1.0; *gam1 = chebev(-1.0, 1.0, c1, NUSE1, xx); *gam2 = chebev(-1.0, 1.0, c2, NUSE2, xx); *gampl = *gam2 - x*(*gam1); *gammi = *gam2 + x*(*gam1); }
static void beschb(double x, double *gam1, double *gam2, double *gampl, double *gammi) { double chebev(double a, double b, double c[], int m, double x); double xx; static double c1[]={ -1.142022680371168e0,6.5165112670737e-3,3.087090173086e-4, -3.4706269649e-6,6.9437664e-9,3.67795e-11,-1.356e-13}; static double c2[]={ 1.843740587300905e0,-7.68528408447867e-2,1.2719271366546e-3, -4.9717367042e-6,-3.31261198e-8,2.423096e-10,-1.702e-13,-1.49e-15}; xx=8.0*x*x-1.0; *gam1=chebev(-1.0,1.0,c1,NUSE1,xx); *gam2=chebev(-1.0,1.0,c2,NUSE1,xx); *gampl=*gam2-x*(*gam1); *gammi=*gam2+x*(*gam1); }
double beschb_gam1(double x) { double xx; xx=8.0*x*x-1.0; double gam1=chebev(-1.0,1.0,xx); //double gam2=chebev2(-1.0,1.0,xx); //double gampl= gam2-x*gam1; //double gammi= gam2+x*gam1; return gam1; }