Solving Polynomials in Computer Algebra Systems

Apart from low degree polynomials (2, 3, and 4) and factoring to lowest degrees, what are the method(s) used to find all the roots of a high-degree polynomial equations having only complex roots, and cannot be factored into lower degree polynomials?

In other words, what is the general method Computer Algebra systems (e.g. Maple, Mathematica) use to give you all the roots of polynomials equations?

-
Do you mean an exact solution by radicals, or a numerical solution? Mathematica sometimes gives exact roots in a rather unhelpful form, e.g. Root[3 + #1 + #1^5 &, 1]... – Zhen Lin Apr 12 '11 at 10:36
No, I mean approximate, as exact solutions are not always possible in case the answer is irrational, or -worse- transcendental. – Rafid Apr 12 '11 at 10:39
Have you looked at this Wikipedia article? There are many, many algorithms. I have heard that eigenvalue algorithms are the best ones we have available for polynomial equations, but I don't know what Mathematica specifically uses. (It might be in the documentation.) – Zhen Lin Apr 12 '11 at 10:44
@Promather, the solution of a polynomial is by definition an algebraic number. – quanta Apr 12 '11 at 10:44
@quanta, you are right, only if you suppose the coefficients are integral or rational, which is not necessary: en.wikipedia.org/wiki/Algebraic_number – Rafid Apr 12 '11 at 10:50