Appendix D: A Detailed Look at _ 223

If a calculation has a result whose magnitude is smaller than 1.000000000×10-99, the result is set equal to zero. This effect is referred to as ―underflow.‖ If the subroutine that calculates your function encounters underflow for a range of x and if this affects the value of the function, then a root in this range may be expected to have some inaccuracy. For example, the equation

x4 = 0

has a root at x = 0. Because of underflow, _ produces a root of 1.5060 -25(for initial estimates of 1 and 2). As another example, consider the equation

l / x2 = 0

whose root is infinite in value. Because of underflow, _ gives a root of 3.1707 49 (for initial estimates of 10 and 20). In each of these examples, the algorithm has found a value of x for which the calculated function value equals zero. By understanding the effect of underflow, you can readily interpret results such as these.

The accuracy of a computed value sometimes can be adversely affected by ―round-off‖ error, by which an infinitely precise number is rounded to 10 significant digits. If your subroutine requires extra precision to properly calculate the function for a range of x, the result obtained by _ may be inaccurate. For example, the equation

x2 – 5 = 0

has a root at x = 5 . Because no 10-digit number exactly equals 5 , the result of using _ is Error 8 (for any initial estimates) because the function never equals zero nor changes sign. On the other hand, the equation

[(x + 1) + 1015]2 = 1030

has no roots because the left side of the equation is always greater than the right side. However, because of round-off in the calculation of

f(x) = [(x + 1) + 1015]2 - 1030,