PlanetMath (more info)
 Math for the people, by the people.
Encyclopedia | Requests | Forums | Docs | Wiki | Random | RSS  
Login
create new user
name:
pass:
forget your password?
Main Menu
Owner confidence rating: Medium Entry average rating: No information on entry rating
fast Euclidean algorithm (Algorithm)

Given two polynomials of degree $ n$ with coefficients from a field $ K$, the straightforward Eucliean Algorithm uses $ O(n^2)$ field operations to compute their greatest common divisor. The Fast Euclidean Algorithm computes the same GCD in $ O(\mathsf{M}(n) \log(n))$ field operations, where $ \mathsf{M}(n)$ is the time to multiply two $ n$-degree polynomials; with FFT multiplication the GCD can thus be computed in time $ O(n \log^2(n) \log(\log(n)))$. The algorithm can also be used to compute any particular pair of coefficients from the Extended Euclidean Algorithm, although computing every pair of coefficients would involve $ O(n^2)$ outputs and so the efficiency is not as helpful when all are needed.

The algorithm can be made to work over $ \mathbb{Z}$ but it is very tricky. A newer version that is easier to understand was published by Damien Stehlé and Paul Zimmerman, “A Binary Recursive Gcd Algorithm.”

Here we sketch the algorithm over $ K[x]$. The basic idea is that the quotients $ q_i$ computed by the Euclidean Algorithm can usually be computed by looking at only the first few coefficients of the polynomial; for example, if

$\displaystyle A(x) = a_nx^n + a_{n-1}x^{n-1} + \ldots +a_0, \quad B(x) = b_{n-1}x^{n-1} + \ldots +b_0$
then
$\displaystyle quo(A(x), B(x)) = \frac{a_n}{b_{n-1}}x+\frac{b_{n-1}a_{n-1}-a_nb_{n-2}}{b_{n-1}^2}$

With more detailed analysis, we can show that in fact a divide-and-conquer approach can be used to calculate the GCD. First, we remove the terms whose degree is $ n/2$ or less from both polynomials $ A$ and $ B$. Then, we recursively compute their GCD and Euclidean coefficients. We then apply the Euclidean coefficients to $ A$ and $ B$, and recursively complete the Euclidean Algorithm.

The full algorithm, and a comprehensive runtime analysis is given in “Modern Computer Algebra” by von zur Gathen and Gerhard.



"fast Euclidean algorithm" is owned by mathcam. [ full author list (2) | owner history (1) ]
(view preamble)

View style:

See Also: Euclid's algorithm

Other names:  Half-GCD Algorithm, Lehmer's Algorithm
Keywords:  Lehmer, Euclidean Algorithm, GCD, Donald Knuth
Log in to rate this entry.
(view current ratings)

Cross-references: complete, Euclidean, terms, calculate, quotients, efficiency, Euclidean algorithm, multiplication, greatest common divisor, operations, algorithm, field, coefficients, degree, polynomials
There is 1 reference to this entry.

This is version 4 of fast Euclidean algorithm, born on 2004-07-22, modified 2005-04-14.
Object id is 6014, canonical name is FastEuclideanAlgorithm.
Accessed 6757 times total.

Classification:
AMS MSC11A05 (Number theory :: Elementary number theory :: Multiplicative structure; Euclidean algorithm; greatest common divisors)

Pending Errata and Addenda
None.
[ View all 1 ]
Discussion
Style: Expand: Order:
forum policy

No messages.

Interact
post | correct | update request | add example | add (any)