code: def mpci_pow_int(x, n, prec):
      if n < 0:
          return mpci_div(
              (mpi_one, mpi_zero), mpci_pow_int(x, -n, prec + 20), prec
          )
      if n == 0:
          return mpi_one, mpi_zero
      if n == 1:
          return mpci_pos(x, prec)
      if n == 2:
          return mpci_square(x, prec)
      wp = prec + 20
      result = (mpi_one, mpi_zero)
      while n:
          if n & 1:
              result = mpci_mul(result, x, wp)
              n -= 1
          x = mpci_square(x, wp)
          n >>= 1
      return mpci_pos(result, prec)
  
imports: from .backend import xrange
  from .libmpf import ComplexResult, round_down, round_up, round_floor, round_ceiling, round_nearest, prec_to_dps, repr_dps, dps_to_prec, bitcount, from_float, fnan, finf, fninf, fzero, fhalf, fone, fnone, mpf_sign, mpf_lt, mpf_le, mpf_gt, mpf_ge, mpf_eq, mpf_cmp, mpf_min_max, mpf_floor, from_int, to_int, to_str, from_str, mpf_abs, mpf_neg, mpf_pos, mpf_add, mpf_sub, mpf_mul, mpf_mul_int, mpf_div, mpf_shift, mpf_pow_int, from_man_exp, MPZ_ONE
  from .libelefun import mpf_log, mpf_exp, mpf_sqrt, mpf_atan, mpf_atan2, mpf_pi, mod_pi2, mpf_cos_sin
  from .gammazeta import mpf_gamma, mpf_rgamma, mpf_loggamma, mpc_loggamma
label_desc: Use image node_id 55 for calling a global function with example usage: mpci_pow_int(x, n, prec) and returns: mpci_pos, mpci_div, mpi_one,  mpi_zero, mpci_pos, mpci_square