code: def _gamma_complex(x):
      if not x.imag:
          return complex(_gamma_real(x.real))
      if x.real < 0.5:
          # TODO: sinpi
          return pi / (_sinpi_complex(x) * _gamma_complex(1 - x))
      else:
          x -= 1.0
          r = _lanczos_p[0]
          for i in range(1, _lanczos_g + 2):
              r += _lanczos_p[i] / (x + i)
          t = x + _lanczos_g + 0.5
          return (
              2.506628274631000502417
              * t ** (x + 0.5)
              * cmath.exp(-t)
              * r
          )
  
imports: import operator
  import math
  import cmath
label_desc: Use image node_id 12 for calling a global function with example usage: _gamma_complex(x) and returns: complex, unknown, unknown