code: def polyexp(ctx, s, z):
      if ctx.isinf(z) or ctx.isinf(s) or ctx.isnan(z) or ctx.isnan(s):
          return z**s
      if z == 0:
          return z * s
      if s == 0:
          return ctx.expm1(z)
      if s == 1:
          return ctx.exp(z) * z
      if s == 2:
          return ctx.exp(z) * z * (z + 1)
      return _polyexp(ctx, s, z)
  
imports: from ..libmp.backend import xrange
  import math
  import cmath
label_desc: Use image node_id 44 for calling a global function with example usage: polyexp(ctx, s, z) and returns: _polyexp, unknown, unknown, ctx, unknown, unknown