Resultant of two polynomials
polylib::resultant(f, g, <x>) polylib::resultant(fexpr, gexpr, <inds>, <x>)
polylib::resultant(f, g) returns the resultant of f and g with respect to their first variable.
polylib::resultant(f, g, x) returns the resultant of f and g with respect to the variable x.
polylib::resultant(fexpr, gexpr, inds, x) returns the resultant of fexpr and gexpr with respect to the variable x; fexpr and gexpr are viewed as polynomials in the indeterminates inds.
Both input polynomials must have exactly the same second and third operand, i.e. their variables and coefficient rings must be identical.
If the arguments are expressions then these are converted into polynomials using poly. polylib::resultant returns FAIL if the expressions cannot be converted.
If the argument inds is missing, the input expressions are converted into polynomials in all indeterminates occurring in at least one of them. They are not independently converted, hence the conversion cannot result in two polynomials with different variables causing an error. See Example 1.
If the coefficient ring is a domain, it must have a "_divide" method.
If the coefficient ring is Expr, polylib::resultant returns an expression if called with two univariate polynomials. See Example 2.
For polynomials over IntMod(n), the computation may stop with an error if n is not prime.
If the input consists of expressions, the sets of indeterminates occurring in the expressions need not coincide:
polylib::resultant(a*x + c, c*x + d, x);
If the coefficient ring of two univariate input polynomials is Expr, the result is an expression:
polylib::resultant(poly(x^2 -1), poly(x + 1));
If the input consists of polynomials in at least two variables, polylib::resultant returns a polynomial in one variable less than the input.
The resultant of two polynomials is defined to be the determinant of their Sylvester matrix. A call to polylib::resultant is more efficient than consecutive calls to linalg::sylvester and linalg::det.