private double bessel_i0(double x) { int i; double sum, y, t; sum = 1.0; y = x * x / 4.0; t = y; for (i = 2; t > epsilon; i++) { sum += t; t *= (double)y / (i * i); } return sum; } };