Extended Euclidean algorithm for polynomials
This functionality does not run in MATLAB.
gcdex(p, q, <x>) gcdex(f, g, x)
gcdex(p, q, x) regards p and q as univariate polynomials in x and returns their greatest common divisor as a linear combination of p and q.
gcdex(p, q, x) returns a sequence g, s, t with three elements, where the polynomial g is the greatest common divisor of p and q. The polynomials s and t satisfy g = s p + t q and deg(s) < deg(q), deg(t) < deg(p). These data are computed by the extended Euclidean algorithm.
gcdex only processes univariate polynomials:
If the indeterminate x is specified, the input polynomials are regarded as univariate polynomials in x.
If no indeterminate is specified, the indeterminate of the polynomials is searched for internally. An error occurs if more than one indeterminate is found.
Note that x must be specified if polynomial expressions are used on input.
Polynomial expressions are converted to polynomials. See poly for details. FAIL is returned if an argument cannot be converted to a polynomial.
The returned polynomials are polynomial expressions if the input consists of polynomial expressions. Otherwise, polynomials of type DOM_POLY are returned.
The coefficient ring of the polynomials must provide the method "_divide". This method must return FAIL if domain elements cannot be divided.
The greatest common divisor of two univariate polynomials in extended form can be computed as follows:
gcdex(poly(x^3 + 1), poly(x^2 + 2*x + 1))
For multivariate polynomials, an indeterminate must be specified:
gcdex(poly(x^2*y), poly(x + y), x)
gcdex(poly(x^2*y), poly(x + y), y)
gcdex(x^3 + a, x^2 + 1, x)
Sequence of three polynomials, or a sequence of three polynomial expressions, or FAIL.