7 #ifndef LJ_PME_BASE_H__ 8 #define LJ_PME_BASE_H__ 13 #define M_PI 3.14159265358979323846 17 #define SQRT_PI 1.7724538509055160273 30 double x,y,z,x1,y1,z1, div;
31 double *Mx, *My, *Mz, *dMx, *dMy, *dMz;
37 x1=1.0-x; y1=1.0-y; z1=1.0-z;
53 for (n=4; n<=
order-1; n++) {
56 Mx[n] = x*div*Mx[n-1];
57 My[n] = y*div*My[n-1];
58 Mz[n] = z*div*Mz[n-1];
59 for (j=1; j<=n-2; j++) {
60 Mx[n-j] = ((x+j)*Mx[n-j-1] + (n-x-j)*Mx[n-j])*div;
61 My[n-j] = ((y+j)*My[n-j-1] + (n-y-j)*My[n-j])*div;
62 Mz[n-j] = ((z+j)*Mz[n-j-1] + (n-z-j)*Mz[n-j])*div;
69 dMx[1]=-Mx[1]; dMy[1]=-My[1]; dMz[1]=-Mz[1];
70 for (j=2; j <=
order; j++) {
71 dMx[j] = Mx[j-1] - Mx[j];
72 dMy[j] = My[j-1] - My[j];
73 dMz[j] = Mz[j-1] - Mz[j];
80 for (j=1; j<=
order-2; j++) {
static void compute_LjPme_b_spline(double *frac, double *M, double *dM)