Given a multivariate real (or complex) polynomial p and a domain D, we would like to decide whether an algorithm exists to evaluate p(x) accurately for all x ∈ D using rounded real (or complex) arithmetic. Here "accurately" means with relative error less than 1, i.e., with some correct leading digits. The answer depends on the model of rounded arithmetic: We assume that for any arithmetic operator op(a, b), for example a+b or ab, its computed value is op(a, b)� (1+δ), where |δ| is bounded by some constant ǫ where 0 < ǫ ≪ 1, but δ is otherwise arbitrary. This model is the traditional one used to analyze the accuracy of floating point algorithms. Our ultimate goal is to establish a decision procedure that, for any p and D, either exhibits an accurate algorithm or proves that none exists. In contrast to the case where numbers are stored and manipulated as finite bit strings (e.g., as floating point numbers or rational numbers) we show that some polynomials p are impossible to evaluate accurately. The existence of an accurate algorithm will depend not just on p and D, but on which arithmetic operators are available (perhaps beyond +, −, and � ), which constants are available to the algorithm (integers, algebraic numbers, ...), and whether branching is permitted in the algorithm. For floating point computation, our model can be used to identify which accurate operators beyond +, − and � (e.g., dot products, 3x3 determinants, ...) are necessary to evaluate a particular p(x). Toward this goal, we present necessary conditions on p for it to be accurately evaluable on open real or complex domains D. We also give sufficient conditions, and describe progress toward a complete decision procedure. We do present a complete decision procedure for homogeneous polynomials p with integer coefficients,D = C n , and using only the arithmetic operations +, − and � .
['James Demmel', 'Ioana Dumitriu', 'Olga Holtz']
Toward accurate polynomial evaluation in rounded arithmetic