/beegfs/hackathon/users/eoseret/qaas_runs_test/178-654-5599/intel/miniqmc/build/miniqmc/src/Numerics/Spline2/MultiBsplineRef.hpp: 182 - 288
--------------------------------------------------------------------------------

182: {
183:   int ix, iy, iz;
184:   T tx, ty, tz;
185:   T a[4], b[4], c[4], da[4], db[4], dc[4], d2a[4], d2b[4], d2c[4];
186: 
187:   x -= spline_m->x_grid.start;
188:   y -= spline_m->y_grid.start;
189:   z -= spline_m->z_grid.start;
190:   spline2::getSplineBound(x * spline_m->x_grid.delta_inv, tx, ix, spline_m->x_grid.num - 1);
191:   spline2::getSplineBound(y * spline_m->y_grid.delta_inv, ty, iy, spline_m->y_grid.num - 1);
192:   spline2::getSplineBound(z * spline_m->z_grid.delta_inv, tz, iz, spline_m->z_grid.num - 1);
[...]
198:   const intptr_t xs = spline_m->x_stride;
199:   const intptr_t ys = spline_m->y_stride;
200:   const intptr_t zs = spline_m->z_stride;
201: 
202:   const size_t out_offset = spline_m->num_splines;
203: 
204:   T* restrict gx = grads;
205:   T* restrict gy = grads + out_offset;
206:   T* restrict gz = grads + 2 * out_offset;
207: 
208:   T* restrict hxx = hess;
209:   T* restrict hxy = hess + out_offset;
210:   T* restrict hxz = hess + 2 * out_offset;
211:   T* restrict hyy = hess + 3 * out_offset;
212:   T* restrict hyz = hess + 4 * out_offset;
213:   T* restrict hzz = hess + 5 * out_offset;
[...]
226:   for (int i = 0; i < 4; i++)
227:     for (int j = 0; j < 4; j++)
[...]
234:       const T pre20 = d2a[i] * b[j];
235:       const T pre10 = da[i] * b[j];
236:       const T pre00 = a[i] * b[j];
237:       const T pre11 = da[i] * db[j];
238:       const T pre01 = a[i] * db[j];
239:       const T pre02 = a[i] * d2b[j];
240: 
241:       const int iSplitPoint = num_splines;
242:       for (int n = 0; n < iSplitPoint; n++)
243:       {
244:         T coefsv    = coefs[n];
245:         T coefsvzs  = coefszs[n];
246:         T coefsv2zs = coefs2zs[n];
247:         T coefsv3zs = coefs3zs[n];
248: 
249:         T sum0 = c[0] * coefsv + c[1] * coefsvzs + c[2] * coefsv2zs + c[3] * coefsv3zs;
250:         T sum1 = dc[0] * coefsv + dc[1] * coefsvzs + dc[2] * coefsv2zs + dc[3] * coefsv3zs;
251:         T sum2 = d2c[0] * coefsv + d2c[1] * coefsvzs + d2c[2] * coefsv2zs + d2c[3] * coefsv3zs;
252: 
253:         hxx[n] += pre20 * sum0;
254:         hxy[n] += pre11 * sum0;
255:         hxz[n] += pre10 * sum1;
256:         hyy[n] += pre02 * sum0;
257:         hyz[n] += pre01 * sum1;
258:         hzz[n] += pre00 * sum2;
259:         gx[n] += pre10 * sum0;
260:         gy[n] += pre01 * sum0;
261:         gz[n] += pre00 * sum1;
262:         vals[n] += pre00 * sum0;
[...]
276:   for (int n = 0; n < num_splines; n++)
277:   {
278:     gx[n] *= dxInv;
279:     gy[n] *= dyInv;
280:     gz[n] *= dzInv;
281:     hxx[n] *= dxx;
282:     hyy[n] *= dyy;
283:     hzz[n] *= dzz;
284:     hxy[n] *= dxy;
285:     hxz[n] *= dxz;
286:     hyz[n] *= dyz;
287:   }
288: }
/usr/lib/gcc/x86_64-redhat-linux/11/../../../../include/c++/11/bits/stl_algobase.h: 923 - 924
--------------------------------------------------------------------------------

923:       for (; __first != __last; ++__first)
924: 	*__first = __tmp;
/beegfs/hackathon/users/eoseret/qaas_runs_test/178-654-5599/intel/miniqmc/build/miniqmc/src/Numerics/Spline2/MultiBsplineEvalHelper.hpp: 53 - 63
--------------------------------------------------------------------------------

53:   if (x < 0)
[...]
60:     ind = static_cast<int>(x);
61:     dx = x - ind;
62:     // upper bound
63:     if (ind > nmax)
/beegfs/hackathon/users/eoseret/qaas_runs_test/178-654-5599/intel/miniqmc/build/miniqmc/src/Numerics/Spline2/MultiBsplineData.hpp: 68 - 79
--------------------------------------------------------------------------------

68:     a[0]   = ((A00 * tx + A01) * tx + A02) * tx + A03;
69:     a[1]   = ((A10 * tx + A11) * tx + A12) * tx + A13;
70:     a[2]   = ((A20 * tx + A21) * tx + A22) * tx + A23;
71:     a[3]   = ((A30 * tx + A31) * tx + A32) * tx + A33;
72:     da[0]  = (dA01 * tx + dA02) * tx + dA03;
73:     da[1]  = (dA11 * tx + dA12) * tx + dA13;
74:     da[2]  = (dA21 * tx + dA22) * tx + dA23;
75:     da[3]  = (dA31 * tx + dA32) * tx + dA33;
76:     d2a[0] = d2A02 * tx + d2A03;
77:     d2a[1] = d2A12 * tx + d2A13;
78:     d2a[2] = d2A22 * tx + d2A23;
79:     d2a[3] = d2A32 * tx + d2A33;
