code: def _bessel_diff_formula(v, z, n, L, phase):
      # from AMS55.
      # L(v, z) = J(v, z), Y(v, z), H1(v, z), H2(v, z), phase = -1
      # L(v, z) = I(v, z) or exp(v*pi*i)K(v, z), phase = 1
      # For K, you can pull out the exp((v-k)*pi*i) into the caller
      v = asarray(v)
      p = 1.0
      s = L(v - n, z)
      for i in range(1, n + 1):
          p = phase * (p * (n - i + 1)) / i  # = choose(k, i)
          s += p * L(v - n + i * 2, z)
      return s / (2.0**n)
  
imports: import operator
  import numpy
  import math
  from numpy import pi, asarray, floor, isscalar, iscomplex, real, imag, sqrt, where, mgrid, sin, place, issubdtype, extract, inexact, nan, zeros, sinc
  from .None import _ufuncs
  from ._ufuncs import mathieu_a, mathieu_b, iv, jv, gamma, psi, hankel1, hankel2, yv, kv, ndtri, poch, binom, hyp0f1
  from .None import specfun
  from .None import orthogonal
  from ._comb import _comb_int
label_desc: Use image node_id 12 for calling a global function with example usage: _bessel_diff_formula(v, z, n, L, phase) and returns: unknown