Numerical Computing with IEEE Floating Point Arithmetic

In fact, the phenomenon of cancellation described in Chapter 11 can be completely explained by conditioning. The condition number of the function
is
which is arbitrarily large for x close to 1. Consequently, an algorithm that introduces cancellation unnecessarily is introducing ill conditioning unnecessarily and is unstable.
In Chapter 11, we discussed the idea of approximating a derivative g ?( x)by a difference quotient. A working of Exercise 12.7 shows that the problem of evaluating the difference quotient has the same condition number in the limit as h ? 0 as the problem of evaluating g ?( x) directly. Suppose that this condition number is not large. Unfortunately, the first step in evaluating the difference quotient, computing g( x + h) ? g( x), does have a large condition number for small h, and hence computing the difference quotient without the use of intermediate higher precision is unstable. Better algorithms exist to approximate the derivative, e.g., using the central difference quotient with larger h or still more accurate difference quotients with still larger h. However, this does not mean that the ordinary difference quotient is necessarily a poor choice of algorithm, as it may be justified by its efficiency and may be adequate if h is chosen carefully. Of course, using the formula for the derivative is preferable if it is known.
Why is the formula
an unstable way...