46#if defined(__CUDACC__)
52 T(6) * std::numeric_limits<T>::epsilon();
71 return T(0.5) *
sqr(T(0.5) - x);
73 return T(0.75) -
sqr(x);
75 return T(0.5) *
sqr(T(0.5) + x);
80 return (T(1.) + x * (T(-6.) + x * (T(12.) - x * T(8.)))) / T(48.);
82 return (T(23.) + x * (T(-30.) + x * (T(-12.) + x * T(24.)))) / T(48.);
84 return (T(23.) + x * (T(30.) + x * (T(-12.) - x * T(24.)))) / T(48.);
86 return (T(1.) + x * (T(6.) + x * (T(12.) + x * T(8.)))) / T(48.);
92 x * (T(-8.) + x * (T(24.) + x * (T(-32.) + x * T(16.))))) /
96 x * (T(-44.) + x * (T(24.) + x * (T(16.) - x * T(16.))))) /
99 return (T(115.) + x * x * (T(-120.) + x * x * T(48.))) / T(192.);
102 x * (T(44.) + x * (T(24.) + x * (T(-16.) - x * T(16.))))) /
105 return (T(1.) + x * (T(8.) + x * (T(24.) + x * (T(32.) + x * T(16.))))) /
113 x * (T(40.) + x * (T(-80.) + x * (T(80.) - x * T(32.)))))) /
119 x * (T(-240.) + x * (T(-240.) + x * T(160.)))))) /
125 x * (T(560.) + x * (T(80.) - x * T(160.)))))) /
131 x * (T(-560.) + x * (T(80.) + x * T(160.)))))) /
137 x * (T(240.) + x * (T(-240.) - x * T(160.)))))) /
142 x * (T(40.) + x * (T(80.) + x * (T(80.) + x * T(32.)))))) /
152 x * (T(240.) + x * (T(-192.) + x * T(64.))))))) /
159 x * (T(240.) + x * (T(384.) - x * T(192.))))))) /
165 x * (T(6880.) + x * (T(-4080.) +
166 x * (T(-960.) + x * T(960.))))))) /
170 x * x * (T(-4620.) + x * x * (T(1680.) - x * x * T(320.)))) /
177 x * (T(-4080.) + x * (T(960.) + x * T(960.))))))) /
184 x * (T(240.) + x * (T(-384.) - x * T(192.))))))) /
191 x * (T(240.) + x * (T(192.) + x * T(64.))))))) /
196 DEVICE_THROW(std::runtime_error(
"Internal interpolation error."));
205#if defined(__CUDACC__)
211 T(6) * std::numeric_limits<T>::epsilon();
239 return (T(-1.) + x * (T(4.) + x * T(-4.))) / T(8.);
241 return (T(-5.) + x * (T(-4.) + x * T(12.))) / T(8.);
243 return (T(5.) + x * (T(-4.) + x * T(-12.))) / T(8.);
245 return (T(1.) + x * (T(4.) + x * T(4.))) / T(8.);
250 return (T(-1.) + x * (T(6.) + x * (T(-12.) + x * T(8.)))) / T(48.);
252 return (T(-11.) + x * (T(12.) + x * (T(12.) + x * T(-16.)))) / T(24.);
254 return (x * (T(-5.) + x * x * T(4.))) / T(4.);
256 return (T(11.) + x * (T(12.) + x * (T(-12.) + x * T(-16.)))) / T(24.);
258 return (T(1.) + x * (T(6.) + x * (T(12.) + x * T(8.)))) / T(48.);
264 x * (T(8.) + x * (T(-24.) + x * (T(32.) + x * T(-16.))))) /
268 x * (T(168.) + x * (T(-72.) + x * (T(-96.) + x * (T(80.)))))) /
272 x * (T(-88.) + x * (T(168.) + x * (T(32.) + x * T(-80.))))) /
276 x * (T(-88.) + x * (T(-168.) + x * (T(32.) + x * T(80.))))) /
280 x * (T(168.) + x * (T(72.) + x * (T(-96.) + x * T(-80.))))) /
283 return (T(1.) + x * (T(8.) + x * (T(24.) + x * (T(32.) + x * T(16.))))) /
291 x * (T(-40.) + x * (T(80.) + x * (T(-80.) + x * T(32.)))))) /
296 x * (T(-200.) + x * (T(40.) + x * (T(80.) - x * T(48.)))))) /
302 x * (T(-272.) + x * (T(-80.) + x * T(96.)))))) /
305 return (x * (T(-77.) + x * x * (T(56.) - x * x * T(16.)))) / T(96.);
307 return (T(289.) + x * (T(158.) + x * (T(-344.) +
309 x * (T(80.) + x * T(96.)))))) /
314 x * (T(200.) + x * (T(40.) + x * (T(-80.) - x * T(48.)))))) /
319 x * (T(40.) + x * (T(80.) + x * (T(80.) + x * T(32.)))))) /
324 DEVICE_THROW(std::runtime_error(
"Internal interpolation error."));