

def _dmp_inner_gcd(f, g, u, K):
    'Helper function for `dmp_inner_gcd()`. '
    if (not K.is_Exact):
        try:
            exact = K.get_exact()
        except DomainError:
            return (dmp_one(exact, K), f, g)
        f = dmp_convert(f, u, K, exact)
        g = dmp_convert(g, u, K, exact)
        (h, cff, cfg) = _dmp_inner_gcd(f, g, u, exact)
        h = dmp_convert(h, u, exact, K)
        cff = dmp_convert(cff, u, exact, K)
        cfg = dmp_convert(cfg, u, exact, K)
        return (h, cff, cfg)
    elif K.has_Field:
        if (K.is_QQ and query('USE_HEU_GCD')):
            try:
                return dmp_qq_heu_gcd(f, g, u, K)
            except HeuristicGCDFailed:
                pass
        return dmp_ff_prs_gcd(f, g, u, K)
    else:
        if (K.is_ZZ and query('USE_HEU_GCD')):
            try:
                return dmp_zz_heu_gcd(f, g, u, K)
            except HeuristicGCDFailed:
                pass
        return dmp_rr_prs_gcd(f, g, u, K)

dataset/ETHPy150Open sympy/sympy/sympy/polys/euclidtools.py _dmp_inner_gcd/VarMisuse@50/83 `u`->`exact`