32 template <TRobustKernelType KERNEL_TYPE,
typename T =
double>
46 inline T
eval(
const T r2, T& out_1st_deriv, T& out_2nd_deriv)
65 inline T
eval(
const T r2, T& out_1st_deriv, T& out_2nd_deriv)
67 const T param_sq_inv = 1.0 / param_sq;
68 const T a = 1 + r2 * param_sq_inv;
69 const T b = std::sqrt(a);
70 out_1st_deriv = 1. / b;
71 out_2nd_deriv = -0.5 * param_sq_inv * out_1st_deriv / a;
72 return 2 * param_sq * (b - 1);