/beegfs/hackathon/users/eoseret/qaas_runs_test/178-654-6841/intel/miniqmc/build/miniqmc/src/Numerics/Spline2/MultiBsplineEvalHelper.hpp: 53 - 66
--------------------------------------------------------------------------------

53:   if (x < 0)
54:   {
55:     ind = 0;
56:     dx  = T(0);
57:   }
58:   else
59:   {
60:     ind = static_cast<int>(x);
61:     dx = x - ind;
62:     // upper bound
63:     if (ind > nmax)
64:     {
65:       ind = nmax;
66:       dx  = T(1) - std::numeric_limits<T>::epsilon();
/beegfs/hackathon/users/eoseret/qaas_runs_test/178-654-6841/intel/miniqmc/build/miniqmc/src/Numerics/Spline2/MultiBsplineRef.hpp: 174 - 288
--------------------------------------------------------------------------------

174: inline void evaluate_vgh(const typename bspline_traits<T, 3>::SplineType* restrict spline_m,
[...]
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++)
228:     {
229:       const T* restrict coefs    = spline_m->coefs + (ix + i) * xs + (iy + j) * ys + iz * zs;
230:       const T* restrict coefszs  = coefs + zs;
231:       const T* restrict coefs2zs = coefs + 2 * zs;
232:       const T* restrict coefs3zs = coefs + 3 * zs;
233: 
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;
[...]
269:   const T dxx   = dxInv * dxInv;
270:   const T dyy   = dyInv * dyInv;
271:   const T dzz   = dzInv * dzInv;
272:   const T dxy   = dxInv * dyInv;
273:   const T dxz   = dxInv * dzInv;
274:   const T dyz   = dyInv * dzInv;
275: 
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: }
/beegfs/hackathon/users/eoseret/qaas_runs_test/178-654-6841/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;
/cluster/comp/gcc/15.1.0/include/c++/15.1.0/bits/stl_algobase.h: 924 - 925
--------------------------------------------------------------------------------

924:       for (; __first != __last; ++__first)
925: 	*__first = __val;
