In this paper we present two methods of computing with complex algebraic numbers. The first uses isolating rectangles to distinguish between the roots of the minimal polynomial, the second method uses validated numeric approximations. We present algorithms for arithmetic and for solving polynomial equations, and compare implementations of both methods in Mathematica.c 1997 Academic Press Limited
Representation of Complex Algebraic NumbersLet K denote the field of complex algebraic numbers, i.e. the field of all complex numbers that are algebraic over the rationals. For every complex algebraic number a there is a unique monic polynomial f with rational coefficients (called the minimal polynomial of a) such that f (a) = 0 and for every polynomial g with rational coefficients if g(a) = 0 then f divides g. The minimal polynomial is necessarily irreducible.To specify an algebraic number we give its minimal polynomial, and also we need to tell which root of this polynomial we have in mind. To distinguish between the roots of a given polynomial we find disjoint isolating sets in the complex plane, such that each set contains exactly one root of the polynomial.The first method described here uses one-point isolating sets for rational roots, open intervals with rational endpoints for real roots, and open rectangles in the complex plane (Cartesian products of open intervals with rational endpoints) for complex roots. For real root isolation we use the method described by Akritas et al. (1994), based on the Descartes' Rule of Signs (see also Akritas and Collins (1976), and Akritas (1980)). Our complex root isolation algorithm is based on Collins and Krandick (1992). An algebraic number is represented by the minimal polynomial and the standard isolating rectangle given by our root isolation procedure-so that the representation of a given algebraic number is unique. (This makes checking equality of two algebraic numbers an easy task, otherwise to check equality we would have to count roots of the minimal polynomial in the intersection of isolating rectangles.)The second approach is to identify roots of a given polynomial based on their variableprecision floating-point approximations (which corresponds to giving circular isolating