76    const Tp x2 = x / Tp(2);
 
   77    const Tp fact = sycl::exp(-sycl::lgamma(Tp(1)));
 
   79    const Tp xx4 = x2 * x2;
 
   82    constexpr Tp eps = std::numeric_limits<Tp>::epsilon();
 
   84    for (
unsigned int i = 1; i < max_iter; ++i) {
 
   85        term *= xx4 / (Tp(i) * Tp(i));
 
   87        if (sycl::fabs(term / Jn) < eps) {
 
 
  103    constexpr Tp eps = std::numeric_limits<Tp>::epsilon();
 
  104    constexpr Tp fp_min = Tp(10) * eps;
 
  105    constexpr int max_iter = 15000;
 
  106    constexpr Tp x_min = Tp(2);
 
  109    const Tp mu2 = mu * mu;
 
  110    const Tp xi = Tp(1) / x;
 
  111    const Tp xi2 = Tp(2) * xi;
 
  118    for (i = 1; i <= max_iter; ++i) {
 
  123        const Tp del = c * d;
 
  125        if (sycl::fabs(del - Tp(1)) < eps) {
 
  131        return std::numeric_limits<Tp>::infinity();
 
  135    const Tp Inul1 = Inul;
 
  136    const Tp Ipnul = h * Inul;
 
  138    constexpr Tp pi = 
static_cast<Tp
>(3.1415926535897932384626433832795029L);
 
  142        const Tp x2 = x / Tp(2);
 
  143        const Tp pimu = pi * mu;
 
  145            (sycl::fabs(pimu) < eps ? Tp(1) : pimu / sycl::sin(pimu));
 
  147        Tp d = -sycl::log(x2);
 
  149        const Tp fact2 = (sycl::fabs(e) < eps ? Tp(1) : sycl::sinh(e) / e);
 
  153            -
static_cast<Tp
>(0.5772156649015328606065120900824024L);
 
  154        const Tp gam2 = Tp(1) / sycl::tgamma(Tp(1));
 
  156        Tp ff = fact * (gam1 * sycl::cosh(e) + gam2 * fact2 * d);
 
  160        Tp p = e / (Tp(2) * gam2);
 
  161        Tp q = Tp(1) / (Tp(2) * e * gam2);
 
  166        for (i = 1; i <= max_iter; ++i) {
 
  167            ff = (i * ff + p + q) / (i * i - mu2);
 
  171            const Tp del = c * ff;
 
  173            const Tp __del1 = c * (p - i * ff);
 
  175            if (sycl::fabs(del) < eps * sycl::fabs(sum)) {
 
  181            return std::numeric_limits<Tp>::quiet_NaN();
 
  187        Tp b = Tp(2) * (Tp(1) + x);
 
  193        Tp a1 = Tp(0.25L) - mu2;
 
  196        Tp s = Tp(1) + q * delh;
 
  198        for (i = 2; i <= max_iter; ++i) {
 
  201            const Tp qnew = (q1 - b * q2) / a;
 
  206            d = Tp(1) / (b + a * d);
 
  207            delh = (b * d - Tp(1)) * delh;
 
  209            const Tp dels = q * delh;
 
  211            if (sycl::fabs(dels / s) < eps) {
 
  217            return std::numeric_limits<Tp>::quiet_NaN();
 
  220        Kmu = sycl::sqrt(pi / (Tp(2) * x)) * sycl::exp(-x) / s;
 
  221        Knu1 = Kmu * (mu + x + Tp(0.5L) - h) * xi;
 
  224    Tp Kpmu = mu * xi * Kmu - Knu1;
 
  225    Tp Inumu = xi / (f * Kmu - Kpmu);
 
  226    return Inumu * Inul1 / Inul;