Numerical Computing with IEEE Floating Point Arithmetic

An algorithm is a well-defined computational method to solve a given class of problems. In computer science, the study of algorithms is traditionally concerned with efficiency; it is understood that an algorithm is supposed to get the correct answer, though proving that this will happen is not necessarily easy. However, numerical algorithms, which solve problems using floating point arithmetic, almost never find the exact solution to a problem. Instead, the goal is "approximately correct" answers. These are by no means guaranteed. Although each individual floating point operation is correctly rounded, a poor choice of algorithm may introduce unnecessarily large rounding errors.
We saw in the previous chapter that the conditioning of a problem measures how accurately one can expect to be able to solve it using a given floating point precision, independently of the algorithm used. The stability of an algorithm measures how good a job the algorithm does at solving problems to the achievable accuracy defined by their conditioning. For whatever problem one might want to solve, some algorithms are better than others. Those algorithms that get unnecessarily inaccurate answers are called unstable.
We continue to confine our attention to the problem of evaluating a real function of a real variable,
assuming that f is twice continuously differentiable and that x and f( x) are in the normalized range of the floating point precision. As earlier, define
We commented in the previous chapter that, using floating point arithmetic, the best we...