code: def mpc_pow_int(z, n, prec, rnd=round_fast):
      a, b = z
      if b == fzero:
          return mpf_pow_int(a, n, prec, rnd), fzero
      if a == fzero:
          v = mpf_pow_int(b, n, prec, rnd)
          n %= 4
          if n == 0:
              return v, fzero
          elif n == 1:
              return fzero, v
          elif n == 2:
              return mpf_neg(v), fzero
          elif n == 3:
              return fzero, mpf_neg(v)
      if n == 0:
          return mpc_one
      if n == 1:
          return mpc_pos(z, prec, rnd)
      if n == 2:
          return mpc_square(z, prec, rnd)
      if n == -1:
          return mpc_reciprocal(z, prec, rnd)
      if n < 0:
          return mpc_reciprocal(mpc_pow_int(z, -n, prec + 4), prec, rnd)
      asign, aman, aexp, abc = a
      bsign, bman, bexp, bbc = b
      if asign:
          aman = -aman
      if bsign:
          bman = -bman
      de = aexp - bexp
      abs_de = abs(de)
      exact_size = n * (abs_de + max(abc, bbc))
      if exact_size < 10000:
          if de > 0:
              aman <<= de
              aexp = bexp
          else:
              bman <<= -de
              bexp = aexp
          re, im = complex_int_pow(aman, bman, n)
          re = from_man_exp(re, int(n * aexp), prec, rnd)
          im = from_man_exp(im, int(n * bexp), prec, rnd)
          return re, im
      return mpc_exp(
          mpc_mul_int(mpc_log(z, prec + 10), n, prec + 10), prec, rnd
      )
  
imports: import sys
  from .backend import MPZ, MPZ_ZERO, MPZ_ONE, MPZ_TWO, BACKEND
  from .libmpf import round_floor, round_ceiling, round_down, round_up, round_nearest, round_fast, bitcount, bctable, normalize, normalize1, reciprocal_rnd, rshift, lshift, giant_steps, negative_rnd, to_str, to_fixed, from_man_exp, from_float, to_float, from_int, to_int, fzero, fone, ftwo, fhalf, finf, fninf, fnan, fnone, mpf_abs, mpf_pos, mpf_neg, mpf_add, mpf_sub, mpf_mul, mpf_div, mpf_mul_int, mpf_shift, mpf_sqrt, mpf_hypot, mpf_rdiv_int, mpf_floor, mpf_ceil, mpf_nint, mpf_frac, mpf_sign, mpf_hash, ComplexResult
  from .libelefun import mpf_pi, mpf_exp, mpf_log, mpf_cos_sin, mpf_cosh_sinh, mpf_tan, mpf_pow_int, mpf_log_hypot, mpf_cos_sin_pi, mpf_phi, mpf_cos, mpf_sin, mpf_cos_pi, mpf_sin_pi, mpf_atan, mpf_atan2, mpf_cosh, mpf_sinh, mpf_tanh, mpf_asin, mpf_acos, mpf_acosh, mpf_nthroot, mpf_fibonacci
label_desc: Use image node_id 33 for calling a global function with example usage: mpc_pow_int(z, n, prec, rnd) and returns: mpc_exp, mpf_pow_int,  fzero, mpc_one, mpc_pos, mpc_square, mpc_reciprocal, mpc_reciprocal, re,  im, v,  fzero, fzero,  v, mpf_neg,  fzero, fzero,  mpf_neg