code: def dmp_rr_prs_gcd(f, g, u, K):
      """
      Computes polynomial GCD using subresultants over a ring.
  
      Returns ``(h, cff, cfg)`` such that ``a = gcd(f, g)``, ``cff = quo(f, h)``,
      and ``cfg = quo(g, h)``.
  
      Examples
      ========
  
      >>> from sympy.polys import ring, ZZ
      >>> R, x,y, = ring("x,y", ZZ)
  
      >>> f = x**2 + 2*x*y + y**2
      >>> g = x**2 + x*y
  
      >>> R.dmp_rr_prs_gcd(f, g)
      (x + y, x + y, x)
  
      """
      if not u:
          return dup_rr_prs_gcd(f, g, K)
  
      result = _dmp_rr_trivial_gcd(f, g, u, K)
  
      if result is not None:
          return result
  
      fc, F = dmp_primitive(f, u, K)
      gc, G = dmp_primitive(g, u, K)
  
      h = dmp_subresultants(F, G, u, K)[-1]
      c, _, _ = dmp_rr_prs_gcd(fc, gc, u - 1, K)
  
      _, h = dmp_primitive(h, u, K)
      h = dmp_mul_term(h, c, 0, u, K)
  
      unit = K.canonical_unit(dmp_ground_LC(h, u, K))
  
      if unit != K.one:
          h = dmp_mul_ground(h, unit, u, K)
  
      cff = dmp_quo(f, h, u, K)
      cfg = dmp_quo(g, h, u, K)
  
      return h, cff, cfg
  
imports: from sympy.polys.densearith import dup_sub_mul, dup_neg, dmp_neg, dmp_add, dmp_sub, dup_mul, dmp_mul, dmp_pow, dup_div, dmp_div, dup_rem, dup_quo, dmp_quo, dup_prem, dmp_prem, dup_mul_ground, dmp_mul_ground, dmp_mul_term, dup_quo_ground, dmp_quo_ground, dup_max_norm, dmp_max_norm
  from sympy.polys.densebasic import dup_strip, dmp_raise, dmp_zero, dmp_one, dmp_ground, dmp_one_p, dmp_zero_p, dmp_zeros, dup_degree, dmp_degree, dmp_degree_in, dup_LC, dmp_LC, dmp_ground_LC, dmp_multi_deflate, dmp_inflate, dup_convert, dmp_convert, dmp_apply_pairs
  from sympy.polys.densetools import dup_clear_denoms, dmp_clear_denoms, dup_diff, dmp_diff, dup_eval, dmp_eval, dmp_eval_in, dup_trunc, dmp_ground_trunc, dup_monic, dmp_ground_monic, dup_primitive, dmp_ground_primitive, dup_extract, dmp_ground_extract
  from sympy.polys.galoistools import gf_int, gf_crt
  from sympy.polys.polyconfig import query
  from sympy.polys.polyerrors import MultivariatePolynomialError, HeuristicGCDFailed, HomomorphismFailed, NotInvertible, DomainError
label_desc: Use image node_id 32 for calling a global function with example usage: dmp_rr_prs_gcd(f, g, u, K) and returns: h,  cff,  cfg, dup_rr_prs_gcd, result