99 double xWta = (xP - x[i])/(x[i+1]-x[i]);
100 double yWta = (yP - y[j])/(y[j+1]-y[j]);
101 double zWta = (zP - z[k])/(z[k+1]-z[k]);
103 double xWtb = 1-xWta;
104 double yWtb = 1-yWta;
105 double zWtb = 1-zWta;
109 return ((f[i *nzy + j *nz + k ]*xWtb +
110 f[ip*nzy + j *nz + k ]*xWta) * yWtb +
111 (f[i *nzy + jp*nz + k ]*xWtb +
112 f[ip*nzy + jp*nz + k ]*xWta) * yWta) * zWtb +
113 ((f[i *nzy + j *nz + kp]*xWtb +
114 f[ip*nzy + j *nz + kp]*xWta) * yWtb +
115 (f[i *nzy + jp*nz + kp]*xWtb +
116 f[ip*nzy + jp*nz + kp]*xWta) * yWta) * zWta;
145 double xWta = (xP - x[i])/(x[i+1]-x[i]);
146 double yWta = (yP - y[j])/(y[j+1]-y[j]);
147 double zWta = (zP - z[k])/(z[k+1]-z[k]);
148 double wWta = (wP - w[l])/(w[l+1]-w[l]);
150 double xWtb = 1-xWta;
151 double yWtb = 1-yWta;
152 double zWtb = 1-zWta;
153 double wWtb = 1-wWta;
158 return (((f[i *nwzy + j *nwz + k *nw + l ]*xWtb +
159 f[ip*nwzy + j *nwz + k *nw + l ]*xWta) * yWtb +
160 (f[i *nwzy + jp*nwz + k *nw + l ]*xWtb +
161 f[ip*nwzy + jp*nwz + k *nw + l ]*xWta) * yWta) * zWtb +
162 ((f[i *nwzy + j *nwz + kp*nw + l ]*xWtb +
163 f[ip*nwzy + j *nwz + kp*nw + l ]*xWta) * yWtb +
164 (f[i *nwzy + jp*nwz + kp*nw + l ]*xWtb +
165 f[ip*nwzy + jp*nwz + kp*nw + l ]*xWta) * yWta) * zWta) * wWtb +
166 (((f[i *nwzy + j *nwz + k *nw + lp]*xWtb +
167 f[ip*nwzy + j *nwz + k *nw + lp]*xWta) * yWtb +
168 (f[i *nwzy + jp*nwz + k *nw + lp]*xWtb +
169 f[ip*nwzy + jp*nwz + k *nw + lp]*xWta) * yWta) * zWtb +
170 ((f[i *nwzy + j *nwz + kp*nw + lp]*xWtb +
171 f[ip*nwzy + j *nwz + kp*nw + lp]*xWta) * yWtb +
172 (f[i *nwzy + jp*nwz + kp*nw + lp]*xWtb +
173 f[ip*nwzy + jp*nwz + kp*nw + lp]*xWta) * yWta) * zWta) * wWta;
207 double xWta = (xP - x[i])/(x[i+1]-x[i]);
208 double yWta = (yP - y[j])/(y[j+1]-y[j]);
209 double zWta = (zP - z[k])/(z[k+1]-z[k]);
210 double wWta = (wP - w[l])/(w[l+1]-w[l]);
211 double vWta = (vP - v[m])/(v[m+1]-v[m]);
213 double xWtb = 1-xWta;
214 double yWtb = 1-yWta;
215 double zWtb = 1-zWta;
216 double wWtb = 1-wWta;
217 double vWtb = 1-vWta;
219 int nvwzy = nv*nw*nz*ny;
223 return ((((f[i *nvwzy + j *nvwz + k *nvw + l *nv + m ]*xWtb +
224 f[ip*nvwzy + j *nvwz + k *nvw + l *nv + m ]*xWta) * yWtb +
225 (f[i *nvwzy + jp*nvwz + k *nvw + l *nv + m ]*xWtb +
226 f[ip*nvwzy + jp*nvwz + k *nvw + l *nv + m ]*xWta) * yWta) * zWtb +
227 ((f[i *nvwzy + j *nvwz + kp*nvw + l *nv + m ]*xWtb +
228 f[ip*nvwzy + j *nvwz + kp*nvw + l *nv + m ]*xWta) * yWtb +
229 (f[i *nvwzy + jp*nvwz + kp*nvw + l *nv + m ]*xWtb +
230 f[ip*nvwzy + jp*nvwz + kp*nvw + l *nv + m ]*xWta) * yWta) * zWta) * wWtb +
231 (((f[i *nvwzy + j *nvwz + k *nvw + lp*nv + m ]*xWtb +
232 f[ip*nvwzy + j *nvwz + k *nvw + lp*nv + m ]*xWta) * yWtb +
233 (f[i *nvwzy + jp*nvwz + k *nvw + lp*nv + m ]*xWtb +
234 f[ip*nvwzy + jp*nvwz + k *nvw + lp*nv + m ]*xWta) * yWta) * zWtb +
235 ((f[i *nvwzy + j *nvwz + kp*nvw + lp*nv + m ]*xWtb +
236 f[ip*nvwzy + j *nvwz + kp*nvw + lp*nv + m ]*xWta) * yWtb +
237 (f[i *nvwzy + jp*nvwz + kp*nvw + lp*nv + m ]*xWtb +
238 f[ip*nvwzy + jp*nvwz + kp*nvw + lp*nv + m ]*xWta) * yWta) * zWta) * wWta) * vWtb +
239 ((((f[i *nvwzy + j *nvwz + k *nvw + l *nv + mp]*xWtb +
240 f[ip*nvwzy + j *nvwz + k *nvw + l *nv + mp]*xWta) * yWtb +
241 (f[i *nvwzy + jp*nvwz + k *nvw + l *nv + mp]*xWtb +
242 f[ip*nvwzy + jp*nvwz + k *nvw + l *nv + mp]*xWta) * yWta) * zWtb +
243 ((f[i *nvwzy + j *nvwz + kp*nvw + l *nv + mp]*xWtb +
244 f[ip*nvwzy + j *nvwz + kp*nvw + l *nv + mp]*xWta) * yWtb +
245 (f[i *nvwzy + jp*nvwz + kp*nvw + l *nv + mp]*xWtb +
246 f[ip*nvwzy + jp*nvwz + kp*nvw + l *nv + mp]*xWta) * yWta) * zWta) * wWtb +
247 (((f[i *nvwzy + j *nvwz + k *nvw + lp*nv + mp]*xWtb +
248 f[ip*nvwzy + j *nvwz + k *nvw + lp*nv + mp]*xWta) * yWtb +
249 (f[i *nvwzy + jp*nvwz + k *nvw + lp*nv + mp]*xWtb +
250 f[ip*nvwzy + jp*nvwz + k *nvw + lp*nv + mp]*xWta) * yWta) * zWtb +
251 ((f[i *nvwzy + j *nvwz + kp*nvw + lp*nv + mp]*xWtb +
252 f[ip*nvwzy + j *nvwz + kp*nvw + lp*nv + mp]*xWta) * yWtb +
253 (f[i *nvwzy + jp*nvwz + kp*nvw + lp*nv + mp]*xWtb +
254 f[ip*nvwzy + jp*nvwz + kp*nvw + lp*nv + mp]*xWta) * yWta) * zWta) * wWta) * vWtb;
double LI_4D(const int nx, const int ny, const int nz, const int nw, const double *x, const double *y, const double *z, const double *w, const double *f, const double xP, const double yP, const double zP, const double wP)
double LI_3D(const int nx, const int ny, const int nz, const double *x, const double *y, const double *z, const double *f, const double xP, const double yP, const double zP)
double LI_2D(const int nx, const int ny, const double *x, const double *y, const double *f, const double xP, const double yP)
double LI_5D(const int nx, const int ny, const int nz, const int nw, const int nv, const double *x, const double *y, const double *z, const double *w, const double *v, const double *f, const double xP, const double yP, const double zP, const double wP, const double vP)