code: def root(x, k, context=None):
      
      if k < 0:
          raise ValueError("root function not implemented for negative k")
  
      return _apply_function_in_current_context(
          BigFloat,
          mpfr.mpfr_root,
          (BigFloat._implicit_convert(x), k),
          context,
      )
docs: Return the kth root of x.
  
      For k odd and x negative (including -Inf), return a negative number.
      For k even and x negative (including -Inf), return NaN.
  
      The kth root of -0 is defined to be -0, whatever the parity of k.
  
      This function is only implemented for nonnegative k.