code: def mpc_nthroot_fixed(a, b, n, prec):
      # a, b signed integers at fixed precision prec
      start = 50
      a1 = int(rshift(a, prec - n * start))
      b1 = int(rshift(b, prec - n * start))
      try:
          r = (a1 + 1j * b1) ** (1.0 / n)
          re = r.real
          im = r.imag
          re = MPZ(int(re))
          im = MPZ(int(im))
      except OverflowError:
          a1 = from_int(a1, start)
          b1 = from_int(b1, start)
          fn = from_int(n)
          nth = mpf_rdiv_int(1, fn, start)
          re, im = mpc_pow((a1, b1), (nth, fzero), start)
          re = to_int(re)
          im = to_int(im)
      extra = 10
      prevp = start
      extra1 = n
      for p in giant_steps(start, prec + extra):
          # this is slow for large n, unlike int_pow_fixed
          re2, im2 = complex_int_pow(re, im, n - 1)
          re2 = rshift(re2, (n - 1) * prevp - p - extra1)
          im2 = rshift(im2, (n - 1) * prevp - p - extra1)
          r4 = (re2 * re2 + im2 * im2) >> (p + extra1)
          ap = rshift(a, prec - p)
          bp = rshift(b, prec - p)
          rec = (ap * re2 + bp * im2) >> p
          imc = (-ap * im2 + bp * re2) >> p
          reb = (rec << p) // r4
          imb = (imc << p) // r4
          re = (reb + (n - 1) * lshift(re, p - prevp)) // n
          im = (imb + (n - 1) * lshift(im, p - prevp)) // n
          prevp = p
      return re, im
  
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 35 for calling a global function with example usage: mpc_nthroot_fixed(a, b, n, prec) and returns: re,  im