'Computes the resultant of ``f`` and ``g`` via PRS.
If includePRS=True, it includes the subresultant PRS in the result.
Because the PRS is used to calculate the resultant, this is more
efficient than calling :func:`subresultants` separately.
Examples
>>> from sympy import Poly
>>> from sympy.abc import x
>>> f = Poly(x**2 + 1, x)
>>> f.resultant(Poly(x**2 - 1, x))
4
>>> f.resultant(Poly(x**2 - 1, x), includePRS=True)
(4, [Poly(x**2 + 1, x, domain=\'ZZ\'), Poly(x**2 - 1, x, domain=\'ZZ\'),
Poly(-2, x, domain=\'ZZ\')])'

def resultant(f, g, includePRS=False):

    (_, per, F, G) = f._unify(g)
    if hasattr(f.rep, 'resultant'):
        if includePRS:
            (result, R) = F.resultant(G, includePRS=includePRS)
        else:
            result = F.resultant(G)
    else:
        raise OperationNotSupported(f, 'resultant')
    if includePRS:
        return (per(result, remove=0), list(map(per, R)))
    return per(result, remove=0)
