code: def jacobi(ctx, n, a, b, x, **kwargs):
      if not ctx.isnpint(a):
  
          def h(n):
              return (
                  (
                      [],
                      [],
                      [a + n + 1],
                      [n + 1, a + 1],
                      [-n, a + b + n + 1],
                      [a + 1],
                      (1 - x) * 0.5,
                  ),
              )
  
          return ctx.hypercomb(h, [n], **kwargs)
      if not ctx.isint(b):
  
          def h(n, a):
              return (
                  (
                      [],
                      [],
                      [-b],
                      [n + 1, -b - n],
                      [-n, a + b + n + 1],
                      [b + 1],
                      (x + 1) * 0.5,
                  ),
              )
  
          return ctx.hypercomb(h, [n, a], **kwargs)
      # XXX: determine appropriate limit
      return ctx.binomial(n + a, n) * ctx.hyp2f1(
          -n, 1 + n + a + b, a + 1, (1 - x) / 2, **kwargs
      )
  
file_path: catboost/contrib/python/mpmath/py3/mpmath/functions/orthogonal.py
imports: from .functions import defun, defun_wrapped
label_desc: Use image node_id 8 for calling a global function with example usage: jacobi(ctx, n, a, b, x) and returns: unknown, ctx, ctx, list,  list,  list,  list,  list,  list,  unknown, list,  list,  list,  list,  list,  list,  unknown