code: def kei(ctx, n, z, **kwargs):
      n = ctx.convert(n)
      z = ctx.convert(z)
  
      # http://functions.wolfram.com/Bessel-TypeFunctions/KelvinKei2/26/01/02/0001/
      def h(n):
          r = -((z / 4) ** 4)
          cos1, sin1 = ctx.cospi_sinpi(0.75 * n)
          cos2, sin2 = ctx.cospi_sinpi(0.25 * n)
          T1 = (
              [-cos1, 2, z],
              [1, n - 3, 2 - n],
              [n - 1],
              [],
              [],
              [1.5, 0.5 * (3 - n), 1 - 0.5 * n],
              r,
          )
          T2 = (
              [-sin1, 2, z],
              [1, n - 1, -n],
              [n],
              [],
              [],
              [0.5, 0.5 * (1 - n), 1 - 0.5 * n],
              r,
          )
          T3 = (
              [-sin2, 2, z],
              [1, -n - 1, n],
              [-n],
              [],
              [],
              [0.5, 0.5 * (n + 1), 0.5 * (n + 2)],
              r,
          )
          T4 = (
              [-cos2, 2, z],
              [1, -n - 3, n + 2],
              [-n - 1],
              [],
              [],
              [1.5, 0.5 * (n + 3), 0.5 * (n + 2)],
              r,
          )
          return T1, T2, T3, T4
  
      return ctx.hypercomb(h, [n], **kwargs)
  
imports: from .functions import defun, defun_wrapped
label_desc: Use image node_id 22 for calling a global function with example usage: kei(ctx, n, z) and returns: ctx, T1,  T2,  T3,  T4