## Documentation |

Resultant of two polynomials

This functionality does not run in MATLAB.

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 `det`.

Was this topic helpful?