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 a⋅b, 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 and
which constants are are available and whether branching is permitted. 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, {\cal D} = \C^n, and using only the arithmetic
operations +, − and ⋅.Comment: 54 pages, 6 figures; refereed version; to appear in Foundations of
Computational Mathematics: Santander 2005, Cambridge University Press, March
200